Messages in this thread | | | Date | Thu, 2 May 2024 16:42:02 +0200 | Subject | Re: [PATCH] x86/xen/smp_pv: Register the boot CPU APIC properly | From | Jürgen Groß <> |
| |
On 02.05.24 16:39, Thomas Gleixner wrote: > The topology core expects the boot APIC to be registered from earhy APIC > detection first and then again when the firmware tables are evaluated. This > is used for detecting the real BSP CPU on a kexec kernel. > > The recent conversion of XEN/PV to register fake APIC IDs failed to > register the boot CPU APIC correctly as it only registers it once. This > causes the BSP detection mechanism to trigger wrongly: > > CPU topo: Boot CPU APIC ID not the first enumerated APIC ID: 0 > 1 > > Additionally this results in one CPU being ignored. > > Register the boot CPU APIC twice so that the XEN/PV fake enumeration > behaves like real firmware. > > Reported-by: Juergen Gross <jgross@suse.com> > Fixes: e75307023466 ("x86/xen/smp_pv: Register fake APICs") > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > Tested-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Thanks for the patch, I'll take it via the Xen tree.
Juergen
> --- > arch/x86/xen/smp_pv.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > --- a/arch/x86/xen/smp_pv.c > +++ b/arch/x86/xen/smp_pv.c > @@ -154,9 +154,9 @@ static void __init xen_pv_smp_config(voi > u32 apicid = 0; > int i; > > - topology_register_boot_apic(apicid++); > + topology_register_boot_apic(apicid); > > - for (i = 1; i < nr_cpu_ids; i++) > + for (i = 0; i < nr_cpu_ids; i++) > topology_register_apic(apicid++, CPU_ACPIID_INVALID, true); > > /* Pretend to be a proper enumerated system */
| |