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