Messages in this thread | | | Date | Sun, 27 Apr 2008 20:05:50 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: [git pull] scheduler/misc fixes |
| |
On Fri, 25 Apr 2008, Peter Zijlstra wrote: > So per b) any nohz wake needs to be done with an interrupt _and_ all > such interrupts must pass through irq_enter(). > > As far as I can tell this is not nessecarily true (or desired from a > performance POV) for all platforms, imagine the core2 monitor/mwait idle > that wakes up because of a memory write. This doesn't require an > interrupt at all to wake up. > > So, are we going to require all waking interrupts (IPIs and regular) to > do the irq_enter/exit() dance and add the perhaps unneeded overhead to > these paths and require the non-interrupt driven wake-ups like > monitor/mwait to do the touch_softlockup_watchdog() themselves?
regular irqs need to go through irq_enter()/exit() in any case.
IPIs are border line. As long as none of the IPI code relies on jiffies, touches timers ... we don't. But we are on the safe side if we do.
> Or, > > Is Ingo's initial patch to make nohz_restart() also touch the softlockup > watchdog the best fix (now that we understand what happens)?
Yes, we need it for mwait based wakeups which don't go through interrupts at all.
Thanks, tglx
| |