[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160818112155.634bebcb@gandalf.local.home>
Date: Thu, 18 Aug 2016 11:21:55 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Andy Lutomirski <luto@...capital.net>
Cc: LKML <linux-kernel@...r.kernel.org>, Jiri Olsa <jolsa@...hat.com>
Subject: Question: Outer NMI can nest if from user mode?
Hi Andy,
I was reading some of the comments in nmi.c and came across this:
/*
* NMIs can page fault or hit breakpoints which will cause it to lose
* its NMI context with the CPU when the breakpoint or page fault does an IRET.
*
* As a result, NMIs can nest if NMIs get unmasked due an IRET during
* NMI processing. On x86_64, the asm glue protects us from nested NMIs
* if the outer NMI came from kernel mode, but we can still nest if the
* outer NMI came from user mode.
What confuses me is "but we can still nest if the outer NMI came from
user mode".
How can that happen? You mean do_nmi() can be called nested even on
x86_64 if the first NMI happened in user mode?
-- Steve
Powered by blists - more mailing lists