8.1-PRERELEASE: CPU packages not detected correctly

Jung-uk Kim jkim at FreeBSD.org
Wed Jul 14 21:55:14 UTC 2010


On Wednesday 14 July 2010 05:40 pm, Jung-uk Kim wrote:
> On Wednesday 14 July 2010 01:31 pm, Andriy Gapon wrote:
> > on 14/07/2010 17:14 Oliver Fromme said the following:
> > > In a machine installed yesterday, 8.1-PRERELEASE doesn't
> > > seem to detect the number of CPU packages vs. cores per
> > >
> > > package correctly:
> > >  | FreeBSD 8.1-PRERELEASE-20100713 #0: Tue Jul 13 19:51:18 UTC
> > >  | 2010 [...]
> > >  | CPU: Intel(R) Xeon(R) CPU           L5408  @ 2.13GHz
> > >  | (2133.42-MHz K8-class CPU) Origin = "GenuineIntel"  Id =
> > >  | 0x1067a  Family = 6  Model = 17  Stepping = 10
> > >  | Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,
> > >  |SE
> > >  | P,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,
> > >  |SSE 2,SS,HTT,TM,PBE>
> > >  | Features2=0x40ce3bd<SSE3,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3
> > >  |,C X16,xTPR,PDCM,DCA,SSE4.1,XSAVE> AMD
> > >  | Features=0x20000800<SYSCALL,LM>
> > >  |   AMD Features2=0x1<LAHF>
> > >  |   TSC: P-state invariant
> > >  | real memory  = 34359738368 (32768 MB)
> > >  | avail memory = 33151377408 (31615 MB)
> > >  | ACPI APIC Table: <IBM    SERBLADE>
> > >  | FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
> > >  | FreeBSD/SMP: 1 package(s) x 8 core(s)
> > >  |  cpu0 (BSP): APIC ID:  0
> > >  |  cpu1 (AP): APIC ID:  1
> > >  |  cpu2 (AP): APIC ID:  2
> > >  |  cpu3 (AP): APIC ID:  3
> > >  |  cpu4 (AP): APIC ID:  4
> > >  |  cpu5 (AP): APIC ID:  5
> > >  |  cpu6 (AP): APIC ID:  6
> > >  |  cpu7 (AP): APIC ID:  7
> > >  | ioapic1 <Version 2.0> irqs 24-47 on motherboard
> > >  | ioapic0 <Version 2.0> irqs 0-23 on motherboard
> > >
> > > I'm pretty sure that this is a 2 x 4 machine (2 CPU packages
> > > with 4 cores per package), not 1 x 8.  That's what the BIOS
> > > displays during POST.
> > >
> > > I'm not sure if this is just a "cosmetic" issue, or if this
> > > is a critical thing ...  I could imagine that performance
> > > might be sub-optimal if the CPU topology isn't detected
> > > correctly, but I'm not sure if FreeBSD can take advantage
> > > of the topology.
> >
> > Could you please try to do the following?
> > 1. Fetch topo-12212009.tar from the top of this page:
> > http://software.intel.com/en-us/articles/intel-64-architecture-pr
> >oc essor-topology-enumeration/ 2. Untar it and apply this patch to
> > the code:
> > http://people.freebsd.org/~avg/cpu-topology.diff
> > 3. Compile it by running sh mk_64.sh (supposing you have amd64
> > system installed) 4. Run cpu_topology64.out and report back its
> > output.
>
> It's funny that I actually wrote a convenience script (and cleaned
> up today):
>
> http://people.freebsd.org/~jkim/cpu_topology-12212009.sh
>
> BTW, current topology detection code is not optimal for some Intel
> processors if my memory serves.

Surprisingly, I found a patch I wrote last year from /tmp of my 
desktop and it is still applied cleanly. 8-)

Just in case, it is available from here:

http://people.freebsd.org/~jkim/mp_machdep.diff

It is applicable to both sys/amd64/amd64/mp_machdep.c and 
sys/i386/i386/mp_machdep.c.  I have to warn you, though, it hasn't 
been used for more than a year, so it may not work at all. ;-)

Jung-uk Kim


More information about the freebsd-stable mailing list