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.p...@lge.com>
---
 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

Reply via email to