maximum of CPUs

John Baldwin jhb at FreeBSD.org
Tue Jul 15 12:34:38 PDT 2003


On 15-Jul-2003 Cagle, John (ISS-Houston) wrote:
>> Well, the problem is that the original APIC's only supported 
>> 15 physical
>> APIC IDs.  The (x)APIC's from Pentium4+ support 255 physical APIC IDs.
>> If the BIOS does the right thing as far as providing ID's for the I/O
>> APICs in the mptable and/or ACPI MADT, future versions of 
>> FreeBSD should
>> work just fine.
>> 
>> -- 
>> 
>> John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
>> "Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/ 
> 
> John,
> 
> The BIOS on our 8-way does list all 3 IOAPICs in the mptable (not the
> local APICs), but it does not list the logical processors, only the
> physical processors:
> 
> Processors:     APIC ID Version State           Family  Model   Step
> Flags
>                  0       0x14    BSP, usable     15      2       2
> 0x3febfbff
>                  2       0x14    AP, usable      15      2       2
> 0x3febfbff
>                  4       0x14    AP, usable      15      2       2
> 0x3febfbff
>                  6       0x14    AP, usable      15      2       2
> 0x3febfbff
>                  8       0x14    AP, usable      15      2       2
> 0x3febfbff
>                 10       0x14    AP, usable      15      2       2
> 0x3febfbff
>                 12       0x14    AP, usable      15      2       2
> 0x3febfbff
>                 14       0x14    AP, usable      15      2       2
> 0x3febfbff
> --
> I/O APICs:      APIC ID Version State           Address
>                  8       0x11    usable          0xfec00000
>                  9       0x11    usable          0xfec01000
>                 10       0x11    usable          0xfec02000
> 
> Is this what you would expect to see on an 8-way server that supports
> hyperthreading?

Ugh, I would hope that the APIC ID's wouldn't collide with CPUs. :(
Note that you have real CPU's at ID's 8 and 10 and a logical one at
9.  Currently my code doesn't renumber APIC ID's to try to cope with
this type of case.  Does the ACPI MADT table report the same values
for the APIC ID's of the I/O APICs?

> P.S. Here is the panic that I get currently:
> 
> CPU: Intel(R) XEON(TM) MP CPU 1.50GHz (1499.46-MHz 686-class CPU)
>   Origin = "GenuineIntel"  Id = 0xf22  Stepping = 2
>  
> Features=0x3febfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE
> ,MCA,C
> MOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM>
>   Hyperthreading: 2 logical CPUs
> real memory  = 2147418112 (2047 MB)
> avail memory = 2082279424 (1985 MB)
> panic: No free physical APIC IDs found

This is from the current code that is trying to renumber the I/O
APIC's since they collide with CPUs.  I've completely rewritten
all the mptable code, but I don't support renumbering I/O APICs
yet.  I was really hoping that the BIOS would help us out enough
to keep the IDs from overlapping.

-- 

John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


More information about the freebsd-smp mailing list