On Mon, Apr 29, 2019 at 01:07:33PM -0700, Linus Torvalds wrote: > On Mon, Apr 29, 2019 at 12:24 PM Andy Lutomirski <luto@xxxxxxxxxx> wrote: > > > Side note: we *already* depend on sti shadow working in other parts of the kernel, namely sti->iret. > > > > Where? STI; IRET would be nuts. > > Sorry, not 'sti;iret' but 'sti;sysexit' > > > before commit 4214a16b02971c60960afd675d03544e109e0d75 > > x86/asm/entry/64/compat: Use SYSRETL to return from compat mode SYSENTER > > > > we did sti; sysxit, but, when we discussed this, I don't recall anyone > > speaking up in favor of the safely of the old code. > > We still have that sti sysexit in the 32-bit code. We also have both: "STI; HLT" and "STI; MWAIT" where we rely on the STI shadow. Getting an NMI in between shouldn't hurt too much, but if that in turn can lead to an actual interrupt happening, we're up some creek without no paddle. Most moden systems don't use either anymore though. As mwait_idle_with_hints() relies on MWAIT ECX[0]=1 to allow MWAIT to wake from pending interrupts.