lkml.org 
[lkml]   [2009]   [Aug]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] x86: use hard_smp_processor_id to get apic id in identify_cpu -v2
From
Date
On Tue, 2009-08-25 at 18:14 -0700, Yinghai Lu wrote:
> Suresh Siddha wrote:
> > On Tue, 2009-08-25 at 15:06 -0700, Yinghai Lu wrote:
> >> and leave phys_proc_id to use initial apic id.
> >
> > No. We need to be consistent for both phys_proc_id and apicid
> > computations.
> >
> > i.e., if the bios changes the apic id's and those updated apic id's are
> > not reflected in the initial apic id, then we need to use
> > hard_smp_processor_id() for both phys_proc_id and apicid computations.
>
> then you may get wrong phys_proc_id for amd system with apic id lifting.

Then we should add an exception for AMD systems too. And not change
generic code.

> A: phys_pkg_id:
> Default option:
> use cpu id to get initial apic id, and then use initial apic id to get phys_pkg_id.
>
> exception:
> vsmp: need to use apic id to get phys_pkg_id, and apic id and initial apic id is not consistent.
>
> for AMD system with apic id lifting, initial apic id and apic is not consistent. but we should
> use initial apic id to get phys_pkg_id. and that is consistent to Default option.
>
> B: c->apicid for real apic id?
> we already have c->initial_apicid, and c->apicid.
> 1. for amd system with apicid lifting, should use hard_smp_processor_id to get c->apicid.
> 2. for intel system (other than vsmp, and x445), c->apicid c->initial_apicid is the same, so could use hard_smp_processor_id

On the platforms which don't support cpuid leaf 0xb, apicid and initial
apicid might be potentially different if the bios changes the apicid.
And we don't want to depend on the bios to get the things correct. So
where it is not needed, we don't want to depend on the
hard_smp_processor_id() for topology detection.

In short, on all the platforms we want to use initial apic id for apicid
and phys_proc_id. And only on the required platforms like x445, vsmp,
some AMD platforms, we can have their own mechanisms.

> 3. for vsmp, and x445, do you want to have c->apicid to have real apic id or the same as initial apic_id?

On these platforms, c->apicid should be based on their real apic id.

>
> this patch is trying to make c->apicid to have real apic_id.

Can you please modify the patch so that we can have exceptions for
needed platforms only?

thanks,
suresh



\
 
 \ /
  Last update: 2009-08-26 19:53    [W:0.051 / U:1.500 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site