[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 07/12] xen: allow tmem to be disabled on platforms which do not support it (ARM)



Why do we need this?
I though that tmem compiled OK on ARM. Also I don't think there is any
architectural limitation that would prevent tmem from working on ARM,
right?
If the goal is to remove DUMMY(donate_page) maybe it is better to
introduce a stub function instead?

On Fri, 20 Jan 2012, Ian Campbell wrote:
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> ---
>  xen/Rules.mk               |    1 +
>  xen/arch/arm/dummy.S       |    1 -
>  xen/arch/ia64/Rules.mk     |    1 +
>  xen/arch/x86/Rules.mk      |    1 +
>  xen/common/Makefile        |    4 ++--
>  xen/common/page_alloc.c    |    1 +
>  xen/include/xen/tmem.h     |    9 +++++++++
>  xen/include/xen/tmem_xen.h |    5 +++++
>  8 files changed, 20 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/Rules.mk b/xen/Rules.mk
> index b7b54f6..e25e8d4 100644
> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -51,6 +51,7 @@ CFLAGS-$(perfc)         += -DPERF_COUNTERS
>  CFLAGS-$(perfc_arrays)  += -DPERF_ARRAYS
>  CFLAGS-$(lock_profile)  += -DLOCK_PROFILE
>  CFLAGS-$(HAS_ACPI)      += -DHAS_ACPI
> +CFLAGS-$(HAS_TMEM)      += -DHAS_TMEM
>  CFLAGS-$(frame_pointer) += -fno-omit-frame-pointer -DCONFIG_FRAME_POINTER
>  
>  ifneq ($(max_phys_cpus),)
> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
> index 3bf5226..da0b906 100644
> --- a/xen/arch/arm/dummy.S
> +++ b/xen/arch/arm/dummy.S
> @@ -20,7 +20,6 @@ DUMMY(domain_get_maximum_gpfn);
>  DUMMY(domain_relinquish_resources);
>  DUMMY(domain_set_time_offset);
>  DUMMY(dom_cow);
> -DUMMY(donate_page);
>  DUMMY(flush_tlb_mask);
>  DUMMY(free_vcpu_guest_context);
>  DUMMY(get_page);
> diff --git a/xen/arch/ia64/Rules.mk b/xen/arch/ia64/Rules.mk
> index 054b4de..6c8cf69 100644
> --- a/xen/arch/ia64/Rules.mk
> +++ b/xen/arch/ia64/Rules.mk
> @@ -9,6 +9,7 @@ HAS_PCI := y
>  HAS_PASSTHROUGH := y
>  HAS_NS16550 := y
>  HAS_KEXEC := y
> +HAS_TMEM := y
>  xenoprof := y
>  no_warns ?= n
>  vti_debug ?= n
> diff --git a/xen/arch/x86/Rules.mk b/xen/arch/x86/Rules.mk
> index 1e48877..8802a69 100644
> --- a/xen/arch/x86/Rules.mk
> +++ b/xen/arch/x86/Rules.mk
> @@ -8,6 +8,7 @@ HAS_PCI := y
>  HAS_PASSTHROUGH := y
>  HAS_NS16550 := y
>  HAS_KEXEC := y
> +HAS_TMEM := y
>  xenoprof := y
>  
>  #
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index 9249845..68a2df1 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -38,8 +38,8 @@ obj-y += vsprintf.o
>  obj-y += wait.o
>  obj-y += xmalloc_tlsf.o
>  obj-y += rcupdate.o
> -obj-y += tmem.o
> -obj-y += tmem_xen.o
> +obj-$(HAS_TMEM) += tmem.o
> +obj-$(HAS_TMEM) += tmem_xen.o
>  obj-y += radix-tree.o
>  obj-y += rbtree.o
>  obj-y += lzo.o
> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 249bb35..3aac830 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -35,6 +35,7 @@
>  #include <xen/perfc.h>
>  #include <xen/numa.h>
>  #include <xen/nodemask.h>
> +#include <xen/errno.h>
>  #include <xen/tmem.h>
>  #include <xen/tmem_xen.h>
>  #include <public/sysctl.h>
> diff --git a/xen/include/xen/tmem.h b/xen/include/xen/tmem.h
> index 5dbf9d5..2ebffb4 100644
> --- a/xen/include/xen/tmem.h
> +++ b/xen/include/xen/tmem.h
> @@ -9,8 +9,17 @@
>  #ifndef __XEN_TMEM_H__
>  #define __XEN_TMEM_H__
>  
> +#ifdef HAS_TMEM
>  extern void tmem_destroy(void *);
>  extern void *tmem_relinquish_pages(unsigned int, unsigned int);
>  extern unsigned long tmem_freeable_pages(void);
> +#else
> +static inline void tmem_destroy(void *v) {}
> +static inline void *tmem_relinquish_pages(unsigned int order, unsigned int 
> flags)
> +{
> +     return NULL;
> +}
> +static inline unsigned long tmem_freeable_pages(void) { return 0; }
> +#endif
>  
>  #endif /* __XEN_TMEM_H__ */
> diff --git a/xen/include/xen/tmem_xen.h b/xen/include/xen/tmem_xen.h
> index fdbeed1..a6c0672 100644
> --- a/xen/include/xen/tmem_xen.h
> +++ b/xen/include/xen/tmem_xen.h
> @@ -9,6 +9,7 @@
>  #ifndef __XEN_TMEM_XEN_H__
>  #define __XEN_TMEM_XEN_H__
>  
> +#ifdef HAS_TMEM
>  #include <xen/config.h>
>  #include <xen/mm.h> /* heap alloc/free */
>  #include <xen/pfn.h>
> @@ -559,4 +560,8 @@ extern int tmh_copy_tze_to_client(tmem_cli_mfn_t cmfn, 
> void *tmem_va, pagesize_t
>  #define RESET_CYC_COUNTER(x) do { } while (0)
>  #endif
>  
> +#else /* HAS_TMEM */
> +#define opt_tmem 0
> +#endif
> +
>  #endif /* __XEN_TMEM_XEN_H__ */
> -- 
> 1.7.2.5
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.