Detecting CPU throttling on over temperature

Daniel O'Connor doconnor at
Wed Sep 9 08:17:24 UTC 2009

On Wed, 9 Sep 2009, Alexander Motin wrote:
> Daniel O'Connor wrote:
> > On Wed, 9 Sep 2009, Alexander Motin wrote:
> >> Daniel O'Connor wrote:
> >>> I recently discovered a system where the floppy drive cable was
> >>> intermittently fouling the CPU fan - I believe this caused the
> >>> CPU to overheat and then get throttled by the BIOS.
> >>>
> >>> Does anyone know if it is possible to determine if this is the
> >>> case? ie is there a way to be informed if throttling has
> >>> occurred?
> >>
> >> Theoretically it is possible. I know off-topic tool reporting
> >> this. Also you can just monitor CPU temperature, depending on CPU
> >> type.
> >
> > Monitoring CPU temperature is a bit difficult, there are a lack of
> > tools (although I have some code it's not complete).
> There indeed problems with MB monitoring, as it is non-standard. But
> modern CPUs also include on-chip thermal sensors. For Core2Duo family
> coretemp module works fine and precisely.

Ahh coretemp, I had forgotten about that.

I did a test on the bench (on a 7.2 system) here and realised that I 
can't actually detect throttling. coretemp reported 72 & 78C but the 
frequency was still 2933MHz.

I am pretty sure it would be throttling but I think that works by 
maintaining the frequency but stalling the CPU some percentage of the 
time. I have p4tcc loaded (in GENERIC) but it doesn't show up, I only 

dev.cpu.0.%desc: ACPI CPU
dev.cpu.0.%driver: cpu
dev.cpu.0.%location: handle=\_PR_.CPU0
dev.cpu.0.%pnpinfo: _HID=none _UID=0
dev.cpu.0.%parent: acpi0
dev.cpu.0.freq: 2933
dev.cpu.0.freq_levels: 2933/35000 2566/30625 2199/26250 1833/21875 
1466/17500 1099/13125 733/8750 366/4375
dev.cpu.0.cx_supported: C1/0 C2/85
dev.cpu.0.cx_lowest: C1
dev.cpu.0.cx_usage: 100.00% 0.00%
dev.cpu.0.temperature: 44
dev.cpu.1.%desc: ACPI CPU
dev.cpu.1.%driver: cpu
dev.cpu.1.%location: handle=\_PR_.CPU1
dev.cpu.1.%pnpinfo: _HID=none _UID=0
dev.cpu.1.%parent: acpi0
dev.cpu.1.cx_supported: C1/0 C2/85
dev.cpu.1.cx_lowest: C1
dev.cpu.1.cx_usage: 100.00% 0.00%
dev.cpu.1.temperature: 36

I see some odd results if I disable the fan while running 'dd 
if=/dev/zero bs=128k count=5000 | md5' in a loop. The throughput seems 
to remain the same (odd) but the CPU idle time goes up when it gets 

> > The problem is that the CPU temperature is only a proxy
> > measurement, I would much prefer to be told directly the BIOS is
> > throttling rather than guess :)
> While ACPI could implement thermal throttling, AFAIK TM1/TM2
> technologies of P4 and above families are working just in CPU
> hardware. BIOS only initializes them.


Daniel O'Connor software and network engineer
for Genesis Software -
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: This is a digitally signed message part.
Url :

More information about the freebsd-stable mailing list