aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/rcu/tree.h')
-rw-r--r--kernel/rcu/tree.h15
1 files changed, 3 insertions, 12 deletions
diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
index 9af0f31d6847..8e1f285f0a70 100644
--- a/kernel/rcu/tree.h
+++ b/kernel/rcu/tree.h
@@ -219,8 +219,6 @@ struct rcu_data {
219 /* qlen at last check for QS forcing */ 219 /* qlen at last check for QS forcing */
220 unsigned long n_cbs_invoked; /* count of RCU cbs invoked. */ 220 unsigned long n_cbs_invoked; /* count of RCU cbs invoked. */
221 unsigned long n_nocbs_invoked; /* count of no-CBs RCU cbs invoked. */ 221 unsigned long n_nocbs_invoked; /* count of no-CBs RCU cbs invoked. */
222 unsigned long n_cbs_orphaned; /* RCU cbs orphaned by dying CPU */
223 unsigned long n_cbs_adopted; /* RCU cbs adopted from dying CPU */
224 unsigned long n_force_qs_snap; 222 unsigned long n_force_qs_snap;
225 /* did other CPU force QS recently? */ 223 /* did other CPU force QS recently? */
226 long blimit; /* Upper limit on a processed batch */ 224 long blimit; /* Upper limit on a processed batch */
@@ -268,7 +266,9 @@ struct rcu_data {
268 struct rcu_head **nocb_follower_tail; 266 struct rcu_head **nocb_follower_tail;
269 struct swait_queue_head nocb_wq; /* For nocb kthreads to sleep on. */ 267 struct swait_queue_head nocb_wq; /* For nocb kthreads to sleep on. */
270 struct task_struct *nocb_kthread; 268 struct task_struct *nocb_kthread;
269 raw_spinlock_t nocb_lock; /* Guard following pair of fields. */
271 int nocb_defer_wakeup; /* Defer wakeup of nocb_kthread. */ 270 int nocb_defer_wakeup; /* Defer wakeup of nocb_kthread. */
271 struct timer_list nocb_timer; /* Enforce finite deferral. */
272 272
273 /* The following fields are used by the leader, hence own cacheline. */ 273 /* The following fields are used by the leader, hence own cacheline. */
274 struct rcu_head *nocb_gp_head ____cacheline_internodealigned_in_smp; 274 struct rcu_head *nocb_gp_head ____cacheline_internodealigned_in_smp;
@@ -350,15 +350,6 @@ struct rcu_state {
350 350
351 /* End of fields guarded by root rcu_node's lock. */ 351 /* End of fields guarded by root rcu_node's lock. */
352 352
353 raw_spinlock_t orphan_lock ____cacheline_internodealigned_in_smp;
354 /* Protect following fields. */
355 struct rcu_cblist orphan_pend; /* Orphaned callbacks that */
356 /* need a grace period. */
357 struct rcu_cblist orphan_done; /* Orphaned callbacks that */
358 /* are ready to invoke. */
359 /* (Contains counts.) */
360 /* End of fields guarded by orphan_lock. */
361
362 struct mutex barrier_mutex; /* Guards barrier fields. */ 353 struct mutex barrier_mutex; /* Guards barrier fields. */
363 atomic_t barrier_cpu_count; /* # CPUs waiting on. */ 354 atomic_t barrier_cpu_count; /* # CPUs waiting on. */
364 struct completion barrier_completion; /* Wake at barrier end. */ 355 struct completion barrier_completion; /* Wake at barrier end. */
@@ -495,7 +486,7 @@ static void rcu_nocb_gp_cleanup(struct swait_queue_head *sq);
495static void rcu_init_one_nocb(struct rcu_node *rnp); 486static void rcu_init_one_nocb(struct rcu_node *rnp);
496static bool __call_rcu_nocb(struct rcu_data *rdp, struct rcu_head *rhp, 487static bool __call_rcu_nocb(struct rcu_data *rdp, struct rcu_head *rhp,
497 bool lazy, unsigned long flags); 488 bool lazy, unsigned long flags);
498static bool rcu_nocb_adopt_orphan_cbs(struct rcu_state *rsp, 489static bool rcu_nocb_adopt_orphan_cbs(struct rcu_data *my_rdp,
499 struct rcu_data *rdp, 490 struct rcu_data *rdp,
500 unsigned long flags); 491 unsigned long flags);
501static int rcu_nocb_need_deferred_wakeup(struct rcu_data *rdp); 492static int rcu_nocb_need_deferred_wakeup(struct rcu_data *rdp);