Re: [PATCH] KVM: LAPIC: Do not mask the local interrupts when LAPIC is sw disabled

From: Sean Christopherson
Date: Thu May 30 2019 - 14:49:41 EST


On Tue, May 21, 2019 at 06:44:15PM +0800, Luwei Kang wrote:
> The current code will mask all the local interrupts in the local
> vector table when the LAPIC is disabled by SVR (Spurious-Interrupt
> Vector Register) "APIC Software Enable/Disable" flag (bit8).
> This may block local interrupt be delivered to target vCPU
> even if LAPIC is enabled by set SVR (bit8 == 1) after.

The current code aligns with the SDM, which states:

Local APIC State After It Has Been Software Disabled

When the APIC software enable/disable flag in the spurious interrupt
vector register has been explicitly cleared (as opposed to being cleared
during a power up or reset), the local APIC is temporarily disabled.
The operation and response of a local APIC while in this software-
disabled state is as follows:

- The mask bits for all the LVT entries are set. Attempts to reset
these bits will be ignored.