Thread (118 messages) 118 messages, 12 authors, 2016-06-23

Re: [RFC PATCH v2 05/18] sched: add task flag for preempt IRQ tracking

From: Andy Lutomirski <luto@amacapital.net>
Date: 2016-04-30 00:10:20
Also in: linux-s390, lkml

On Apr 29, 2016 3:11 PM, "Jiri Kosina" [off-list ref] wrote:
On Fri, 29 Apr 2016, Andy Lutomirski wrote:
quoted
quoted
NMI, MCE and interrupts aren't a problem because they have dedicated
stacks, which are easy to detect.  If the tasks' stack is on an
exception stack or an irq stack, we consider it unreliable.
Only on x86_64.
Well, MCEs are more or less x86-specific as well. But otherwise good
point, thanks Andy.

So, how does stack layout generally look like in case when NMI is actually
running on proper kernel stack? I thought it's guaranteed to contain
pt_regs anyway in all cases. Is that not guaranteed to be the case?
On x86, at least, there will still be pt_regs for the NMI.  For the
interrupted state, though, there might not be pt_regs, as the NMI
might have happened while still populating pt_regs.  In fact, the NMI
stack could overlap task_pt_regs.

For x86_32, there's no guarantee that pt_regs contains sp due to
hardware silliness.  You need to parse it more carefully, as,
!user_mode(regs), then the old sp is just above pt_regs.

--Andy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help