[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 5/5] 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. Signed-off-by: Doug Goldstein <cardoe@xxxxxxxxxx> --- CC: Keir Fraser <keir@xxxxxxx> CC: Jan Beulich <jbeulich@xxxxxxxx> CC: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CC: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> --- xen/arch/x86/hvm/hvm.c | 4 ++++ xen/arch/x86/x86_64/compat/entry.S | 4 ++++ xen/arch/x86/x86_64/entry.S | 4 ++++ xen/common/Kconfig | 11 +++++++++++ xen/common/Makefile | 7 ++++--- xen/include/xen/tmem.h | 26 ++++++++++++++++++++++++++ xen/include/xen/tmem_xen.h | 11 +++++++++++ 7 files changed, 64 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 255a1d6..e05a4d9 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -5311,6 +5311,10 @@ typedef unsigned long hvm_hypercall_t( #define compat_grant_table_op hvm_grant_table_op_compat32 #define do_arch_1 paging_domctl_continuation +#ifndef CONFIG_TMEM +#define do_tmem_op do_ni_hypercall +#endif + static const struct { hvm_hypercall_t *native; hvm_hypercall_t *compat; diff --git a/xen/arch/x86/x86_64/compat/entry.S b/xen/arch/x86/x86_64/compat/entry.S index 927439d..5218f8a 100644 --- a/xen/arch/x86/x86_64/compat/entry.S +++ b/xen/arch/x86/x86_64/compat/entry.S @@ -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 diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S index dd7f114..cab9763 100644 --- a/xen/arch/x86/x86_64/entry.S +++ b/xen/arch/x86/x86_64/entry.S @@ -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 diff --git a/xen/common/Kconfig b/xen/common/Kconfig index 8fbc46d..24eb60b 100644 --- a/xen/common/Kconfig +++ b/xen/common/Kconfig @@ -87,6 +87,17 @@ config LATE_HWDOM If unsure, say N. +# Enables transactional memory support +config TMEM + bool "Transaction Memory Support" + default y + ---help--- + fill me out + +config TMEM_COMPAT + bool + default y if COMPAT && TMEM + # Adds support for Xenoprof config XENOPROF def_bool y diff --git a/xen/common/Makefile b/xen/common/Makefile index 82625a5..8a3c87a 100644 --- a/xen/common/Makefile +++ b/xen/common/Makefile @@ -49,8 +49,8 @@ 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-$(CONFIG_TMEM) += tmem.o +obj-$(CONFIG_TMEM) += tmem_xen.o obj-y += trace.o obj-y += version.o obj-y += vm_event.o @@ -65,7 +65,8 @@ 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) +obj-$(CONFIG_TMEM_COMPAT) += compat/tmem_xen.o subdir-$(CONFIG_X86) += hvm diff --git a/xen/include/xen/tmem.h b/xen/include/xen/tmem.h index 32a542a..414a14d 100644 --- a/xen/include/xen/tmem.h +++ b/xen/include/xen/tmem.h @@ -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__ */ diff --git a/xen/include/xen/tmem_xen.h b/xen/include/xen/tmem_xen.h index b95bde9..33f75e0 100644 --- a/xen/include/xen/tmem_xen.h +++ b/xen/include/xen/tmem_xen.h @@ -64,6 +64,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) { @@ -74,6 +75,16 @@ static inline void tmem_disable(void) { opt_tmem = 0; } +#else +static inline bool_t tmem_enabled(void) +{ + return false; +} + +static inline void tmem_disable(void) +{ +} +#endif /* CONFIG_TMEM */ /* * Memory free page list management -- 2.4.10 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |