Re: [RESEND PATCH 4/6] x86/traps: add external_interrupt() to dispatch external interrupts

From: Sean Christopherson
Date: Thu Nov 10 2022 - 15:11:26 EST


On Thu, Nov 10, 2022, Li, Xin3 wrote:
> > > +__visible noinstr void external_interrupt(struct pt_regs *regs,
> > > + unsigned int vector)
> > > +{
> > > + unsigned int sysvec = vector - FIRST_SYSTEM_VECTOR;
> > > +
> > > + BUG_ON(vector < FIRST_EXTERNAL_VECTOR);
> >
> > Why not return an error up the stack? KVM and/or CPU bugs aren't unheard
> > of.
> > Dropping an IRQ obviously isn't ideal, but there's a non-zero chance that letting
> > KVM WARN and kill the VM will keep the host alive and thus other VMs
> > running. A somewhat sophisticated setup might even react to the VM being
> > killed by migrating other VMs off the system and initiating host maintenance.
>
> Make sense.
>
> What about having it return a signed integer?

Ya, the standard 0/-errno will do nicely.