Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Dec 2008 17:35:02 +1100 (EST)
From:      Ian Smith <smithi@nimnet.asn.au>
To:        Gabriel Lavoie <glavoie@gmail.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Intel Pentium Dual Core E5200 and Enhanced Speedstep
Message-ID:  <20081209163440.J94168@sola.nimnet.asn.au>
In-Reply-To: <20081209030117.BDE66106575E@hub.freebsd.org>
References:  <20081209030117.BDE66106575E@hub.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 8 Dec 2008 13:37:09 -0500 Gabriel Lavoie <glavoie@gmail.com> wrote:

 >   I have a small problem/question about my Pentium Dual Core E5200. I 
 > have this system running as a server since 1 month and I just noticed 
 > that the CPU frequency may not be running at the highest speed. With 
 > my other computer that has a Core 2 Duo, I noticed that under Windows 
 > and Linux, the CPU frequency steps down at 2 GHz when the CPU is idle 
 > and increases at 2.66 GHz when the CPU is under load. With this 
 > FreeBSD Pentium Dual Core, I just noticed using sysctl that the 
 > frequency after booting the system is at 1.25 GHz and it doesn't go 
 > up automatically at 2.5 GHz under load.
 > 
 > dev.cpu.0.freq: 1254
 > dev.cpu.0.freq_levels: 2508/-1 2194/-1 1881/-1 1567/-1 1254/-1 940/-1 
 > 627/-1 313/-1
 > 
 > If I do "sysctl dev.cpu.0.freq=2508", the frequency gets changed:
 > 
 > [root@headless /home/wildchild]# sysctl dev.cpu.0.freq=2508
 > dev.cpu.0.freq: 1254 -> 2508
 > [root@headless /home/wildchild]# sysctl -a | grep cpu.0.freq
 > dev.cpu.0.freq: 2508
 > dev.cpu.0.freq_levels: 2508/-1 2194/-1 1881/-1 1567/-1 1254/-1 940/-1 
 > 627/-1 313/-1
 > 
 > Why isn't the frequency isn't increased automatically under load? And 
 > why is it at 1.254 GHz after boot and not at the maximum frequency?

It seems you are not running powerd, which is what monitors the load and 
adjusts frequency.  Add powerd_enable="YES" to rc.conf and either reboot 
or just run '/etc/rc.d/powerd start' (or run powerd -v in a terminal to 
verify that it's shifting freqs according to your load requirements)

Speculation on the second matter below ..

 > Another thing I noticed with "dmesg" is the following error (CPU 
 > supports Enhanced Speedstep, but is not recognized.):

Which FreeBSD version?  (uname -a)
 
 > cpu0: <ACPI CPU> on acpi0
 > ACPI Warning (tbutils-0243): Incorrect checksum in table [OEMB] -   D,
 > should be  8 [20070320]

This looks ungood.  You maybe should quote the earlier dmesgs re ACPI 
too.  This sounds like an issue to take to the acpi@freebsd.org list.

 > est0: <Enhanced SpeedStep Frequency Control> on cpu0
 > est: CPU supports Enhanced Speedstep, but is not recognized.
 > est: cpu_vendor GenuineIntel, msr 61a4c2006004c20
 > device_attach: est0 attach returned 6

6 = fail.  Either bad vendor ACPI (you've not mentioned what vendor or 
model) or maybe an older FreeBSD version than would recognise your cpu 
revision; you may need to run 7-STABLE or a 7.1 beta; dunno about 6.4.

Either way, EST isn't functioning, or you'd have a larger range of freqs 
available than these eight, and milliWatt figures instead of those -1.  
There's no sign of 2.66GHz either, if that's expected?

 > p4tcc0: <CPU Frequency Thermal Control> on cpu0

p4tcc attached ok.  That's what provides the 8 freqs you have, in 12.5% 
steps from 8/8 downto 1/8 of the base freq.  While this helps control 
temperature it's not as effective as EST (which also modifies cpu core 
voltage) for managing power use, so you need to locate that problem.

 > cpu1: <ACPI CPU> on acpi0
 > est1: <Enhanced SpeedStep Frequency Control> on cpu1
 > est: CPU supports Enhanced Speedstep, but is not recognized.
 > est: cpu_vendor GenuineIntel, msr 61a4c2006004c20
 > device_attach: est1 attach returned 6

Ditto, and presumably you have a p4tcc1 as as well?

 > Why do I get this error?
 > 
 > I found this problem with my machine after I looked at an article 
 > telling that the new 45nm Intel CPUs were idling at around 3-4W when 
 > Speedstep is decreasing their frequency. And I guess it means that 
 > I've been running my server at 1.25 GHz all the time since I 
 > installed it, which would explain why some compiling jobs were slow!

Sure.  Why it starts at 50% I don't know, unless something thinks there 
is a temperature problem?  Anyway, you need powerd, and you likely need 
to check the acpi@ list about getting your EST working .. you may even 
need a BIOS upgrade or hacking on your ACPI ASL, but hopefully not ..

And post them more details; at least the full /var/run/dmesg.boot and 
the results of 'sysctl hw.acpi dev.cpu' .. saving rounds of questions.

cheers, Ian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081209163440.J94168>