Re: [patch 37/53] x86/cpu: Detect real BSP on crash kernels

From: Zhang, Rui
Date: Fri Jan 12 2024 - 04:14:19 EST


Add Len.

On Wed, 2024-01-10 at 16:14 +0100, Thomas Gleixner wrote:
> On Wed, Jan 10 2024 at 15:19, Thomas Gleixner wrote:
> > > This is the order in MADT,
> > > $ cat apic.dsl  | grep x2Apic
> > > [030h 0048   4]          Processor x2Apic ID : 00000010
> > > [040h 0064   4]          Processor x2Apic ID : 00000011
> ...
> > > and this is the order in Linux (from CPU0 to CPUN)
> > >       x2APIC ID of logical processor = 0x20 (32)
> > >       x2APIC ID of logical processor = 0x10 (16)
> >
> > What a mess...
>
> And clearly not according to the spec
>
>   "The second is that platform firmware should list the boot
> processor
>    as the first processor entry in the MADT."
>
> Oh well. There are reasons why this is written the way it is.

This is indeed a violation of the ACPI spec and we should modify the
order in MADT. But this doesn't bring any actual effect as Linux
already handles this, right?

For the BSP APIC ID 0x20, I didn't find out a specific reason why we
have to do it in that way, but it is still legal. We may need to figure
out another way to distinguish the kdump kernel.

thanks,
rui