How to keep your cpu cool and your fan quiet

How to do things, solutions, recipes, tutorials
Message
Author
jakfish
Posts: 762
Joined: Fri 18 Jul 2008, 19:09

CPU Scaling/EEE 900 Ondemand/Conservative Module Not Working

#41 Post by jakfish »

Although the cpu scaling gui sets things up wonderfully, at least in the Asus eee 900, only "performance" and "powersave" modules work.

The CPU scaling gui will setup in /root/startup an sh file modprobing ondemand, but when using "cat scaling_governor", "Performance" is the result, meaning the machine is constantly maxed to its top speed. Ditto results after modprobing and installing "conservative" in place of "ondemand". "echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

Only "powersave" and "performance" can be used. I can't figure out why. Can anybody else repeat this error, either in an eee or other machine?

Jake

ARAN
Posts: 113
Joined: Fri 21 Oct 2005, 12:47

#42 Post by ARAN »

Yeah i can confirm this error on my Laptop Acer Aspire 1360.
My CPU in the Laptop use allways the Maximal Frequency even in idle. The scaling_governor is allways performance.
I dont think that this is realy wise from energy save point of view.
I wanted to have ondemand but i cant make it for some reason.

Beside this i have achieved at least to have now a Cool and Quiet Laptop.
Dont know however if with the option ondemand even this quiet good temperatures can be bringed down !
# cat /proc/acpi/thermal_zone/THRC/*
0 - Active; 1 - Passive
<polling disabled>
state: ok
temperature: 49 C
critical (S5): 97 C
passive: 90 C: tc1=2 tc2=5 tsp=300 devices=CPU0
# cat /proc/acpi/thermal_zone/THRS/*
0 - Active; 1 - Passive
<polling disabled>
state: ok
temperature: 43 C
critical (S5): 80 C
passive: 75 C: tc1=2 tc2=5 tsp=300 devices=CPU0

ARAN
Posts: 113
Joined: Fri 21 Oct 2005, 12:47

#43 Post by ARAN »

aragon wrote:@ ARAN
you might calm down a little yourself. as answered in your other post, in my opinion everything is there. please search here:

cpufreq: /lib/modules/2.6.30.5/kernel/arch/x86/kernel/cpu/cpufreq
governors: /lib/modules/2.6.30.5/kernel/drivers/cpufreq

aragon
Hello Aragon.

Thanks for your reply.
I have trashed the small iso as it miss for some reason the cpu scalling modules.
In the regular Iso the Modules exist in the zdrive file but for some strange reason they arent loaded and copied to puppy.

At least the last full booting of puppy in ram they werent loaded.
I assume that in the regular boot they will also be not loaded !

I have fixed my problem now by copying the needed cpu freq scalling modules from the zdrv sfs file to the pupsave file.

Now it works a litlle better.

User avatar
Anniekin
Posts: 246
Joined: Wed 25 Feb 2009, 00:15

#44 Post by Anniekin »

Nice. Subscribed.

dawnsboy

Eeepc & P4-clockmod

#45 Post by dawnsboy »

Just a word to the wise for those users with Eeepc's that feature the Intel Celeron M 353 900MHz processor and 70MHz FSB. The following is a quote from the hardware section of the wiki at eeeuser.com.
Note that the Eee's Linux operating system misreports the speed of the Eee's processor as 900MHz. The cause of this appears to be the p4-clockmod kernel module; once this is removed, the processor speed is reported accurately. The EEE has been benchmarked with the module present in the kernel and without; the results were the same for either case.2)
I have found this to be true in Puppy Linux as well.

Find more on the subject here:



http://forum.eeeuser.com/viewtopic.php?pid=19749#p19749

To me the most interesting segment of that thread is:
My points regarding ODCM are unrelated to the FSB's impact on the actual operating frequency. When I stated that "the processor frequency never changes" it was in regards to ODCM throttle states not being capable of altering the CPU frequency. I was not stating that the processor runs at 900 MHz irregardless of FSB frequency (that statement would not be in line with the 'published' CPU theorem that I worked so hard on big_smile)

Back to ODCM:

When somewhat idle various Linux utilities on the eeePC would report that the processor is running at 112.50 MHz (12.5% throttle), such a reported frequency is incorrect because of the following reasons:

1- The utility incorrectly assumes the FSB is 100 MHz. Since the FSB is running at 70 MHz the CPU is actually running at 630 MHz therefore a 12.5% ODCM throttle should be reported as 78.75 MHz CPU frequency.

BUT more importantly the 78.75 MHz CPU frequency is still incorrect because...

2- ODCM throttling does not alter the CPU's operating frequency.

All in all, due to p4_clockmod and cpufreq modules the CPU frequency reported in linux/Xandros is always FUBAR.
This seems to also be true in Puppy Linux, Vector Linux and some other distros I have played with.

I have been able to confirm that loading the EEE module in Puppy after installing tempestuous' eee fan/cpu driver by entering "cat /proc/eee/fsb" in console. It returns the desired response. Furthermore comparing benchmarking results with those obtained while attempting to use the speed stepping technology described in this thread demonstrate that the performance of the latter is equal to the results obtained when operating at the default 630MHz.

Optimal setup for the Eeepc 701/900 with the Intel Celeron M 70MHz FSB is to use the EEE module supplied in tempestuous' wonderful eee-fan-CPU-0.2 package is the only way to go.

jakfish
Posts: 762
Joined: Fri 18 Jul 2008, 19:09

#46 Post by jakfish »

Nice post, dawnsboy. An addendum to your good information is that even if scaling DID work with the eee 700/900, it's debatable how productive scaling is with this particular line of netbooks.

When the cpu speed is forced below the 630mHZ level, eee CPU usage increases substantially, and in the world of irony, such a usage increase could generate worse battery life than a cpu set at normal speed, not to mention the drop-off in performance (though w/ scaling, the CPU speed would increase if needed, but perhaps with a lag in initial response).

Your post should help eee users who are wondering what's what.

Jake

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#47 Post by 01micko »

Hmmm....

I'd better look into this further...

Thanks dawnsboy, jakfish
Puppy Linux Blog - contact me for access

dawnsboy

#48 Post by dawnsboy »

Jakfish said:
An addendum to your good information is that even if scaling DID work with the eee 700/900, it's debatable how productive scaling is with this particular line of netbooks.

When the cpu speed is forced below the 630mHZ level, eee CPU usage increases substantially, and in the world of irony, such a usage increase could generate worse battery life than a cpu set at normal speed, not to mention the drop-off in performance (though w/ scaling, the CPU speed would increase if needed, but perhaps with a lag in initial response).
@jakfish

Most of this information came to my attention as I was studying the matter during that period of time that I created the gui for various versions of the pupeeecontrol.pet package that tied together the command line functions made available by tempestuous' driver and dougal's fan scripts. It took some time to track down and absorb that info but I began sharing it on various threads related to the subject.

At the time that I wrote the initial gui for pupeeecontrol you and eeeuser forum member weganwarrior did some extensive testing of the overclocking and underclocking abilities of the Intel Celeron M processor using the scripts that wound up in pupeeecontrol. I think you did a pretty good job of proving that underclocking on this line of netbooks is fruitless.

However overclocking to 100MHz FSB to produce 900MHz processor speed can be done effectively using the EEE module supplied by tempestuous. The fan scripts should also work once the kinks are ironed out. Certainly clicking a button to drop fan speed to 40% does work. So if one is at the cafe using the hotspot dropping to the default 630MHz and 40% fan speed should be the most effective way available to reduce battery consumption (other than dimming the backlight, etc).

@01micko

If you are running a 701SD with Intel Celeron 900MHz and 400MHz FSB then you have hardware that is an exception to this in the sense that the scripts used in eeecontrol assume a default 70MHz with the target of increasing that speed incrementally to 100MHz FSB. In regard to speed stepping and information in my last post I must assume that the information applies to your netbook as well because it does have the Intel Celeron 900MHz processor.

User avatar
steel_j
Posts: 4
Joined: Sat 08 Nov 2008, 00:25
Location: Montreal, Canada

Found a solution

#49 Post by steel_j »

I have a HP Pavilion ZE500 Series laptop with a P4 2.66ghz.

With Puppy 4.1 the frequency scaling worked flawlessly between 1.6ghz and 2.66ghz.

Now with Puppy 4.30 I experienced the problems described above in this thread. i.e Frequency governor remained stuck at PERFORMANCE.

I had used the new CPU Frequency Scaling Tool in the Setup Menu and the only thing that worked is when I selected P4-Clockmod. The Acpi-cpufreq module would not load and said it was incompatible.

Weird to me because that was the module I used on Puppy 4.1???

Anyways to make a long story short here is how I solved the problem:

As with the first post of this thread I went and added these lines to my /etc/rc.d/rc.local:

Code: Select all

# cpu frequency-scaling (to save energy and to keep the system cool)
# step 1: load cpu driver, setup cpufreq system
modprobe speedstep-lib      # library
modprobe acpi-cpufreq      # generic
# step 2: load driver(s) for frequency-scaling mode(s)
modprobe cpufreq_ondemand   # ondemand mode
#modprobe cpufreq_powersave   # powersave mode
#modprobe cpufreq_conservative   # conservative mode
#modprobe cpufreq_userspace   # userspace mode
# step 3: min/max fine-tuning; launch ondemand frequency-scaling mode
# replace [min] resp. [max] with numeric values from available frequencies
#echo [min] > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
#echo [max] > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Pay attention to the uncommented portions. I loaded the speedstep-lib and the acpi-cpufreq modules, then the frequency sclaing (ondemand) and a the end I launched it:

Here is a fat trimmed version of the 3 essential lines in this:

Code: Select all

# step 1: load cpu driver, setup cpufreq system
modprobe speedstep-lib      # library
modprobe acpi-cpufreq      # generic
# step 2: load driver(s) for frequency-scaling mode(s)
modprobe cpufreq_ondemand   # ondemand mode
# step 3: min/max fine-tuning; launch ondemand frequency-scaling mode
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Do not use the Min-max settings with acpi-cpufreq module. It is detected automatically.

Don't use the new CPU Frequency Scaling Tool, and if you did, make sure you delete the file called: start_cpu_freq in /root/startup.

Reboot...

Now eveything works.

User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

#50 Post by trio »

Steel_l

You must be using an existing pupsave from another computer to a new computer. If that's the case, you are right, you have to empty (not delete) /root/startup/start_cpu_freq and reboot. Then you can use the cpu freq scaling tool

User avatar
steel_j
Posts: 4
Joined: Sat 08 Nov 2008, 00:25
Location: Montreal, Canada

Sorry but no...

#51 Post by steel_j »

This is a brand new install of Puppy 4.31 iso, ful install on laptop hard drive.

I had to delete start_cpu_freq file from my autostart folder because I had tried to use it and failed before.

The new tool would only let me use p4-clockmod, saying acpi-cpufreq module was incompatible, when I knew perfectly well it was not having used it before many times with success.

So the only way I got this to work was to use the method I posted. The tool does not work for me on my Pavilion.

P4-clockmod works, but for me it is nowhere near as good as the acpi module. Clockmod only lowered my cpu frequency when I unplugged my AC cord an used the battery. Otherwise it would stay on performance and the temp would stay up, fan blowing perpetually.

Now the scaling works A+, temps are 20 degrees lower, fan is barely audible and I can see my frequency going up and down in the console as I use the system.

Michalis
Posts: 237
Joined: Tue 08 Jan 2008, 14:50
Location: Greece

#52 Post by Michalis »

I can't use any governor except of the performance.

In the beginning I tried to set the on demand governor in puppy-431-small but there were no governors. So now I boot puppy-431 and there are the governors but I can't load any of them. Every time I try I get the following:

# modprobe cpufreq_ondemand
FATAL: Module cpufreq_ondemand not found.

Of course I've tested it for every governor and the modules are present.

I check also for the available governors and always I get:

#cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
performance


Of course before of all of that I modprobe powernow-k8. My cpu is an Athlon x4. For the time being the only thing I can do is to set the max frequency to a lower value. I've set cpu0 to 1.4GHz, and the rest cpu1, cpu2, cpu3 to 800Mhz.

Any idea of what can be wrong? Is it possible that the governors are not compatible with powernow?

Of topic: puppy-431 isn't supposed to be smp enable? In my case all of the processes run in cpu0. Is there a way to move a process to another core?

Michalis
Posts: 237
Joined: Tue 08 Jan 2008, 14:50
Location: Greece

#53 Post by Michalis »

Nobody has any idea? :(

I searched a little more and found out that in puppy 4.1.2 the governors are working with my cpu but they see it as single thread.

Seems like the governors are not compiled against powernow-k8 or the opposite.

Probably it's another bug in 4.3.1. I'll report it at the bug section.

thejakal
Posts: 3
Joined: Sun 24 Jan 2010, 15:16

#54 Post by thejakal »

I do

Code: Select all

#cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
and see ondemand and performance, and

Code: Select all

# modprobe cpufreq_ondemand 
works ok. But no matter what I do, it's always in "performance" mode. If I do:

Code: Select all

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
It will always read "performance". Any ideas? Did I do that right? I've used the max frequency to keep performance topped out at where I want to be, but I'd like ondemand to get working.

May be a different subject, but I've got this and rovclock going, running off a LiveCD with no HD installed. I have my 2.4GHz scaled down to 600MHz, and my GPU clock and mem scaled from 250/333Mhz to 108/189, and the system still climbs up to 60* C and has to click on the fan, not as much as it did when it ran WinXP at full blast, but still more than I'd like. Any reason why these massive underclocks wouldn't do what I'd expect in terms of less heat?

User avatar
Anniekin
Posts: 246
Joined: Wed 25 Feb 2009, 00:15

#55 Post by Anniekin »

I think someone needs to provide an ondemand module that works in 431.

User avatar
Anniekin
Posts: 246
Joined: Wed 25 Feb 2009, 00:15

#56 Post by Anniekin »

bump!

if someone want to explain how to do this I will take a crack at it.

Would any of these help patch the issue:
  • cpufreqd
    cpudyn
    cpufreq-set
    cpuspeedy
    powernowd
    speedfreq
?

Peterm321
Posts: 411
Joined: Thu 29 Jan 2009, 14:09
Location: UK

#57 Post by Peterm321 »

Excellent thread.

I had wondered whether I could reduce the temperature of my machine, Dell Optiplex 1.8 Ghz P4. Although I haven't gotten a thermal report in software, process intensive applications produced a noticeable rise in the heat from the output of the processor fan.

However I tried

Code: Select all

  modprobe p4-clockmod 
then

Code: Select all

echo 900000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
Seems to have reduced my machine to the speed of a higher end P III which is all that I would want and no thermal overload worries.

thanks

User avatar
Aitch
Posts: 6518
Joined: Wed 04 Apr 2007, 15:57
Location: Chatham, Kent, UK

#58 Post by Aitch »

Michalis/Annikin, others

Suggest PMing erikson, who created the original

Aitch :)

Nooblet0218
Posts: 105
Joined: Fri 21 May 2010, 17:50

#59 Post by Nooblet0218 »

this topic is still kicking ass, works great on my 4.2.0 puppy comp!

GuyKL
Posts: 38
Joined: Thu 01 Jan 2009, 03:23

#60 Post by GuyKL »

Any easy way for me to set this software on Puppy with the same settings (voltage and frequency) as my K10stat (running on Windows Vista)?

Post Reply