Load at 1.00 on SMP machine

myfreebsd at cox.net myfreebsd at cox.net
Mon Nov 21 17:50:10 GMT 2005

Have you tried it as follows:

1. Compile kernel with SMP and APIC included
2. Set machdep.hlt_logical_cpus=0 in loader.conf or sysctl.conf (0 not 1)
3. Set machdep.hyperthreading_allowed=1 in loader.conf

See if that helps. If not, remove machdep.hyperthreading or set it to 0. From my understanding that should disable HTT

>From FreeBSD 6.0 RelNotes:
Because of an information disclosure vulnerability on processors using Hyper-Threading Technology (HTT), the machdep.hyperthreading_allowed sysctl variable has been added. It defaults to 1 (HTT enabled) on FreeBSD CURRENT, and 0 (HTT disabled) on the 4-STABLE and 5-STABLE development branches and supported security fix branches. More information can be found in security advisory FreeBSD-SA-05:09.htt. [MERGED]

I think machdep.hlt_logical_cpus does not deactivate the other cpu it just keeps the OS from directing data to it hence the 1.00 load on your remaining cpu. 

> From: "Axel S. Gruner" <liste at encephalon.de>
> Date: 2005/11/21 Mon PM 12:25:59 EST
> To: <myfreebsd at cox.net> <myfreebsd at cox.net>
> CC: <Axel.Gruner at suedfactoring.de>,  freebsd-questions at freebsd.org
> Subject: Re: Load at 1.00 on SMP machine
> Hi,
> Am 21.11.2005 um 16:17 schrieb <myfreebsd at cox.net> <myfreebsd at cox.net>:
> >> i got a Problem on my dual XEON 3.06 GhZ machine, 2GB of >RAM,  
> >> FreeBSD
> >> 5.4-STABLE.
> >> I got "option SMP" in the kernel config and  
> >> >"machdep.hlt_logical_cpus=1" in
> >> /boot/loader.conf.
> >> There are just 20 processes running (typical ones like >getty and  
> >> stuff) and
> >> the load of this machine is at 1.xx. There is no bgfsck and >other  
> >> stuff.
> >
> >> So, i built a new kernel without "option SMP", rebooted, >and the  
> >> load was
> >> at 0.0x. But only one CPU was used (detected).
> >
> >> So, what could bei the Problem?
> >> Well, the machine shows me 4 CPUs, HTT is not enabled via >/boot/ 
> >> loader.conf
> >> and "machdep.hyperthreading_allowed". So, how to disable >HTT?  
> >> Maybe this is
> >> the problem of the high load?
> >
> > Why are you setting machdep.hlt_logical_cpus=1? My understanding,  
> > this would turn off one of the cpus. It should be set to 0 to have  
> > both cpus going. Also it is set in sysctl.conf not loader.conf, at  
> > least, that is how I have it.
> Both CPUs are working. Also, works with machdep in loader.conf.
> Thats not the problem.
> > I am also curious how machdep.hyperthreading_allowed works. I run 6  
> > so I believe it is turned on by default. Is this correct? Also if  
> > it is a solo cpu with HTT, do you need option SMP and  
> > machdep.hlt_logical_cpus=0 set or not with  
> > machdep.hyperthreading_allowed on?
> I do not know. I just want turn off HTT, but stay with SMP. So i want  
> my two phyiscal CPUs working, but not the logical (HTT) one.
> This is because is think maybe the load of 1.0x comes from turning on  
> HTT. Well, if i do not use SMP in the kernel, the load is fine, but  
> there is just one of the physical CPUs working.

More information about the freebsd-questions mailing list