On Wed, Sep 11, 2013 at 4:06 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > On Wed, Sep 11, 2013 at 10:25:30AM +0200, Peter Zijlstra wrote: >> On Tue, Sep 10, 2013 at 06:59:57PM -0700, Andy Lutomirski wrote: > >> > It looks like the intel_idle code can get confused if TIF_NEED_RESCHED >> > is set but the preempt resched bit is not -- the need_resched call >> > between monitor and mwait won't notice TIF_NEED_RESCHED. >> > >> > Is this condition possible? >> >> Ah indeed, I'll have to go find all idle loops out there it seems. Now >> if only they were easy to spot :/ >> >> I was hoping the generic idle thing was good enough, apparently not >> quite. Thanks for spotting that. > > OK, and the reason I didn't notice is that the entire TS_POLLING thing > is completely wrecked so we'll get the interrupt anyway. > I bet that this improves cross-cpu wakeup latency, too -- the old code would presumably wake up the cpu and then immediately interrupt it. It might be nice to rename one or both of need_resched and test_need_resched, though -- the difference is somewhat inscrutable. --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html