EST SpeedStep with E2140 shows wrong frequencies
Daniel Duerr
dd at gizmocreative.com
Wed Feb 25 17:00:52 PST 2009
Hello,
I have been following the developments (or lack thereof) around EST
and the more recent Intel Dual-core CPUs and was very happy to
discover some new results with the latest FreeBSD 7.1 versions,
specifically Gabriel Lavoie's recent posts about his success with the
E5200 CPU. My CPU is an Intel Pentium Dual 65nm E2140 @ 1.6GHz which
is supposed to use under 8W of power when idled down with EST. Since
this server is always on, this power savings would be wonderful.
Today, I decided to give it another shot and updated my 7.1-STABLE
amd64 system to the current sources. I re-enabled the cpufreq driver
in my /boot/loader.conf and now, upon bootup, no longer get the
message about EST not recognizing my CPU which seems like a great step
forward. Furthermore, EST is actually attaching to the cpufreq
subsystem and populating frequency information as it should.
Unfortunately I am experiencing two issues though:
1) the resulting frequency information picked up by EST don't seem
complete/accurate for my CPU
2) the behavior changes further if I disable the multiple cores in my
BIOS
Here's the relevant output from dmesg when both cores are enabled:
CPU: Intel(R) Pentium(R) Dual CPU E2140 @ 1.60GHz (1596.01-MHz K8-
class CPU)
Origin = "GenuineIntel" Id = 0x6fd Stepping = 13
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>
Features2=0xe39d<SSE3,RSVD2,MON,DS_CPL,EST,TM2,SSSE3,CX16,xTPR,PDCM>
AMD Features=0x20100800<SYSCALL,NX,LM>
AMD Features2=0x1<LAHF>
Cores per package: 2
... and sysctl -a | grep freq shows the following output:
dev.cpu.0.freq: 800
dev.cpu.0.freq_levels: 800/31000
dev.est.0.freq_settings: 800/31000
dev.est.1.freq_settings: 800/31000
dev.cpufreq.0.%driver: cpufreq
dev.cpufreq.0.%parent: cpu0
dev.cpufreq.1.%driver: cpufreq
dev.cpufreq.1.%parent: cpu1
Now, if I disable the 2nd core I get this:
CPU: Intel(R) Pentium(R) Dual CPU E2140 @ 1.60GHz (1608.77-MHz K8-
class CPU)
Origin = "GenuineIntel" Id = 0x6fd Stepping = 13
Features
=
0xafebfbff
<
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,TM,PBE>
Features2=0xe39d<SSE3,RSVD2,MON,DS_CPL,EST,TM2,SSSE3,CX16,xTPR,PDCM>
AMD Features=0x20100800<SYSCALL,NX,LM>
AMD Features2=0x1<LAHF>
... with no mention of "Cores per package" or a second CPU. Here's
the sysctl output:
dev.cpu.0.freq_levels: 800/31000 600/13000
dev.est.0.freq_settings: 800/31000 600/13000
dev.cpufreq.0.%driver: cpufreq
dev.cpufreq.0.%parent: cpu0
So, it seems that with the 2nd core disabled I am at least offered two
choices. The choices, however, don't seem to match up with my CPU
speed nor do I get anywhere near the idle power consumption that I am
supposed to (I verified this with a Kill A Watt meter which throttling
the CPU up & down).
Does anyone have any ideas on this? I'd love to get this working.
Thanks!
Daniel
More information about the freebsd-acpi
mailing list