only one logical CPU used in Xeon

Robert Heron robert at heron.pl
Wed Mar 11 03:21:53 PDT 2009


On Mar 11, 2009, at 9:03 AM, Oliver Fromme wrote:

>> I also tried 6.4 with exactly the same wrong results as 6.2.
>
> That's suprising.  Actually I think that all fixes to the
> CPU detection code have been backported to 6-stable.
>

Cores are detected correctly, but not used all by default  
(hyperthreading_allowed=0).
When I change hyperthreading_allowed to 1 on a running system it  
starts to use all cores. When switch back to 0, uses only 1 core of  
each cpu.

>> 7.1 is OK, but is has hyperthreading_allowed=1 by default.
>
> What happens if you set hyperthreading_allowed=0 on 7.1?
>

no change. 7.1 uses all cores regardless of value of  
hyperthreading_allowed

> Are you 100% sure that your processor are really multi-core
> and not just hyperthreaded?  Please post the relevant lines
> from /var/run/dmesg.boot or output from the `dmesg` command
> (as Adrian already suggested), preferably on a recent
> FreeBSD system (i.e. 7.1).  The top 25 lines should be
> sufficient.

I have tried 6.2, 6.4 and 7.1 on two different servers. The first  
server of them (older) is Intel SE7501HG2 + 2 x Xeon 2.44GHz (2 cores  
in each Xeon)
The second one (newer) is Intel S5000VSA + 2 x Xeon 2.66GHz (4 cores  
in each Xeon)

================= dmesg 6.2 on the newer hardware ===================
>


Copyright (c) 1992-2007 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 6.2-RELEASE #1: Sun Mar  8 20:02:38 CET 2009
     root@[machine name removed]:/usr/src/sys/i386/compile/ 
HERON-62-2009-03-08
ACPI APIC Table: <INTEL  S5000VSA>
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Xeon(TM) CPU 2.66GHz (2660.02-MHz 686-class CPU)
   Origin = "GenuineIntel"  Id = 0xf64  Stepping = 4
    
Features 
= 
0xbfebfbff 
< 
FPU 
,VME 
,DE 
,PSE 
,TSC 
,MSR 
,PAE 
,MCE 
,CX8 
,APIC 
,SEP 
,MTRR 
,PGE 
,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
   Features2=0xe4bd<SSE3,RSVD2,MON,DS_CPL,VMX,EST,CNTX- 
ID,CX16,<b14>,<b15>>
   AMD Features=0x20100000<NX,LM>
   AMD Features2=0x1<LAHF>
   Cores per package: 2
   Logical CPUs per core: 2
real memory  = 2680160256 (2556 MB)
avail memory = 2622218240 (2500 MB)
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
  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
ioapic0 <Version 2.0> irqs 0-23 on motherboard
ioapic1 <Version 2.0> irqs 24-47 on motherboard
lapic0: Forcing LINT1 to edge trigger
kbd1 at kbdmux0
acpi0: <INTEL S5000VSA> on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
cpu1: <ACPI CPU> on acpi0
acpi_throttle1: <ACPI CPU Throttling> on cpu1
acpi_throttle1: failed to attach P_CNT
device_attach: acpi_throttle1 attach returned 6
cpu2: <ACPI CPU> on acpi0
acpi_throttle2: <ACPI CPU Throttling> on cpu2
acpi_throttle2: failed to attach P_CNT
device_attach: acpi_throttle2 attach returned 6
cpu3: <ACPI CPU> on acpi0
acpi_throttle3: <ACPI CPU Throttling> on cpu3
acpi_throttle3: failed to attach P_CNT
device_attach: acpi_throttle3 attach returned 6
cpu4: <ACPI CPU> on acpi0
acpi_throttle4: <ACPI CPU Throttling> on cpu4
acpi_throttle4: failed to attach P_CNT
device_attach: acpi_throttle4 attach returned 6
cpu5: <ACPI CPU> on acpi0
acpi_throttle5: <ACPI CPU Throttling> on cpu5
acpi_throttle5: failed to attach P_CNT
device_attach: acpi_throttle5 attach returned 6
cpu6: <ACPI CPU> on acpi0
acpi_throttle6: <ACPI CPU Throttling> on cpu6
acpi_throttle6: failed to attach P_CNT
device_attach: acpi_throttle6 attach returned 6
cpu7: <ACPI CPU> on acpi0
acpi_throttle7: <ACPI CPU Throttling> on cpu7
acpi_throttle7: failed to attach P_CNT
device_attach: acpi_throttle7 attach returned 6


================== dmesg 7.1 on the older hardware ====================

Copyright (c) 1992-2009 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 7.1-RELEASE #1: Wed Mar 11 10:38:08 CET 2009
     root@[machine name removed]:/usr/src/sys/i386/compile/HERON
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Xeon(TM) CPU 2.40GHz (2392.29-MHz 686-class CPU)
   Origin = "GenuineIntel"  Id = 0xf25  Stepping = 5
    
Features 
= 
0xbfebfbff 
< 
FPU 
,VME 
,DE 
,PSE 
,TSC 
,MSR 
,PAE 
,MCE 
,CX8 
,APIC 
,SEP 
,MTRR 
,PGE 
,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
   Features2=0x4400<CNXT-ID,xTPR>
   Logical CPUs per core: 2
real memory  = 4026466304 (3839 MB)
avail memory = 3942027264 (3759 MB)
ACPI APIC Table: <INTEL  S7501HG0>
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
  cpu0 (BSP): APIC ID:  0
  cpu1 (AP): APIC ID:  1
  cpu2 (AP): APIC ID:  6
  cpu3 (AP): APIC ID:  7
ioapic0 <Version 2.0> irqs 0-23 on motherboard
ioapic1 <Version 2.0> irqs 24-47 on motherboard
ioapic2 <Version 2.0> irqs 48-71 on motherboard
lapic0: Forcing LINT1 to edge trigger
kbd1 at kbdmux0
acpi0: <INTEL S7501HG0> on motherboard
ACPI Warning (dswload-0794): Type override - [DEB_] had invalid type  
(Integer) for Scope operator, changed to (Scope) [20070320]
ACPI Warning (dswload-0794): Type override - [MLIB] had invalid type  
(Integer) for Scope operator, changed to (Scope) [20070320]
ACPI Warning (dswload-0794): Type override - [DATA] had invalid type  
(String) for Scope operator, changed to (Scope) [20070320]
ACPI Warning (dswload-0794): Type override - [SIO_] had invalid type  
(String) for Scope operator, changed to (Scope) [20070320]
ACPI Warning (dswload-0794): Type override - [LEDP] had invalid type  
(String) for Scope operator, changed to (Scope) [20070320]
ACPI Warning (dswload-0794): Type override - [GPEN] had invalid type  
(String) for Scope operator, changed to (Scope) [20070320]
ACPI Warning (dswload-0794): Type override - [GPST] had invalid type  
(String) for Scope operator, changed to (Scope) [20070320]
ACPI Warning (dswload-0794): Type override - [GP1N] had invalid type  
(String) for Scope operator, changed to (Scope) [20070320]
ACPI Warning (dswload-0794): Type override - [WUES] had invalid type  
(String) for Scope operator, changed to (Scope) [20070320]
ACPI Warning (dswload-0794): Type override - [WUSE] had invalid type  
(String) for Scope operator, changed to (Scope) [20070320]
ACPI Warning (dswload-0794): Type override - [SBID] had invalid type  
(String) for Scope operator, changed to (Scope) [20070320]
ACPI Warning (dswload-0794): Type override - [SWCE] had invalid type  
(String) for Scope operator, changed to (Scope) [20070320]
ACPI Warning (dswload-0794): Type override - [SMIR] had invalid type  
(String) for Scope operator, changed to (Scope) [20070320]


========================================================================

I observed that hardware does not make any difference.
6.2 and 6.4 uses all cores when machdep.hyperthreading_allowed=1
7.1 uses all cores regardless of value of  
machdep.hyperthreading_allowed variable.

Regards,
Robert



More information about the freebsd-smp mailing list