LinHES Forums
http://forum.linhes.org/

Auto CPU Frequency scaling (Powersaved)
http://forum.linhes.org/viewtopic.php?f=3&t=18340
Page 1 of 3

Author:  knappster [ Sat May 24, 2008 11:11 pm ]
Post subject:  Auto CPU Frequency scaling (Powersaved)

I honestly don't know what the requirements are for powersaved to auto-scale your cpu. I think it is the AMD Cool 'n Quiet technology (or the Intel equivalent). I currently have it on my PC and my combined R5F27 BE/FE. My PC has this mobo/cpu combo:
ABIT KN9 AM2 NVIDIA nForce4 Ultra
AMD Athlon 64 X2 4600+ Windsor 2.4GHz Socket AM2 89W Dual-Core Processor Model ADA4600CUBOX

My combined BE/FE has this mobo/cpu combo:
ASUS M2NPV-VM
AMD Sempron 64 3400+ Manila 1.8GHz Socket AM2 62W Single-Core Processor Model SDA3400CWBOX

powersaved is available via apt-get without trying to upgrade any of my other packages, so I just went ahead and installed it by:
Code:
apt-get install powersaved

as root.

When it tries to run after installing it complains because acpid is not running. This can be started with:
Code:
/etc/init.d/acpid start

as root

you can start powersaved with the command:
Code:
/etc/init.d/powersaved start

as root

It will still complain when you try to run any of the powersave commands. After some trial and error, I found that starting the hal daemon remedies this. You can start itwith the command:
Code:
/etc/init.d/hal start

as root

You can double check that it's using dynamic scaling by typing:
Code:
powersave -c

as root.
It should come back
Code:
DYNAMIC


To make sure that it is working properly you should be able to type:
Code:
cat /proc/cpuinfo

and see approx 1000 MHz when idle (both of my machines idle at 1000 MHz).

then if you open another terminal and type glxgears and check
Code:
cat /proc/cpuinfo

again it should be something higher than 1000 MHz.

If you reboot, then powersaved will not run at startup because acpid and hald will not run on startup. After some trial and error (again) I was able to get it to autostart with the following sequence:

Code:
update-rc.d acpid defaults 80
update-rc.d hal defaults 80
update-rc.d -f powersaved remove
update-rc.d powersaved defaults 99


The main difference I notice between my KM BE/FE and my desktop computer is that the desktop computer scales both frequency and core voltage. I see a pretty drastic change in temperature on both computers with no change in performance. Unfortunately I don't have a Kill-A-Watt, but I would expect there to be a pretty substantial difference in power consumption.

I also have acpi shutdown/mythwelcome setup on my combined BE/FE and I haven't yet tested that with powersaved, but I don't expect there to be any issues. I will report back here if there are.

Author:  cliffsjunk [ Sun May 25, 2008 1:52 pm ]
Post subject: 

I just tried this on my dual core intel 940 running R6F27 and it does not work.

'powersave -c' prints
Speedstepping is not supported.

Any ideas? I didn't find anything helpful in Google.

Cliff

Author:  graysky [ Mon May 26, 2008 4:22 am ]
Post subject: 

I thought speedstep was a BIOS-level thing that was independent of o/s? Is there a utility like CPU-Z for LINUX you can use to confirm that indeed your multiplier is dropping on idle?

Author:  knappster [ Mon May 26, 2008 6:00 am ]
Post subject: 

cliffsjunk wrote:
I just tried this on my dual core intel 940 running R6F27 and it does not work.

'powersave -c' prints
Speedstepping is not supported.

Any ideas? I didn't find anything helpful in Google.

Cliff


Hey Cliff,

I don't have an intel machine to test this on :(. My guess is that there's an option in bios that is not enabled. For AMD motherboards that support it, it's Cool 'n Quiet. For Intel I believe they call it "Enhanced Intel Speedstep Technology (EIST)". What motherboard are you using?

graysky wrote:
I thought speedstep was a BIOS-level thing that was independent of o/s? Is there a utility like CPU-Z for LINUX you can use to confirm that indeed your multiplier is dropping on idle?


Code:
cat /proc/cpuinfo

returns
Code:
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 75
model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 4600+
stepping        : 2
cpu MHz         : 1000.000
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8_legacy
bogomips        : 2001.51
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 75
model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 4600+
stepping        : 2
cpu MHz         : 1000.000
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8_legacy
bogomips        : 2001.51
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc
when idle

and
Code:
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 75
model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 4600+
stepping        : 2
cpu MHz         : 2400.000
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8_legacy
bogomips        : 4803.64
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 75
model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 4600+
stepping        : 2
cpu MHz         : 2400.000
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8_legacy
bogomips        : 4803.64
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc
when loaded.

Node that the CPU MHz went from 1000 when idle to 2400 when loaded. (There are 2 cpus showing because it's a dual core processor in my desktop).

Author:  graysky [ Mon May 26, 2008 6:09 am ]
Post subject: 

/proc/info must be unique to your processor and above. My Athlon 1900+ has no such file/dir:
Code:
$ cat /proc/info
cat: /proc/info: No such file or directory


I do have a /proc/cpuinfo which returns:
Code:
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 6
model name      : AMD Athlon(tm) MP  1900+
stepping        : 2
cpu MHz         : 1597.572
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mp mmxext 3dnowext 3dnow up ts
bogomips        : 3196.60

Author:  knappster [ Mon May 26, 2008 6:32 am ]
Post subject: 

Sorry, typo :shock: (fixed now)

Is your processor idle at the time? There are some options to manually change the frequency to preset values. For example:

Code:
powersave -f
should give you full speed on the cpuinfo.
Code:
powersave -l
should give you a reduced speed on cpuinfo (1000 MHz).
Code:
powersave -A
should put it back into dynamic mode.

If you just want to see the current speed without any other details
Code:
powersave -r
should provide that. When I run it, every now and then it shows a bogus speed, but usually it is correct.

Author:  cliffsjunk [ Tue May 27, 2008 2:40 am ]
Post subject: 

Hmm something fishy here...

The motherboard supports it on chips that have it, but it doesn't show that
option when my Pentium D 940 is plugged in.

/proc/cpuinfo always shows the max speed and does not show the est flag.

BTW that is R5F27 not R6F27.

Author:  tjc [ Tue May 27, 2008 6:36 am ]
Post subject: 

cliffsjunk wrote:
BTW that is R5F27 not R6F27.

Yeah, R6 anything would indicate ownership of a time machine. ;-)

Just in case you _do_ have a working time machine, the next time you take a jaunt into the future could you check some stock prices for me? ;-)

Author:  knappster [ Tue May 27, 2008 6:49 am ]
Post subject: 

cliffsjunk wrote:
Hmm something fishy here...

The motherboard supports it on chips that have it, but it doesn't show that
option when my Pentium D 940 is plugged in.

/proc/cpuinfo always shows the max speed and does not show the est flag.

BTW that is R5F27 not R6F27.


I'm not sure what to make of this. It may be worth waiting for R5.5 though, because Cecil said powersave would already be installed on it.

I also wanted to report that while my KM box ran perfectly well all day Sunday and Monday once I enabled powersaved, it has locked up twice in the past 12 hours. It is entirely possible that it is coincidence because the weather was very hot yesterday, which could have caused issues with the power supply, etc. For now I have disabled it, acpid, and hald and will see how it goes from here. I think this was the first lockup I've had since I set the noapic flag in lilo.

I hate when computers lockup without a clue as to why :evil:

Author:  cliffsjunk [ Tue May 27, 2008 3:20 pm ]
Post subject: 

I had a new motherboard that was flaky when hot and it turned
out to be that it was running real close to the BIOS shutdown
temp which I had set conservatively low during setup. All that I
had to do was bump the shutdown temp a little higher and the
problem went away.

If you suspect that it heat related, you can always put the PC
in a hot box for 24 hours. A cardboard box works well for this
and the heat from the PC is all that is needed. Run memtest
and/or Knoppix-running-a-video for 24 hours and monitor the
temp inside the box (but not touching the PC) with a simple
thermometer. If it passes this test at 10 degrees hotter than
it will ever be under normal circumstances (say 95 degrees
Fahrenheit), then you have a good system (at least you don't
have heat related problems). Open the cardboard box enough
to set it to this temp during the hot part of the day. If you
can get it to fail consistently, then the process of elimination
can point to which component is marginal.

Before you do this, make sure that you blow every spec of dust
out of the PC case (automotive air compressor is best, but a
leaf blower works in a pinch). About 50% of the heat problems
that I fix for friends are dust related. And verify that your PC
case has good circulation. Add an extra case fan or two if you
are uncertain about the PC case cooling. A marginally cooled case going into a hot box is a recipe for disaster.

You may need to up the BIOS shutdown temp while doing this
test.

Warning so that I can say I warned you!!! You need to be
cautious about letting it get too hot and don't run it this way
for weeks. Also, many modern hard drives keep a count of the
max temperature that it ran and this may void the hard drive
warrenty. If any of the hardware is too dear to you to bear a
flaky system becoming a boat anchor then do not do this.

At any rate...
good luck.

Cliff

Author:  hartsu [ Thu Jul 10, 2008 10:06 am ]
Post subject:  powersaed in 5.5

Hey,

I just install R5.5 ( auto install ) and i notice that powersaved not working anymore.


It works fine in R5F1 / knappster great instructions , same hardware .
Mobo ASUS M2NPV-VM ACPI BIOS Revision 1201 (09/20/2007)
Cpu AMD Athlon(tm) X2 Dual Core Processor BE-2400


code :
root@harpotv:/home/mythtv# powersave -c
liblazy (liblazy_dbus_send_method_call:97): Received error reply: Method "GetCPUFreqGovernor" with signature "" on interface "org.freedesktop.Hal.Device.CPUFreq" doesn't exist

Could not get current CPUFreq policy.

code:
root@harpotv:/home/mythtv# powersave -A
liblazy (liblazy_dbus_send_method_call:97): Received error reply: Method "SetCPUFreqGovernor" with signature "s" on interface "org.freedesktop.Hal.Device.CPUFreq" doesn't exist


Could not set CPUFreq policy to dynamic.

Any idea ? I want my cool@silent box back
:(

Author:  knappster [ Thu Jul 10, 2008 10:27 am ]
Post subject: 

It was my understanding that Cecil was including powersave in R5.5. Did you have to install it?

Did you do an auto-install or auto-upgrade?

It appears to have something to do with the hal daemon, but I don't know what it is or what it does :(

Author:  hartsu [ Thu Jul 10, 2008 12:14 pm ]
Post subject: 

knappster wrote:
It was my understanding that Cecil was including powersave in R5.5. Did you have to install it?

Did you do an auto-install or auto-upgrade?

It appears to have something to do with the hal daemon, but I don't know what it is or what it does :(


I do auto-install , i want to start clean table.
I try to install powersaved but apt-get install say that powersaved is already the newest version.
Maybe i have try to use Cpufrequtils because R5.5 newer kernel ?

wiki.archlinux.org write :
IMPORTANT

The powersaved package has been replaced by Pm-utils (hibernate/suspend) and Cpufrequtils (CPU frequency scaling). Please see those wikis for up-to-date information.

Author:  hartsu [ Mon Jul 14, 2008 9:22 am ]
Post subject:  solved

I try cpufrequtils , and its working .


Code:
root@harpotv:/home/mythtv# cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
  driver: powernow-k8
  CPUs which need to switch frequency at the same time: 0 1
  hardware limits: 1000 MHz - 2.30 GHz
  available frequency steps: 2.30 GHz, 2.20 GHz, 2.00 GHz, 1.80 GHz, 1000 MHz
  available cpufreq governors: userspace, powersave, ondemand, conservative, per
formance
  current policy: frequency should be within 1000 MHz and 2.30 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1000 MHz (asserted by call to hardware).
analyzing CPU 1:
  driver: powernow-k8
  CPUs which need to switch frequency at the same time: 0 1
  hardware limits: 1000 MHz - 2.30 GHz
  available frequency steps: 2.30 GHz, 2.20 GHz, 2.00 GHz, 1.80 GHz, 1000 MHz
  available cpufreq governors: userspace, powersave, ondemand, conservative, per
formance
  current policy: frequency should be within 1000 MHz and 2.30 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1000 MHz (asserted by call to hardware).


Its not so smooth than powersaved , but i dont try all settings and different governors yet .
Cpu temperature and cpu-fan noise is OK again

:D

Author:  knappster [ Fri Jul 18, 2008 7:41 am ]
Post subject: 

Any more progress with cpufrequtils hartsu? I am experiencing the same thing as you with powersave in 5.5. It was installed by default, but it spits out errors. I haven't tried cpufrequtils yet because I have bigger problems to deal with first :(

Page 1 of 3 All times are UTC - 6 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/