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

From: Pu Wen
Date: Fri Mar 22 2019 - 22:16:22 EST


On 2019/3/23 1:16, Borislav Petkov wrote:
> On Sat, Mar 23, 2019 at 12:19:01AM +0800, Pu Wen wrote:
>>> Sounds to me like you're programming the initial APIC ID not
>>> the same way as AMD do...
>>
>> In the same way.
>
> So why do you need to do something different than what AMD does?

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.

--
Regards,
Pu Wen