]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit2dc82ca2e4c5514dd57d70689b654ba4ce65d006
tree760b20e6eaaa02412fcecb6bc5c3598b6bc0fdce
parent894fb875106fbdae5fec4ab0462c6af78603f7e5
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