Messages in this thread |  | | Date | Wed, 13 Nov 2013 11:23:38 -0500 | From | Steven Rostedt <> | Subject | Re: nohz problem with idle time on old hardware |
| |
On Wed, 13 Nov 2013 08:18:29 -0800 "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:
> On Wed, Nov 13, 2013 at 11:12:57AM -0500, Steven Rostedt wrote: > > On Wed, 13 Nov 2013 17:07:18 +0100 (CET) > > Thomas Gleixner <tglx@linutronix.de> wrote: > > > > > > > Right. It's telling you if NOHZ is enabled. It's not telling you that > > > NOHZ is active. > > > > Yeah, which makes this code rather silly: > > > > in rcu_prepare_for_idle(): > > > > /* Handle nohz enablement switches conservatively. */ > > tne = ACCESS_ONCE(tick_nohz_enabled); > > if (tne != rdtp->tick_nohz_enabled_snap) { > > if (rcu_cpu_has_callbacks(cpu, NULL)) > > invoke_rcu_core(); /* force nohz to see update. */ > > rdtp->tick_nohz_enabled_snap = tne; > > return; > > } > > OK, what should I be checking instead? Not much point in trying to > get RCU out of the way of disabling the scheduling-clock interrupt > if NOHZ is disabled. ;-) >
I'll leave the answer to Thomas, but checking tick_nohz_enabled just lets you know if someone booted with nohz=off or not (and has nohz configured). But it doesn't tell you if nohz is actually being used.
That is, tick_nohz_enabled is set at bootup and never changes.
Perhaps this old hardware uncovered other bugs as well ;-)
-- Steve
|  |