Skip to contentSkip to conversation

Pentium-M (Centrino): no power saved?

DISCUSSION Jan Rychter 5 participants 11 messages Sep 19, 2003 – Sep 23, 2003

lore
Share & tools
lore
#0 lore raw

Hmm. I'm puzzled. I've just done a checkout of the latest CVS version of cpufreq for 2.4, applied it to a 2.4.22 kernel and tried the thing out on a Toshiba SS7/290LNKW laptop.

The speedstep-centrino module loads happily and tells me I have a 900MHz Pentium-M. (this is a family 6 model 9 stepping 5 CPU).

I've tried echo "0%100%powersave" > /proc/cpufreq
and
echo "0%50%powersave" > /proc/cpufreq

and much to my surprise, even though /proc/cpufreq echoes my changes, I can see no resulting changes in power consumption as reported by ACPI battery proc entry.

Other things make a difference: whether the system is able to use C3, display brightness, wireless card, etc. But changing the cpufreq entry doesn't seem to do anything.

Am I doing something wrong?

--J.

#1 lore raw
Quoted 9 lines · Jan Rychter

I've tried echo "0%100%powersave" > /proc/cpufreq
and
echo "0%50%powersave" > /proc/cpufreq

and much to my surprise, even though /proc/cpufreq echoes my changes, I can see no resulting changes in power consumption as reported by ACPI battery proc entry.

The line should read echo "0%0%100%userspace" >/proc/cpufreq to get manal control over the speed. Then select the speed by doing

cat /proc/sys/cpu/0/speed-min > /proc/sys/cpu/0/speed

or

cat /proc/sys/cpu/0/speed-max > /proc/sys/cpu/0/speed

powersave will only change speed when you connect or disconnect AC power.

Bas.

#2 lore raw
Quoted 12 lines · Bas Mevissen
Quoted 9 lines · Jan Rychter

I've tried echo "0%100%powersave" > /proc/cpufreq
and
echo "0%50%powersave" > /proc/cpufreq

and much to my surprise, even though /proc/cpufreq echoes my changes, I can see no resulting changes in power consumption as reported by ACPI battery proc entry.

The line should read echo "0%0%100%userspace" >/proc/cpufreq to get

[...]

Quoted 1 line

powersave will only change speed when you connect or disconnect AC power.

AFAIK powersave statically sets the cpu at the minimum allowed (0% in OP's case), while performance sets to the maximum allowed.

In this case there aren't changes because the speed/voltage is 0% of full speed both in

0%100%powersave

and

0%50%powersave

correct?

try the same with performance and see if there is some changes in /proc/cpuinfo, /proc/acpi/battery/.../state

bye

Signature · 2 lines
mattia
:wq!
#4 lore raw
In reply to Bas Mevissen
Quoted 3 lines

powersave will only change speed when you connect or disconnect AC power.

Really ? I thougt powersave allways choose the lowest supported frequency (policy->min) no matter if the AC power is connect or not. A look at static int __cpufreq_governor(struct cpufreq_policy *policy, unsigned int event)
{
...
}
in the file cpufreq.c (line 354) confirme that...
Do I miss something ?

Oh, and before I forget, what's the difference between policy and governor ?

Thx in advance
Mike

#5 lore raw
In reply to Jan Rychter
Quoted 5 lines · Jan Rychter

and much to my surprise, even though /proc/cpufreq echoes my changes, I can see no resulting changes in power consumption as reported by ACPI battery proc entry.

Can you verify the CPU speed with the bogomips userland utility? Or something else that gives a CPU-only performance impression.

Bas.

#6 lore raw
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Bas" == Bas Mevissen <[email protected]> writes:

Quoted 3 lines · Bas> Jan Rychter wrote:
Quoted 3 lines

and much to my surprise, even though /proc/cpufreq echoes my changes, I can see no resulting changes in power consumption as reported by ACPI battery proc entry.

Bas> Can you verify the CPU speed with the bogomips userland utility? Bas> Or something else that gives a CPU-only performance impression.

Ok, I haven't actually verified the CPU speed as reported by bogomips, but I've done some power consumption measurements. This is on a Toshiba S7/290LNKW, which has a 900MHz Pentium-M, the machine had its HDD spun down, no wi-fi or other networking, display set to max brightness and was otherwise idle.

11048mW 900MHz, C2 only
10560mW 600MHz, C2 only

9306mW 900MHz, C3 allowed
9306mW 600MHz, C3 allowed

So, it seems that changing the frequency actually buys very little if you're stuck in C2 (about 0.5W) and exactly NOTHING if the machine is idle and can use C3.

FYI, a good way to get the machine not to use C3 is to plug in an USB device. Or just use usb-uhci, which immediately disallows C3 states.

An unscientific comparison with my old Sharp Mebius Pentium3M-based, 750MHz, shows that the old machine has actually better idle performance, with 8750mW at max display, no HDD, and speedstepped down to 350MHz.

Another test has shown that on the Pentium-IIIM machine it DOES make a difference if it's speedstepped high or low. The numbers for lowest brightness, no HDD, idle machine:
speedstep 350MHz
5757mW
speedstep 750MHz
5905mW

5757mW is BTW the absolute minimum this machine can do with the display on :-)

The above results are rather surprising for me. Either something is wrong, or Intel has managed to make a CPU which effectively doesn't really need frequency scaling, because it is so good at idle handling. But then I thought that voltage also changes along with the frequency?

--J.

#7 lore raw
Quoted 6 lines · Jan Rychter
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Bas" == Bas Mevissen <[email protected]> writes:

11048mW 900MHz, C2 only
10560mW 600MHz, C2 only

Quoted 7 lines

9306mW 900MHz, C3 allowed
9306mW 600MHz, C3 allowed

So, it seems that changing the frequency actually buys very little if you're stuck in C2 (about 0.5W) and exactly NOTHING if the machine is idle and can use C3.

Do you measure this from the ACPI baatery output? I still suspect that your CPU is only running at low speed all the time. So please boot with AC adapter in and check /proc/cpuinfo and reboot without AC adapter and check again. In the meantime, get bogomips as it is worthless as a benchmark, but usefull to compare :-)

Bas.

#8 lore raw
Quoted 11 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Bas" == Bas Mevissen <[email protected]> writes:

Quoted 8 lines · Jan Rychter

11048mW 900MHz, C2 only
10560mW 600MHz, C2 only
9306mW 900MHz, C3 allowed
9306mW 600MHz, C3 allowed
So, it seems that changing the frequency actually buys very little if you're stuck in C2 (about 0.5W) and exactly NOTHING if the machine is idle and can use C3.

Quoted 1 line

Do you measure this from the ACPI baatery output?

Yes.

Quoted 4 lines

I still suspect that your CPU is only running at low speed all the time. So please boot with AC adapter in and check /proc/cpuinfo and reboot without AC adapter and check again. In the meantime, get bogomips as it is worthless as a benchmark, but usefull to compare :-)

No, I have verified this (with bogomips) and the above results are true. The CPU does indeed slow down properly as directed by cpufreq. Also, in my case connecting and disconnecting the AC adapter doesn't change the CPU speed.

So, the results still hold -- and it seems it simply doesn't make much sense to slow down a Pentium-M, unless you really keep the CPU busy?

--J.

_______________________________________________
Cpufreq mailing list
[email protected]
http://www.linux.org.uk/mailman/listinfo/cpufreq

#9 lore raw
Quoted 7 lines · Jan Rychter
Quoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Bas" == Bas Mevissen <[email protected]> writes:

Do you measure this from the ACPI battery output?

Yes.

OK. Do you know of a way to see the power usage when on AC-adapter? I'm wondering if there isn't something in the on-board power circuit to see the actual power usage of the PC or just CPU or motherboard.

Quoted 8 lines

No, I have verified this (with bogomips) and the above results are true. The CPU does indeed slow down properly as directed by cpufreq. Also, in my case connecting and disconnecting the AC adapter doesn't change the CPU speed.

So, the results still hold -- and it seems it simply doesn't make much sense to slow down a Pentium-M, unless you really keep the CPU busy?

Very interesting conclusion. It could mean three things:
1) The internal power management of the Pentium-M (when using APM or ACPI idle calls) is very good
2) The speedstepping of the Pentium-M doesn't bring enough
3) We are interpreting something wrong :-)

From your conclusions, 1) would be the most reasonable and most favourable result.

Bas.

#10 lore raw
In reply to Jan Rychter
Quoted 11 lines · Jan Rychter

Hmm. I'm puzzled. I've just done a checkout of the latest CVS version of cpufreq for 2.4, applied it to a 2.4.22 kernel and tried the thing out on a Toshiba SS7/290LNKW laptop.

The speedstep-centrino module loads happily and tells me I have a 900MHz Pentium-M. (this is a family 6 model 9 stepping 5 CPU).

I've tried echo "0%100%powersave" > /proc/cpufreq
and
echo "0%50%powersave" > /proc/cpufreq

Quoted 8 lines

and much to my surprise, even though /proc/cpufreq echoes my changes, I can see no resulting changes in power consumption as reported by ACPI battery proc entry.

Other things make a difference: whether the system is able to use C3, display brightness, wireless card, etc. But changing the cpufreq entry doesn't seem to do anything.

The two use a different API for their stuff. You just have to chose cpufreq (of course!) or ACPI performance states. Not the 2 at the same time.

Next, doing
echo "0%100%powersave" > /proc/cpufreq
echo "0%50%powersave" > /proc/cpufreq

powersave governor will chose the lowest frequency available for your cpu (in the limit you specified). In both case, you have chosen the lowest frequency.

Please note also that if really you use the ACPI perf, and you have a thermal zone with passive cooling, then the performance stuff (from the thermal zone) may confuse cpufreq.

*BLINK* This is not the case for 2.6, which is well designed in that regard *BLINK*

Signature · 4 lines
Ducrot Bruno

--  Which is worse:  ignorance or apathy?
--  Don't know.  Don't care.