Messages in this thread | | | Date | Wed, 23 Jul 2014 18:23:48 +0200 | From | Frederic Weisbecker <> | Subject | Re: [PATCH tip/core/rcu] Do not keep timekeeping CPU tick running for non-nohz_full= CPUs |
| |
On Mon, Jul 21, 2014 at 10:33:06AM -0700, Paul E. McKenney wrote: > On Mon, Jul 21, 2014 at 07:04:59PM +0200, Peter Zijlstra wrote: > > On Mon, Jul 21, 2014 at 08:57:41AM -0700, Paul E. McKenney wrote: > > > On Sun, Jul 20, 2014 at 10:34:17PM +0200, Peter Zijlstra wrote: > > > > On Sun, Jul 20, 2014 at 04:47:59AM -0700, Paul E. McKenney wrote: > > > > > So we really have to have -all- the CPUs be idle to turn off the timekeeper. > > > > > > > > That seems to be pretty unavoidable any which way around. > > > > > > Hmmm... The exception would be the likely common case where none of > > > the CPUs are flagged as nohz_full= CPUs. If we handled that case as > > > if CONFIG_NO_HZ_FULL=n, we would have handled almost all of > > > the problem. > > > > You mean that is not currently the case? Yes that seems like a fairly > > sane thing to do. > > Hard to say -- need to see where Frederic is putting the call to > rcu_sys_is_idle(). On the RCU side, I could potentially lower overhead > by checking tick_nohz_full_enabled() in a few functions.
Yeah you definetly can.
Just put this in the very beginning of rcu_sys_is_idle():
if (tick_nohz_full_enabled()) return true;
That imply perhaps a more appropriate name like rcu_sys_need_timekeeper(), with inverted condition.
| |