Messages in this thread | | | From | Andy Lutomirski <> | Subject | Re: [RFC] #MC mess | Date | Wed, 19 Feb 2020 07:20:31 -0800 |
| |
> On Feb 19, 2020, at 7:05 AM, Peter Zijlstra <peterz@infradead.org> wrote: > > On Wed, Feb 19, 2020 at 09:21:15AM -0500, Steven Rostedt wrote: >>> On Wed, 19 Feb 2020 09:15:41 +0100 >>> Peter Zijlstra <peterz@infradead.org> wrote: >>> >>>>> >>>>> Tony, etc, can you ask your Intel contacts who care about this kind of >>>>> thing to stop twiddling their thumbs and FIX IT? The easy fix is >>>>> utterly trivial. Add a new instruction IRET_NON_NMI. It does >>>>> *exactly* the same thing as IRET except that it does not unmask NMIs. >>>>> (It also doesn't unmask NMIs if it faults.) No fancy design work. >>>>> Future improvements can still happen on top of this. >>> >>> Yes please! Of course, we're stuck with the existing NMI entry crap >>> forever because legacy, but it would make all things NMI so much saner. >> >> What would be nice is to have a NMI_IRET, that is defined as something >> that wont break legacy CPUs. Where it could be just a nop iret, or maybe >> if possible a "lock iret"? That is, not have a IRET_NON_NMI, as that >> would be all over the place, but just the iret for NMI itself. As >> that's in one place. > > I don't think that matters much; alternatives should be able to deal > with all that either which way around.
Agreed. That being said, kernels without alternatives could prefer the variant where a CR4 bit makes regular IRET leave NMIs masked and a new IRET instruction (or LOCK IRET, I suppose) unmasks them.
| |