Re: [RFC PATCH] x86/cpu/hygon: Fix phys_proc_id calculation logic for multi-die processor

From: Borislav Petkov
Date: Sat Mar 23 2019 - 04:59:33 EST


On Sat, Mar 23, 2019 at 10:13:39AM +0800, Pu Wen wrote:
> Current physical id is computed via "phys_proc_id = initial_apicid >>
> bits".
>
> For 4-Die 2 socket system, the physical id of socket 2 is:
> initial_apicid >> bits = 0b1xxxxxx >> 6 = 1.
> The result is true.
>
> But for 2-Die 2 socket system, the physical id of socket 2 is:
> initial_apicid >> bits = 0b10xxxxx >> 5 = 2,
> and for 1-Die 2 socket system, the physical id of socket 2 is:
> initial_apicid >> bits = 0b100xxxx >> 4 = 4.
> The results are not correct any more.
>
> So the adjustment for the 1-Die/2-Die 2 socket system is needed.
> And just use ApicId[6], which already defined the right thing, as the
> socket ID.

I understand all that. But let me repeat my question:

So why do you need to do something different than what AMD does?

You said you're programming the initial APIC ID the same as AMD. So why
doesn't this need to be changed in AMD code too but only for hygon?

--
Regards/Gruss,
Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.