On Wed, Nov 09, 2016 at 03:32:15PM +0900, Byungchul Park wrote: > 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.
Hello, I think these two patches are necessary to call resched_cpu() even in case of jiffies >= rcu_state.jiffies_resched, too. Am I wrong? It would be appriciated if you let me know if I was wrong. Thank you, Byungchul > > Signed-off-by: Byungchul Park <[email protected]> > --- > 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

