[ltt-dev] [URCU PATCH v2 1/2] caa: let per-arch files provide cmm_smp_* barriers

Mathieu Desnoyers compudj at krystal.dyndns.org
Tue Sep 6 07:31:30 EDT 2011


* Paolo Bonzini (pbonzini at redhat.com) wrote:
> x86 instructions lfence and sfence are rarely needed, and we want
> the cmm_smp_rmb/cmm_smp_wmb macros to be simple compiler barriers.
> So, let the per-arch files override the default definitions in
> arch/generic.h.

Small nit: these 2 patches are named "caa:", but they should rather be
named "cmm:" (for Concurrent Memory Model).

Thanks!

Mathieu

> 
> Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
> ---
>  urcu/arch/generic.h |   28 ++++++++++++++++++++++++++++
>  1 files changed, 28 insertions(+), 0 deletions(-)
> 
> diff --git a/urcu/arch/generic.h b/urcu/arch/generic.h
> index 100d3c6..1ea7f59 100644
> --- a/urcu/arch/generic.h
> +++ b/urcu/arch/generic.h
> @@ -100,22 +100,50 @@ extern "C" {
>  #endif
>  
>  #ifdef CONFIG_RCU_SMP
> +#ifndef cmm_smp_mb
>  #define cmm_smp_mb()	cmm_mb()
> +#endif
> +#ifndef cmm_smp_rmb
>  #define cmm_smp_rmb()	cmm_rmb()
> +#endif
> +#ifndef cmm_smp_wmb
>  #define cmm_smp_wmb()	cmm_wmb()
> +#endif
> +#ifndef cmm_smp_mc
>  #define cmm_smp_mc()	cmm_mc()
> +#endif
> +#ifndef cmm_smp_rmc
>  #define cmm_smp_rmc()	cmm_rmc()
> +#endif
> +#ifndef cmm_smp_wmc
>  #define cmm_smp_wmc()	cmm_wmc()
> +#endif
> +#ifndef cmm_smp_read_barrier_depends
>  #define cmm_smp_read_barrier_depends()	cmm_read_barrier_depends()
> +#endif
>  #else
> +#ifndef cmm_smp_mb
>  #define cmm_smp_mb()	cmm_barrier()
> +#endif
> +#ifndef cmm_smp_rmb
>  #define cmm_smp_rmb()	cmm_barrier()
> +#endif
> +#ifndef cmm_smp_wmb
>  #define cmm_smp_wmb()	cmm_barrier()
> +#endif
> +#ifndef cmm_smp_mc
>  #define cmm_smp_mc()	cmm_barrier()
> +#endif
> +#ifndef cmm_smp_rmc
>  #define cmm_smp_rmc()	cmm_barrier()
> +#endif
> +#ifndef cmm_smp_wmc
>  #define cmm_smp_wmc()	cmm_barrier()
> +#endif
> +#ifndef cmm_smp_read_barrier_depends
>  #define cmm_smp_read_barrier_depends()
>  #endif
> +#endif
>  
>  #ifndef caa_cpu_relax
>  #define caa_cpu_relax()		cmm_barrier()
> -- 
> 1.7.6
> 
> 
> 
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> 

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com




More information about the lttng-dev mailing list