On Mon, Aug 11, 2014 at 03:49:03PM -0700, Paul E. McKenney wrote:
> From: "Paul E. McKenney" <paul...@linux.vnet.ibm.com>
> 
> In theory, synchronize_sched() requires a read-side critical section to
> order against.  In practice, preemption can be thought of as being
> disabled across every machine instruction.  So this commit removes
> the redundant preempt_disable() from rcu_note_voluntary_context_switch().

>  #define rcu_note_voluntary_context_switch(t) \
>       do { \
> -             preempt_disable(); /* Exclude synchronize_sched(); */ \
>               if (ACCESS_ONCE((t)->rcu_tasks_holdout)) \
>                       ACCESS_ONCE((t)->rcu_tasks_holdout) = 0; \
> -             preempt_enable(); \
>       } while (0)

But that's more than 1 instruction.

Attachment: pgp6umPct2dsK.pgp
Description: PGP signature

Reply via email to