| From: |
| Steven Rostedt <rostedt@goodmis.org> |
| To: |
| linux-kernel@vger.kernel.org |
| Subject: |
| [RFC][PATCH 0/3] x86: Find a way to allow breakpoints in NMIs |
| Date: |
| Thu, 08 Dec 2011 14:30:03 -0500 |
| Message-ID: |
| <20111208193003.112037550@goodmis.org> |
| Cc: |
| Ingo Molnar <mingo@elte.hu>,
Andrew Morton <akpm@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
"H. Peter Anvin" <hpa@zytor.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Jason Baron <jbaron@redhat.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
| Archive‑link: | |
Article |
As been previously discussed on LKML, x86 has an issue with NMIs and iret.
If an NMI takes an exception or breakpoint, iret that those handlers do
will take the CPU out of NMI context, which could allow another NMI to
come in and corrupt the stack.
Linus has discussed a way to solve this and I tried to implement it.
What I came up with was a bit different, but I'm posting it now to get
some feedback from it. See patch 3. I wrote a very detailed change log
there and wont repeat it here.
Let me know what everyone thinks.
Thanks!
-- Steve
---
Linus Torvalds (1):
x86: Do not schedule while still in NMI context
Steven Rostedt (2):
x86: Document the NMI handler about not using paranoid_exit
x86: Add workaround to NMI iret woes
----
arch/x86/kernel/entry_64.S | 209 +++++++++++++++++++++++++++++++++++++-------
1 files changed, 176 insertions(+), 33 deletions(-)