Messages in this thread | | | Date | Thu, 16 May 2013 19:56:02 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH 1/2] nohz: Disable LOCKUP_DETECTOR when NO_HZ_FULL is enabled |
| |
On Thu, May 16, 2013 at 08:07:06AM -0700, Paul E. McKenney wrote: > On Thu, May 16, 2013 at 10:10:27AM +0200, Peter Zijlstra wrote: > > On Wed, May 15, 2013 at 01:04:01PM -0400, Steven Rostedt wrote: > > > On Wed, 2013-05-15 at 18:59 +0200, Peter Zijlstra wrote: > > > > > > > At which point we could run the watchdog without perf_event_task_tick(). > > > > > > At which point we can drop the disable LOCKUP_DETECTOR when NO_HZ_FULL > > > is enabled ;-) > > > > > > > Can we? The thing I'm worried about is RCU (of course!). ISTR we rely on RCU > > working in NMI context. AFAIR for RCU to work, we need to come out of out magic > > NO_HZ state since that would've put RCU into EQS. > > > > Frederic, PaulMck? > > Not sure I understand the question, but hopefully the verbiage below helps. > > Only RCU read-side critical sections need to work in NMI context, > and RCU hooks into nmi_enter() and nmi_exit() to handle this, and this > will work in NO_HZ_FULL in the same way that it works for NO_HZ_IDLE. > > But if there are no NMIs, RCU doesn't care. In other words, RCU needs > to know about NMIs so that it can deal with any RCU read-side critical > sections in the NMI handlers, but RCU doesn't rely on NMIs happening at > any particular time or frequency.
I suppose the fundamental question was: will receiving NMIs negate NO_HZ_FULL's functionality? That is, will the getting of NMIs make us drop out of NO_HZ_FULL and re-enable all sorts of things?
Because clearly RCU needs to exit from EQS, which might (or might not) mean leaving NO_HZ_FULL.
I'm not entirely up-to-date on those details.
| |