SMP vs UP on single P4 CPU systems with hyperthreading

Zoltan Frombach tssajo at hotmail.com
Sat Nov 6 18:49:00 PST 2004


I just upgraded my system from a Pentium III to a Pentium 4 with 
hyperthreading. This is not a multiprocessor system, as I only have one CPU. 
I disabled hyperthreading in the BIOS (it is an AWARD BIOS). Then I 
installed FreeBSD 5.3-RELEASE. The first thing I've noticed in dmesg are the 
following lines:

CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz (2806.38-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf29  Stepping = 9
  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>
  Hyperthreading: 2 logical CPUs

So even though I specifically disabled hyperthreading in the BIOS, FreeBSD 
5.3 still detects 2 logical CPUs. Is this by design? I guess, it is. So 
therefore my question is this: Should I compile an SMP kernel or a UP 
kernel? To make my decision more difficult, Scott Long posted recently in a 
message the following: "We turned off SMP on i386 and amd64 because it is a 
serious performance penalty for UP machines."

Should I look at my single CPU system as a UP machine, as it physically is a 
uni processor machine. Or should I enable SMP in the kernel to take 
advantage of the "2 logical SPUs" FreeBSD detects - even when I try to 
disable this feature of the CPU in the BIOS... What is the official word in 
this scenario? I'd really appreciate your advice.

Zoltan 


More information about the freebsd-current mailing list