]> git.baikalelectronics.ru Git - kernel.git/commit
rcu: Make hot-unplugged CPU relinquish its own RCU callbacks
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 7 Oct 2009 04:48:17 +0000 (21:48 -0700)
committerIngo Molnar <mingo@elte.hu>
Wed, 7 Oct 2009 06:11:20 +0000 (08:11 +0200)
commit271da721d25b760a9c0e2cd45267aed094fa21c4
tree213f9df0974c6e1e729de207b2c6dd942a39ba8c
parent427d600090d8d73dbdf515d8615aa142185ea3e8
rcu: Make hot-unplugged CPU relinquish its own RCU callbacks

The current interaction between RCU and CPU hotplug requires that
RCU block in CPU notifiers waiting for callbacks to drain.

This can be greatly simplified by having each CPU relinquish its
own callbacks, and for both _rcu_barrier() and CPU_DEAD notifiers
to adopt all callbacks that were previously relinquished.

This change also eliminates the possibility of certain types of
hangs due to the previous practice of waiting for callbacks to be
invoked from within CPU notifiers.  If you don't every wait, you
cannot hang.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: laijs@cn.fujitsu.com
Cc: dipankar@in.ibm.com
Cc: akpm@linux-foundation.org
Cc: mathieu.desnoyers@polymtl.ca
Cc: josh@joshtriplett.org
Cc: dvhltc@us.ibm.com
Cc: niv@us.ibm.com
Cc: peterz@infradead.org
Cc: rostedt@goodmis.org
Cc: Valdis.Kletnieks@vt.edu
Cc: dhowells@redhat.com
LKML-Reference: <1254890898456-git-send-email->
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/rcutree.c
kernel/rcutree.h
kernel/rcutree_plugin.h
kernel/rcutree_trace.c