• Radim Krčmář's avatar
    KVM: x86: allow hotplug of VCPU with APIC ID over 0xff · 5bd5db38
    Radim Krčmář authored
    LAPIC after reset is in xAPIC mode, which poses a problem for hotplug of
    VCPUs with high APIC ID, because reset VCPU is waiting for INIT/SIPI,
    but there is no way to uniquely address it using xAPIC.
    
    From many possible options, we chose the one that also works on real
    hardware: accepting interrupts addressed to LAPIC's x2APIC ID even in
    xAPIC mode.
    
    KVM intentionally differs from real hardware, because real hardware
    (Knights Landing) does just "x2apic_id & 0xff" to decide whether to
    accept the interrupt in xAPIC mode and it can deliver one interrupt to
    more than one physical destination, e.g. 0x123 to 0x123 and 0x23.
    
    Fixes: 682f732e ("KVM: x86: bump MAX_VCPUS to 288")
    Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
    Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    5bd5db38
lapic.c 61.2 KB