[PATCH 2/2] rcu: Force resched_cpu when jiffies >= rcu_state.jiffies_resched

From: Byungchul Park
Date: Wed Nov 09 2016 - 01:36:26 EST


Currently rcu code forces CPU into scheduler when jiffies >=
rcu_state.gp_start + jiffies_till_sched_qs, via resched_cpu().

It would be better to force CPU into scheduler when jiffies >=
rcu_state.jiffies_resched, too.

Signed-off-by: Byungchul Park <byungchul.park@xxxxxxx>
---
kernel/rcu/tree.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index d8e8859..287f468 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -1217,11 +1217,10 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
READ_ONCE(*rcrmp) + rdp->rsp->flavor_mask);
}
rdp->rsp->jiffies_resched += 5; /* Re-enable beating. */
- }

- /* And if it has been a really long time, kick the CPU as well. */
- if (ULONG_CMP_GE(jiffies, rdp->rsp->gp_start + jiffies_till_sched_qs))
+ /* And if it has been a really long time, kick the CPU as well. */
resched_cpu(rdp->cpu); /* Force CPU into scheduler. */
+ }

return 0;
}
--
1.9.1