On 06/09/2019 15:01, Jan Beulich wrote:
> Legacy apic init uses bigsmp for smp systems with 8 and more CPUs. The
> bigsmp APIC implementation uses physical destination mode, but it
> nevertheless initializes LDR and DFR. The LDR even ends up incorrectly with
> multiple bit being set.
>
> This does not cause a functional problem because LDR and DFR are ignored
> when physical destination mode is active, but it triggered a problem on a
> 32-bit KVM guest which jumps into a kdump kernel.
>
> The multiple bits set unearthed a bug in the KVM APIC implementation. The
> code which creates the logical destination map for VCPUs ignores the
> disabled state of the APIC and ends up overwriting an existing valid entry
> and as a result, APIC calibration hangs in the guest during kdump
> initialization.
>
> Remove the bogus LDR/DFR initialization.
>
> This is not intended to work around the KVM APIC bug. The LDR/DFR
> ininitalization is wrong on its own.
>
> Suggested-by: Thomas Gleixner <[email protected]>
> Signed-off-by: Bandan Das <[email protected]>
> [Linux commit bae3a8d3308ee69a7dbdf145911b18dfda8ade0d]
>
> Drop init_apic_ldr_x2apic_phys() at the same time.
>
> Signed-off-by: Jan Beulich <[email protected]>

Acked-by: Andrew Cooper <[email protected]>

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to