On Wed, Feb 19, 2020 at 09:21:48AM -0800, Andy Lutomirski wrote: > On Wed, Feb 19, 2020 at 9:13 AM Borislav Petkov <bp@xxxxxxxxx> wrote: > > > > On Wed, Feb 19, 2020 at 03:47:26PM +0100, Peter Zijlstra wrote: > > > Subject: Re: [PATCH v3 02/22] x86,mce: Delete ist_begin_non_atomic() > > > > x86/mce: ... > > > > > It is an abomination; and in prepration of removing the whole > > > ist_enter() thing, it needs to go. > > > > > > Convert #MC over to using task_work_add() instead; it will run the > > > same code slightly later, on the return to user path of the same > > > exception. > > > > That's fine because the error happened in userspace. > > Unless there is a signal pending and the signal setup code is about to > hit the same failed memory. I suppose we can just treat cases like > this as "oh well, time to kill the whole system". > > But we should genuinely agree that we're okay with deferring this handling. It doesn't delay much. The moment it does that local_irq_enable() it's subject to preemption, just like it is on the return to user path. Do you really want to create code that unwinds enough of nmi_enter() to get you to a preemptible context? *shudder*