Messages in this thread | | | Date | Tue, 30 Jun 2015 23:56:37 +0200 | Subject | Re: [PATCH RFC tip/core/rcu 5/5] rcu: Limit expedited helping to every 10 ms or every 4th GP | From | Eric Dumazet <> |
| |
On Tue, Jun 30, 2015 at 11:48 PM, Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote: > From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> > > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > --- > kernel/rcu/tree.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > index 308b6acb4260..247aa1120c4c 100644 > --- a/kernel/rcu/tree.c > +++ b/kernel/rcu/tree.c > @@ -3505,10 +3505,19 @@ void synchronize_sched_expedited(void) > !atomic_read(&rsp->expedited_need_qs)); > > rcu_exp_gp_seq_end(rsp); > - mutex_unlock(&rnp->exp_funnel_mutex); > smp_mb(); /* ensure subsequent action seen after grace period. */ > - if (rsp->gp_kthread && rcu_gp_in_progress(rsp)) > - wake_up(&rsp->gp_wq); > + if (rsp->gp_kthread && rcu_gp_in_progress(rsp)) { > + static unsigned long nextgp; > + static unsigned long nextjiffy; > + > + if (time_after_eq(jiffies, nextgp) || > + ULONG_CMP_GE(rsp->gpnum, nextgp)) { > + nextgp = rsp->gpnum + 4; > + nextjiffy = jiffies + 10;
Do you want 10 ticks or 10 ms (as stated in title) ?
> + wake_up(&rsp->gp_wq); > + } > + } > + mutex_unlock(&rnp->exp_funnel_mutex); > > put_online_cpus(); > } > -- > 1.8.1.5 >
| |