Re: oprofile can cause an NMI to schedule (was: [RT] scheduling and oprofile)

Mike Kravetz
2006-10-25T18:57:14Z

On Tue, Oct 24, 2006 at 08:54:42AM -0400, Steven Rostedt wrote:
> On Tue, 24 Oct 2006, John Levon wrote:
>
> > On Mon, Oct 23, 2006 at 10:24:34PM -0400, Steven Rostedt wrote:
> > in_atomic() is supposed to be true in this context, so the test in
> > do_page_fault() catches it.
>
> Ahh, missed that one. So this is an issue that _only_ rt needs to fix.
> OK, thanks for pointing that out.

Thanks! This issue is with an older RT kernel that I am running. In the
version of the kernel I am running nmi_enter() and nmi_exit() are commented
out as described here:

http://www.ussg.iu.edu/hypermail/linux/kernel/0508.1/1714.html

Newer RT kernels (such as linux-2.6.18-rt5) have reenabled the
add_preempt_count/sub_preempt_count calls in nmi_enter/exit. If I
understand correctly the reason one could not modify the preempt_count
from NMI code is that it could have been in the process of being
modified by non-NMI code. But, in recent RT kernels it appears that
preempt_count is still a single word modified by both NMI and
non-NMI code. What am I missing that now makes this safe?

--
Mike