Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id

Ravikiran G Thirumalai
2009-08-25T17:17:20Z

On Mon, Aug 24, 2009 at 10:12:01PM -0700, Yinghai Lu wrote:
>Ravikiran G Thirumalai wrote:
>> On Mon, Aug 24, 2009 at 04:53:45PM -0700, Yinghai Lu wrote:
>>> Ravikiran G Thirumalai wrote:
>>>> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
>>>> Cc: Yinghai Lu <yinghai@kernel.org>
>>>>
>>>
>>
>> Why? The specs seem to indicate otherwise unless I am mistaken --
>> Intel systems programming guide, Vol 3A Part1, chapter 7 section
>> 7.5.5 - Identifying Logical Processors in a MP system:
>> <quote>
>> After the BIOS has completed the MP initialization protocol, each logical
>> processor can be uniquely identified by its local APIC ID. Software can
>> access these APIC IDs in either of the following ways
>> </quote>
>> phys_pkg_id() indicates that the logical package id is being looked up,
>> so local apic id should be used here no?
>> What am I missing?
>
>initial apic id : it can not changed, there is fixed mapping from that to physical processor id aka socket id / node id.
>
>apic id: could be changed by BIOS to any value. there is no good way to get phys_pkg_id from that.
>

But BIOS is supposed to change it to a sane value. Until 2.6.30, local apic
id has been used to get phys_pkg_id for the 'flat' apics! What changed? Was
this changed for a BIOS bug? Even the intel books seem to indicate local
apic usage!