Messages in this thread | | | Date | Thu, 23 Jul 2015 22:52:07 +0200 | From | Willy Tarreau <> | Subject | Re: Dealing with the NMI mess |
| |
On Thu, Jul 23, 2015 at 01:38:33PM -0700, Linus Torvalds wrote: > On Thu, Jul 23, 2015 at 1:21 PM, Andy Lutomirski <luto@amacapital.net> wrote: > > > > 2. Forbid IRET inside NMIs. Doable but maybe not that pretty. > > > > We haven't considered: > > > > 3. Forbid faults (other than MCE) inside NMI. > > I'd really prefer #2. #3 depends on us getting many things right, and > never introducing new cases in the future. > > #2, in contrast, seems to be fairly localized. Yes, RF is an issue, > but returning to user space with RF clear doesn't really seem to be > all that problematic.
What's the worst case that can happen with RF cleared when returing to user space ? My understanding is that it's just that we risk to break again on an instruction that had a break point set and which already triggered the breakpoint, right ?
If so the problem probably is whether there's a risk of looping again without ever getting a chance to execute this instruction normally. But if the NMIs don't bomb as fast as we can process them, at some point the instruction should get a chance to be executed, so the problem doesn't seem dramatic.
That makes me think that I have no idea what happens if we try to step-trace "int 2", I don't even know if we pass through the NMI handler.
Willy
| |