Re: [PATCH RFC] rcu: Make rcu_barrier() less disruptive

From: Srivatsa S. Bhat
Date: Mon Mar 19 2012 - 10:32:58 EST



Hi Paul,

On 03/15/2012 10:18 PM, Paul E. McKenney wrote:

> The rcu_barrier() primitive interrupts each and every CPU, registering
> a callback on every CPU. Once all of these callbacks have been invoked,
> rcu_barrier() knows that every callback that was registered before
> the call to rcu_barrier() has also been invoked.
>
> However, there is no point in registering a callback on a CPU that
> currently has no callbacks, most especially if that CPU is in a
> deep idle state. This commit therefore makes rcu_barrier() avoid
> interrupting CPUs that have no callbacks. Doing this requires reworking
> the handling of orphaned callbacks, otherwise callbacks could slip through
> rcu_barrier()'s net by being orphaned from a CPU that rcu_barrier() had
> not yet interrupted to a CPU that rcu_barrier() had already interrupted.
> This reworking was needed anyway to take a first step towards weaning
> RCU from the CPU_DYING notifier's use of stop_cpu().
>

s/stop_cpu()/stop_machine() ?


Thank you for doing this! :-)

> Signed-off-by: Paul E. McKenney <paul.mckenney@xxxxxxxxxx>
> Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
>


Regards,
Srivatsa S. Bhat
IBM Linux Technology Center

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/