Messages in this thread Patch in this message | | | From | Byungchul Park <> | Subject | [PATCH] rcu: Call wake_nocb_leader_defer() with 'FORCE' when nocb_q_count is high | Date | Wed, 28 Feb 2018 14:49:02 +0900 |
| |
If many callbacks have been queued and waking up the nocb leader should be deferred, then we should wake up the leader unconditionally when it's safe to do so.
It was well managed in commit fbce7497ee(rcu: Parallelize and economize NOCB kthread wakeups) at first, but the commit 8be6e1b15c(rcu: Use timer as backstop for NOCB deferred wakeups) made a mistake which passed RCU_NOCB_WAKE instead of RCU_NOCB_WAKE_FORCE as a parameter. Fix it.
Signed-off-by: Byungchul Park <byungchul.park@lge.com> --- kernel/rcu/tree_plugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h index b0d7f9b..c06cf87 100644 --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h @@ -1987,7 +1987,7 @@ static void __call_rcu_nocb_enqueue(struct rcu_data *rdp, trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu, TPS("WakeOvf")); } else { - wake_nocb_leader_defer(rdp, RCU_NOCB_WAKE, + wake_nocb_leader_defer(rdp, RCU_NOCB_WAKE_FORCE, TPS("WakeOvfIsDeferred")); } rdp->qlen_last_fqs_check = LONG_MAX / 2; -- 1.9.1
| |