tmem: allow tmem to be disabled with Kconfig

Wrap the various tmem functions with the Kconfig generated CONFIG_TMEM
option allowing users to build Xen without tmem support.

Note that you have to use XEN_CONFIG_EXPERT to see this option.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
Doug Goldstein authored and Konrad Rzeszutek Wilk committed 2016-03-16 10:55:37 -04:00
1 parent 6cddfb4ef6
commit 6ea2dc59a7
7 files changed
+68 -3

No files matched your search

+4
View File
@@ -345,6 +345,10 @@ compat_crash_page_fault:
#define compat_kexec_op do_ni_hypercall
#endif
#ifndef CONFIG_TMEM
#define do_tmem_op do_ni_hypercall
#endif
#ifndef CONFIG_XENOPROF
#define compat_xenoprof_op do_ni_hypercall
#endif
+4
View File
@@ -681,6 +681,10 @@ ENTRY(exception_table)
#define do_kexec_op do_ni_hypercall
#endif
#ifndef CONFIG_TMEM
#define do_tmem_op do_ni_hypercall
#endif
#ifndef CONFIG_XENOPROF
#define do_xenoprof_op do_ni_hypercall
#endif
+14
View File
@@ -87,6 +87,20 @@ config LATE_HWDOM
If unsure, say N.
# Enables transcendent memory support
config TMEM
def_bool y
prompt "Transcendent Memory Support" if EXPERT = "y"
---help---
Transcendent memory allows PV-aware guests to collaborate on memory
usage. Guests can 'swap' their memory to the hypervisor or have an
collective pool of memory shared across guests. The end result is
less memory usage by guests allowing higher guest density.
You also have to enable it on the Xen commandline by using tmem=1
If unsure, say Y.
# Adds support for Xenoprof
config XENOPROF
def_bool y
+5 -3
View File
@@ -49,8 +49,6 @@ obj-y += sysctl.o
obj-y += tasklet.o
obj-y += time.o
obj-y += timer.o
obj-y += tmem.o
obj-y += tmem_xen.o
obj-y += trace.o
obj-y += version.o
obj-y += vm_event.o
@@ -65,7 +63,11 @@ obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma unlzo unlz4
obj-$(perfc) += perfc.o
obj-$(crash_debug) += gdbstub.o
obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o kernel.o memory.o multicall.o tmem_xen.o xlat.o)
obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o kernel.o memory.o multicall.o xlat.o)
tmem-y := tmem.o tmem_xen.o
tmem-$(CONFIG_COMPAT) += compat/tmem_xen.o
obj-$(CONFIG_TMEM) += $(tmem-y)
subdir-$(CONFIG_X86) += hvm
+4
View File
@@ -133,9 +133,13 @@ extern long
do_xsm_op(
XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_xsm_op);
#ifdef CONFIG_TMEM
extern long
do_tmem_op(
XEN_GUEST_HANDLE_PARAM(tmem_op_t) uops);
#else
#define do_tmem_op do_ni_hypercall
#endif
extern long
do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
+26
View File
@@ -11,9 +11,35 @@
struct xen_sysctl_tmem_op;
#ifdef CONFIG_TMEM
extern int tmem_control(struct xen_sysctl_tmem_op *op);
extern void tmem_destroy(void *);
extern void *tmem_relinquish_pages(unsigned int, unsigned int);
extern unsigned long tmem_freeable_pages(void);
#else
static inline int
tmem_control(struct xen_sysctl_tmem_op *op)
{
return -ENOSYS;
}
static inline void
tmem_destroy(void *p)
{
return;
}
static inline void *
tmem_relinquish_pages(unsigned int x, unsigned int y)
{
return NULL;
}
static inline unsigned long
tmem_freeable_pages(void)
{
return 0;
}
#endif /* CONFIG_TMEM */
#endif /* __XEN_TMEM_H__ */
+11
View File
@@ -63,6 +63,7 @@ static inline bool_t tmem_shared_auth(void)
return opt_tmem_shared_auth;
}
#ifdef CONFIG_TMEM
extern bool_t opt_tmem;
static inline bool_t tmem_enabled(void)
{
@@ -73,6 +74,16 @@ static inline void tmem_disable(void)
{
opt_tmem = 0;
}
#else
static inline bool_t tmem_enabled(void)
{
return 0;
}
static inline void tmem_disable(void)
{
}
#endif /* CONFIG_TMEM */
/*
* Memory free page list management
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.