]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - kernel/rcutree.h
rcu: move TREE_RCU from softirq to kthread
[mirror_ubuntu-artful-kernel.git] / kernel / rcutree.h
index 5a439c180e69efe0b2fc7a274e3d918eb4f991d2..c0213802d164796af4a46a955e349453b057a60c 100644 (file)
@@ -111,6 +111,7 @@ struct rcu_node {
                                /*  elements that need to drain to allow the */
                                /*  current expedited grace period to */
                                /*  complete (only for TREE_PREEMPT_RCU). */
+       unsigned long wakemask; /* CPUs whose kthread needs to be awakened. */
        unsigned long qsmaskinit;
                                /* Per-GP initial value for qsmask & expmask. */
        unsigned long grpmask;  /* Mask to apply to parent qsmask. */
@@ -134,6 +135,13 @@ struct rcu_node {
                                /*  if there is no such task.  If there */
                                /*  is no current expedited grace period, */
                                /*  then there can cannot be any such task. */
+       struct task_struct *node_kthread_task;
+                               /* kthread that takes care of this rcu_node */
+                               /*  structure, for example, awakening the */
+                               /*  per-CPU kthreads as needed. */
+       wait_queue_head_t node_wq;
+                               /* Wait queue on which to park the per-node */
+                               /*  kthread. */
 } ____cacheline_internodealigned_in_smp;
 
 /*