On Tue, Oct 04, 2022 at 01:41:38PM +0200, Uladzislau Rezki wrote: > > trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, TPS("Check")); > > rcu_nocb_lock_irqsave(rdp, flags); > > lockdep_assert_held(&rdp->nocb_lock); > > bypass_ncbs = rcu_cblist_n_cbs(&rdp->nocb_bypass); > > - if (bypass_ncbs && > > + lazy_ncbs = READ_ONCE(rdp->lazy_len); > > + > > + if (bypass_ncbs && (lazy_ncbs == bypass_ncbs) && > > + (time_after(j, READ_ONCE(rdp->nocb_bypass_first) + jiffies_till_flush) || > > + bypass_ncbs > 2 * qhimark)) { > Do you know why we want double "qhimark" threshold? It is not only this > place, there are several. I am asking because it is not expected by the > user. OK, I will bite... What does the user expect? Or, perhaps a better question, how is this choice causing the user problems? Thanx, Paul