Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 511324e4 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

rcu: Use RCU_NOCB_WAKE rather than RCU_NOGP_WAKE



The RCU_NOGP_WAKE_NOT, RCU_NOGP_WAKE, and RCU_NOGP_WAKE_FORCE flags
are used to mediate wakeups for the no-CBs CPU kthreads.  The "NOGP"
really doesn't make any sense, so this commit does s/NOGP/NOCB/.

Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
parent d7d34d5e
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -312,9 +312,9 @@ struct rcu_data {
};
};


/* Values for nocb_defer_wakeup field in struct rcu_data. */
/* Values for nocb_defer_wakeup field in struct rcu_data. */
#define RCU_NOGP_WAKE_NOT	0
#define RCU_NOCB_WAKE_NOT	0
#define RCU_NOGP_WAKE		1
#define RCU_NOCB_WAKE		1
#define RCU_NOGP_WAKE_FORCE	2
#define RCU_NOCB_WAKE_FORCE	2


#define RCU_JIFFIES_TILL_FORCE_QS (1 + (HZ > 250) + (HZ > 500))
#define RCU_JIFFIES_TILL_FORCE_QS (1 + (HZ > 250) + (HZ > 500))
					/* For jiffies_till_first_fqs and */
					/* For jiffies_till_first_fqs and */
+4 −4
Original line number Original line Diff line number Diff line
@@ -1901,7 +1901,7 @@ static void __call_rcu_nocb_enqueue(struct rcu_data *rdp,
			trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu,
			trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu,
					    TPS("WakeEmpty"));
					    TPS("WakeEmpty"));
		} else {
		} else {
			WRITE_ONCE(rdp->nocb_defer_wakeup, RCU_NOGP_WAKE);
			WRITE_ONCE(rdp->nocb_defer_wakeup, RCU_NOCB_WAKE);
			/* Store ->nocb_defer_wakeup before ->rcu_urgent_qs. */
			/* Store ->nocb_defer_wakeup before ->rcu_urgent_qs. */
			smp_store_release(this_cpu_ptr(&rcu_dynticks.rcu_urgent_qs), true);
			smp_store_release(this_cpu_ptr(&rcu_dynticks.rcu_urgent_qs), true);
			trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu,
			trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu,
@@ -1915,7 +1915,7 @@ static void __call_rcu_nocb_enqueue(struct rcu_data *rdp,
			trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu,
			trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu,
					    TPS("WakeOvf"));
					    TPS("WakeOvf"));
		} else {
		} else {
			WRITE_ONCE(rdp->nocb_defer_wakeup, RCU_NOGP_WAKE_FORCE);
			WRITE_ONCE(rdp->nocb_defer_wakeup, RCU_NOCB_WAKE_FORCE);
			/* Store ->nocb_defer_wakeup before ->rcu_urgent_qs. */
			/* Store ->nocb_defer_wakeup before ->rcu_urgent_qs. */
			smp_store_release(this_cpu_ptr(&rcu_dynticks.rcu_urgent_qs), true);
			smp_store_release(this_cpu_ptr(&rcu_dynticks.rcu_urgent_qs), true);
			trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu,
			trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu,
@@ -2242,8 +2242,8 @@ static void do_nocb_deferred_wakeup(struct rcu_data *rdp)
	if (!rcu_nocb_need_deferred_wakeup(rdp))
	if (!rcu_nocb_need_deferred_wakeup(rdp))
		return;
		return;
	ndw = READ_ONCE(rdp->nocb_defer_wakeup);
	ndw = READ_ONCE(rdp->nocb_defer_wakeup);
	WRITE_ONCE(rdp->nocb_defer_wakeup, RCU_NOGP_WAKE_NOT);
	WRITE_ONCE(rdp->nocb_defer_wakeup, RCU_NOCB_WAKE_NOT);
	wake_nocb_leader(rdp, ndw == RCU_NOGP_WAKE_FORCE);
	wake_nocb_leader(rdp, ndw == RCU_NOCB_WAKE_FORCE);
	trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu, TPS("DeferredWake"));
	trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu, TPS("DeferredWake"));
}
}