Re: [PATCH] x86/traps: Don't for in_interrupt() to return true in IST handlers

From: Peter Zijlstra
Date: Tue May 24 2016 - 05:51:48 EST



@Andy, its linux-kernel@vger, not lkml@vger :-)

On Tue, May 24, 2016 at 11:36:29AM +0200, Borislav Petkov wrote:
> On Tue, May 24, 2016 at 10:59:45AM +0200, Peter Zijlstra wrote:
> > Which use a sequence of: in_nmi(), in_irq(), in_softirq() to pick 1 out
> > of 4 possible contexts.
>
> So should we make it cleaner and explicit and define a 5th context of
> priorities higher than NMI?
>
> There's some room between those two:
>
> * NMI_MASK: 0x00100000
> * PREEMPT_NEED_RESCHED: 0x80000000
>

A lot of pain; we'd have to go grow a whole bunch of things to 5.

Also, I don't think 5 is enough to model all the IST nesting. I'm also
not sure we really care too much; IST stuff is relatively rare. It just
means we can loose IST based trace events and the like, because its
treated as recursion.

So I think keeping it at 4 is fine, but we do want to make a semi
concious choice on how we map back to those 4.