[ltt-dev] [PATCH 02/10] rcutorture: make goflag volatile

Mathieu Desnoyers compudj at krystal.dyndns.org
Wed Jun 8 18:09:03 EDT 2011


* Paolo Bonzini (pbonzini at redhat.com) wrote:
> Even cmm_barrier may not be enough as a compiler barrier in the presence
> of static variables, and cmm_mb would not be either!  The compiler assumes
> that calling a function does not clobber static variables if it can prove
> that they do not escape (which also implies the correct phase of the moon).
> 
> Rather than sprinkling the code with compiler barriers, I am taking the
> easy way out and declaring the variable volatile.  Without this patch,
> rcutorture_qsbr never finishes for me (GCC 4.5.0).

merged, thanks!

Mathieu

> 
> Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
> ---
>  tests/rcutorture.h |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/tests/rcutorture.h b/tests/rcutorture.h
> index c5253d9..5ba3d2b 100644
> --- a/tests/rcutorture.h
> +++ b/tests/rcutorture.h
> @@ -79,7 +79,8 @@ char argsbuf[64];
>  #define GOFLAG_RUN  1
>  #define GOFLAG_STOP 2
>  
> -int goflag __attribute__((__aligned__(CAA_CACHE_LINE_SIZE))) = GOFLAG_INIT;
> +volatile int goflag __attribute__((__aligned__(CAA_CACHE_LINE_SIZE)))
> +        = GOFLAG_INIT;
>  
>  #define RCU_READ_RUN 1000
>  
> -- 
> 1.7.4.4
> 
> 
> 
> _______________________________________________
> 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