aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2012-06-18 21:36:08 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2012-09-23 10:41:52 -0400
commitb3dbec76e5334fbb063987dea14e7b255602d7e4 (patch)
tree5b75e737856baf09b2303bebf7d9893b8279c84e /kernel/rcutree.h
parenta10d206ef1a83121ab7430cb196e0376a7145b22 (diff)
rcu: Move RCU grace-period initialization into a kthread
As the first step towards allowing grace-period initialization to be preemptible, this commit moves the RCU grace-period initialization into its own kthread. This is needed to keep large-system scheduling latency at reasonable levels. Also change raw_spin_lock_irqsave() to raw_spin_lock_irq() as suggested by Peter Zijlstra in review comments. Reported-by: Mike Galbraith <mgalbraith@suse.de> Reported-by: Dimitri Sivanich <sivanich@sgi.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'kernel/rcutree.h')
-rw-r--r--kernel/rcutree.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/rcutree.h b/kernel/rcutree.h
index 4d29169f2124..117a15019e99 100644
--- a/kernel/rcutree.h
+++ b/kernel/rcutree.h
@@ -385,6 +385,9 @@ struct rcu_state {
385 u8 boost; /* Subject to priority boost. */ 385 u8 boost; /* Subject to priority boost. */
386 unsigned long gpnum; /* Current gp number. */ 386 unsigned long gpnum; /* Current gp number. */
387 unsigned long completed; /* # of last completed gp. */ 387 unsigned long completed; /* # of last completed gp. */
388 struct task_struct *gp_kthread; /* Task for grace periods. */
389 wait_queue_head_t gp_wq; /* Where GP task waits. */
390 int gp_flags; /* Commands for GP task. */
388 391
389 /* End of fields guarded by root rcu_node's lock. */ 392 /* End of fields guarded by root rcu_node's lock. */
390 393