> On Fri, Nov 11, 2022 at 01:48:26PM +0100, Paolo Bonzini wrote: > > On 11/11/22 13:19, Peter Zijlstra wrote: > > > On Fri, Nov 11, 2022 at 01:04:27PM +0100, Paolo Bonzini wrote: > > > > On Intel you can optionally make it hold onto IRQs, but NMIs are > > > > always eaten by the VMEXIT and have to be reinjected manually. > > > > > > That 'optionally' thing worries me -- as in, KVM is currently > > > opting-out? > > > > Yes, because "If the “process posted interrupts” VM-execution control > > is 1, the “acknowledge interrupt on exit” VM-exit control is 1" (SDM > > 26.2.1.1, checks on VM-Execution Control Fields). Ipse dixit. Posted > > interrupts are available and used on all processors since I think Ivy Bridge. > > (imagine the non-coc compliant reaction here) > > So instead of fixing it, they made it worse :-( > > And now FRED is arguably making it worse again, and people wonder why I > hate virt... Maybe I take it wrong, but FRED doesn't make anything worse. Fred entry code will call external_interrupt() immediately for IRQs. You really really don't like the context how VMX dispatches NMI/IRQs (which has been there for a long time), right? As you said, what if we do not call DEFINE_IDTENTRY_*(func) but the internal IRQ handlers __func? That way we take out the setup for RCU/lockdep/etc.