On Fri, Apr 23, 2021 at 5:50 PM Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > Don't set the BSP bit in vcpu->arch.apic_base when the local APIC is > managed by userspace. Forcing all vCPUs to be BSPs is non-sensical, and > was dead code when it was added by commit 97222cc83163 ("KVM: Emulate > local APIC in kernel"). At the time, kvm_lapic_set_base() was invoked > if and only if the local APIC was in-kernel (and it couldn't be called > before the vCPU created its APIC). > > kvm_lapic_set_base() eventually gained generic usage, but the latent bug > escaped notice because the only true consumer would be the guest itself > in the form of an explicit RDMSRs on APs. Out of Linux, SeaBIOS, and > EDK2/OVMF, only OVMF consume the BSP bit from the APIC_BASE MSR. For > the vast majority of usage in OVMF, BSP confusion would be benign. > OVMF's BSP election upon SMI rendezvous might be broken, but practically > no one runs KVM with an out-of-kernel local APIC, let alone does so while > utilizing SMIs with OVMF. > > Fixes: 97222cc83163 ("KVM: Emulate local APIC in kernel") > Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> Reviewed-by: Reiji Watanabe <reijiw@xxxxxxxxxx>