rcu: Remove waitqueue usage for cpu, node, and boost kthreads
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Fri, 20 May 2011 23:06:29 +0000 (16:06 -0700)
committerIngo Molnar <mingo@elte.hu>
Sat, 28 May 2011 15:41:52 +0000 (17:41 +0200)
commit08bca60a6912ad225254250c0a9c3a05b4152cfa
tree760b20e6eaaa02412fcecb6bc5c3598b6bc0fdce
parent8826f3b0397562eee6f8785d548be9dfdb169100
rcu: Remove waitqueue usage for cpu, node, and boost kthreads

It is not necessary to use waitqueues for the RCU kthreads because
we always know exactly which thread is to be awakened.  In addition,
wake_up() only issues an actual wakeup when there is a thread waiting on
the queue, which was why there was an extra explicit wake_up_process()
to get the RCU kthreads started.

Eliminating the waitqueues (and wake_up()) in favor of wake_up_process()
eliminates the need for the initial wake_up_process() and also shrinks
the data structure size a bit.  The wakeup logic is placed in a new
rcu_wait() macro.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/rcutree.c
kernel/rcutree.h
kernel/rcutree_plugin.h