2005-01-07 23:54:15

by YhLu

[permalink] [raw]
Subject: RE: 256 apic id for amd64

arch/x86_64/kernel/setup.c

static void __init detect_ht(struct cpuinfo_x86 *c)

phys_proc_id[cpu] = phys_pkg_id(index_msb);

--->
Phy_proc_id[cpu] = cpu_to_node[cpu];
Or
// that is initial apicid
phys_proc_id[cpu] = c->x86_apicid >> hweight32(c->x86_num_cores -
1);

YH

-----Original Message-----
From: Andi Kleen [mailto:[email protected]]
Sent: Friday, January 07, 2005 2:18 PM
To: YhLu
Cc: Matt Domsch; [email protected]; [email protected];
[email protected]; [email protected]
Subject: Re: 256 apic id for amd64

On Fri, Jan 07, 2005 at 01:44:19PM -0800, YhLu wrote:
> Can you consider to use c->x86_apicid to get phy_proc_id, that is initial
> apicid.?

Where?

-Andi


2005-01-08 00:15:29

by James Cleverdon

[permalink] [raw]
Subject: Re: 256 apic id for amd64

Clustered APIC systems need the phys_proc_id to come from the APIC ID
register. Intel prefers that non-clustered systems get their
phys_proc_id from the cpuid opcode.

So, using c->x86_apicid is unlikely to satisfy both parties.


On Friday 07 January 2005 04:04 pm, YhLu wrote:
> arch/x86_64/kernel/setup.c
>
> static void __init detect_ht(struct cpuinfo_x86 *c)
>
> phys_proc_id[cpu] = phys_pkg_id(index_msb);
>
> --->
> Phy_proc_id[cpu] = cpu_to_node[cpu];
> Or
> // that is initial apicid
> phys_proc_id[cpu] = c->x86_apicid >>
> hweight32(c->x86_num_cores - 1);
>
> YH
>
> -----Original Message-----
> From: Andi Kleen [mailto:[email protected]]
> Sent: Friday, January 07, 2005 2:18 PM
> To: YhLu
> Cc: Matt Domsch; [email protected]; [email protected];
> [email protected]; [email protected]
> Subject: Re: 256 apic id for amd64
>
> On Fri, Jan 07, 2005 at 01:44:19PM -0800, YhLu wrote:
> > Can you consider to use c->x86_apicid to get phy_proc_id, that is
> > initial apicid.?
>
> Where?
>
> -Andi

--
James Cleverdon
IBM LTC (xSeries Linux Solutions)
{jamesclv(Unix, preferred), cleverdj(Notes)} at us dot ibm dot comm