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

Re: [Xen-devel] [PATCH 01/17] xen: x86 & generic: change to __builtin_prefetch()



>>> On 20.03.14 at 16:45, Ian Campbell <ian.campbell@xxxxxxxxxx> wrote:
> Quoting Andi Kleen in Linux b483570a13be from 2007:
>     gcc 3.2+ supports __builtin_prefetch, so it's possible to use it on all
>     architectures. Change the generic fallback in linux/prefetch.h to use it
>     instead of noping it out. gcc should do the right thing when the
>     architecture doesn't support prefetching
> 
>     Undefine the x86-64 inline assembler version and use the fallback.
> 
> ARM wants to use the builtins.
> 
> Fix a pair of spelling errors, one of which was from Lucas De Marchi in the
> Linux tree.
> 
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Cc: Keir Fraser <keir@xxxxxxx>

Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>

> ---
>  xen/include/xen/prefetch.h |   13 +++----------
>  1 file changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/xen/include/xen/prefetch.h b/xen/include/xen/prefetch.h
> index 8d7d3ff..ba73998 100644
> --- a/xen/include/xen/prefetch.h
> +++ b/xen/include/xen/prefetch.h
> @@ -28,24 +28,17 @@
>       prefetchw(x)    - prefetches the cacheline at "x" for write
>       spin_lock_prefetch(x) - prefectches the spinlock *x for taking
>       
> -     there is also PREFETCH_STRIDE which is the architecure-prefered 
> +     there is also PREFETCH_STRIDE which is the architecture-preferred
>       "lookahead" size for prefetching streamed operations.
>       
>  */
>  
> -/*
> - *   These cannot be do{}while(0) macros. See the mental gymnastics in
> - *   the loop macro.
> - */
> - 
>  #ifndef ARCH_HAS_PREFETCH
> -#define ARCH_HAS_PREFETCH
> -static inline void prefetch(const void *x) {;}
> +#define prefetch(x) __builtin_prefetch(x)
>  #endif
>  
>  #ifndef ARCH_HAS_PREFETCHW
> -#define ARCH_HAS_PREFETCHW
> -static inline void prefetchw(const void *x) {;}
> +#define prefetchw(x) __builtin_prefetch(x,1)
>  #endif
>  
>  #ifndef ARCH_HAS_SPINLOCK_PREFETCH
> -- 
> 1.7.10.4




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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