Re: [PATCH] fix misplaced mb() in rcu_enter/exit_nohz()

Oleg Nesterov
2008-03-17T18:26:11Z

On 03/16, Paul E. McKenney wrote:
>
> In the process of writing up the mechanical proof of correctness for the
> dynticks/preemptable-RCU interface, I noticed misplaced memory barriers
> in rcu_enter_nohz() and rcu_exit_nohz().

Can't comment this patch, there is no rcu_enter_nohz() in my rcupreempt.h ;)

I'm not sure the code below is up to date, but what I have in
arch/s390/kernel/time.c is:

stop_hz_timer:

cpu_set(cpu, nohz_cpu_mask);

if (rcu_needs_cpu(cpu) || local_softirq_pending()) {
cpu_clear(cpu, nohz_cpu_mask);
return;
}

Don't we need smp_mb() after cpu_set() ?

Oleg.