On 09/28/2016 12:16 AM, Peter Zijlstra wrote: >> 1. Is it OK in general to short-circuit preemption off irq checks for NMI style >> > interrupts. > Yes. If the NMI returns to kernel space you must not attempt preemption > for reasons you found :-), if the NMI returns to userspace you should do > the normal return to user bits, I think. Just to add, eliding preemption check in return path might not be sufficient as we could still have timer intr leading to scheduler_tick() - whcih is what i found as well ;-) So scheduler nevertheless needs to be told to not reschedule in this code path. So eliding preempt-off-irq just becomes an optimization for NMI code paths IMHO. Now I was a stupid fool, fudging preemption counts in low level code, to achieve this, whereas we have nice generic nmi_{enter,exit}() and in_nmi() helpers which can be used. Thx, -Vineet