This is really annoying for my system, I used to disabled it before F16 by stopping the cpuspeed service, but they dropped that in F16, so is there any other way to stop Fedora from scalling down my CPU to save power?
This is really annoying for my system, I used to disabled it before F16 by stopping the cpuspeed service, but they dropped that in F16, so is there any other way to stop Fedora from scalling down my CPU to save power?
I think ....
for f in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor ; do echo performance > $f ; done
You can edit /etc/sysconfig/cpupower and make sure it says "performance" instead of "on_demand" after CPUPOWER_ on all entries for a more permanent fix (stays on bootup). Also, check your frequency withto verify if it's disabled.Code:cpupower frequency-info
unfortunately, cpufreq and cpupower don't always give the correct information.
From log at boot:
from cpupower frequency-info:Code:[ 0.000000] hpet clockevent registered [ 0.000000] Fast TSC calibration using PIT [ 0.000000] Detected 2257.445 MHz processor.
as you can see, the kernel saw it correctly, 2257.445 MHz, but cpufreq will not allow setting the maximum frequency higher than what it detects the processor to be, which is 1800 MHz.Code:[Me@tower20 ~]$ cpupower frequency-info analyzing CPU 0: driver: p4-clockmod CPUs which run at the same hardware frequency: 0 CPUs which need to have their frequency coordinated by software: 0 maximum transition latency: 10.00 ms. hardware limits: 225 MHz - 1.80 GHz available frequency steps: 225 MHz, 450 MHz, 675 MHz, 900 MHz, 1.13 GHz, 1.35 GHz, 1.58 GHz, 1.80 GHz available cpufreq governors: conservative, userspace, powersave, ondemand, performance current policy: frequency should be within 225 MHz and 1.80 GHz. The governor "performance" may decide which speed to use within this range. current CPU frequency is 1.80 GHz. boost state support: Supported: yes Active: yes
Edit:
I disabled EIST (intel speedstep) in the BIOS to prevent cpufreq from scaling it back. Using speedstep and cpufreq with the performance governor, I couldn't set the maximum frequency higher than 1800 MHz, so I disabled EIST and it just loads the p4-clockmod governor.
Last edited by DBelton; 10th November 2011 at 08:44 AM.
I've just noticed the same problem on my F16 system. I had some cli apps that were running about twice as slow as they used to under F14 and F15 on the same hardware, and I couldn't figure out why. Then I saw this:
So my 2.2GHz cpu is running at only 1GHz. WTF?!?! No wonder my stuff was running twice as slow.Code:$ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 55 model name : AMD Athlon(tm) 64 Processor 3700+ stepping : 2 cpu MHz : 1000.000 cache size : 1024 KB 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 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow up rep_good nopl pni lahf_lm bogomips : 1999.50 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
The kernel properly detects my cpu:
I installed the kernel-tools package and found this:Code:$ dmesg|grep -i mhz [ 0.000000] Detected 2199.455 MHz processor. [ 2.164979] powernow-k8: fid 0x2 (1000 MHz), vid 0x12 [ 2.188101] powernow-k8: fid 0xa (1800 MHz), vid 0xa [ 2.210863] powernow-k8: fid 0xc (2000 MHz), vid 0x8 [ 2.233272] powernow-k8: fid 0xe (2200 MHz), vid 0x8
So even though I should be getting 2.2GHz, the "current policy" (set by someone who isn't me) restricts my cpu to a "range" of 1GHz to 1GHz! Again, WTF?!?! I don't see a way of changing this, which is what's really ticking me off. The fedoraproject.org docs on this are completely outdated, referring only to the old setup on F14. My bet is this change was made to stop laptops from overheating with the 3.x kernels (which apparently is a problem), but not giving users a way to change this is inexcusable.Code:$ cpupower frequency-info analyzing CPU 0: driver: powernow-k8 CPUs which run at the same hardware frequency: 0 CPUs which need to have their frequency coordinated by software: 0 maximum transition latency: 1.24 ms. hardware limits: 1000 MHz - 2.20 GHz available frequency steps: 1000 MHz, 1.80 GHz, 2.00 GHz, 2.20 GHz available cpufreq governors: conservative, userspace, powersave, ondemand, performance current policy: frequency should be within 1000 MHz and 1000 MHz. The governor "performance" may decide which speed to use within this range. current CPU frequency is 1000 MHz. boost state support: Supported: no Active: no![]()
OS: Fedora 44 x86_64 | DE/WM: Window Maker (X11) | Machine: Lenovo ThinkCentre M91P | CPU: Intel Core i5-2500 (4)@3.30GHz | RAM: 32GB PC3-12800 DDR3 | Disks: Seagate Barracuda ST500DM002 500GB SATA, Seagate Constellation ES.3 ST1000NM0033 1TB SATA | Video: Intel HD Graphics 2000 128MB | Sound: Turtle Beach Santa Cruz CS4630 | Ethernet: Intel 82579LM
I think if you're not using the "ondemand" governor, your missing the boat.
Looks like something is amiss with your "performance" governor".Code:BASH:~/-> cpupower frequency-info analyzing CPU 0: driver: acpi-cpufreq CPUs which run at the same hardware frequency: 0 1 2 3 CPUs which need to have their frequency coordinated by software: 0 maximum transition latency: 10.0 us. hardware limits: 1.60 GHz - 3.30 GHz available frequency steps: 3.30 GHz, 3.30 GHz, 3.10 GHz, 2.90 GHz, 2.70 GHz, 2.50 GHz, 2.30 GHz, 2.10 GHz, 1.90 GHz, 1.70 GHz, 1.60 GHz available cpufreq governors: conservative, userspace, powersave, ondemand, performance current policy: frequency should be within 1.60 GHz and 3.30 GHz. The governor "ondemand" may decide which speed to use within this range. current CPU frequency is 1.60 GHz. boost state support: Supported: yes Active: yes 25500 MHz max turbo 4 active cores 25500 MHz max turbo 3 active cores 25500 MHz max turbo 2 active cores 25500 MHz max turbo 1 active cores
---------- Post added at 12:44 PM ---------- Previous post was at 12:39 PM ----------
You might want to check these on your system also:
Code:BASH:~/-> cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq 1600000 BASH:~/-> cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 3301000 BASH:~/-> cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 1600000 BASH:~/-> cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 3301000
---------- Post added at 12:49 PM ---------- Previous post was at 12:44 PM ----------
And this:
Code:BASH:~/-> cat /sys/devices/system/cpu/cpu0/cpufreq/bios_limit 3301000
Thanks, Pablo. Here's what I get:
Looks like the scaling_max_freq is wrong. I tried the ondemand governor before and it didn't help. What ticks me off is that there used to be a cpuspeed service, which I always disabled to get the maximum cpu frequency. But it looks like F16 puts that into the kernel now, and you have to modify the cpu behavior with software tools that don't appear to always work properly. The bad part of all this is that users' systems may run slower than they should.Code:$ cat /sys/devices/system/cpu/cpu0/cpufreq/bios_limit 2200000 $ cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq 1000000 $ cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 2200000 $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 1000000 $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 1000000![]()
OS: Fedora 44 x86_64 | DE/WM: Window Maker (X11) | Machine: Lenovo ThinkCentre M91P | CPU: Intel Core i5-2500 (4)@3.30GHz | RAM: 32GB PC3-12800 DDR3 | Disks: Seagate Barracuda ST500DM002 500GB SATA, Seagate Constellation ES.3 ST1000NM0033 1TB SATA | Video: Intel HD Graphics 2000 128MB | Sound: Turtle Beach Santa Cruz CS4630 | Ethernet: Intel 82579LM
Looks like you just need to: echo 2200000 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
and do that for each core [cpu0 cpu1 cpu2 cpu3]
There could be something(s) else configured out of whack also... just poke around in /sys/devices/system/cpu/ and look for anything else that looks to be not set correctly.
I tried "echo 2200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq" as root and it didn't work:
Looks like that scaling_max_freq is getting hard-coded and can't be changed.Code:# echo 2200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 1000000I have a bad feeling that it may be related to the available frequencies being displayed in different units (1000 MHz and 2.20 GHz), which means it's a bug and will take some time to fix. I hope that's not the case.
---------- Post added 18th December 2011 at 02:31 AM ---------- Previous post was 17th December 2011 at 02:53 PM ----------
Well I finally fixed the problem in an extreme way: I built a custom kernel with cpu scaling disabled. That appeared to be the only way to fix it. The build did not go completely smoothly and I had to do a bit of manual tweaking to get the new kernel to boot. But now I get the maximum frequency:
I tested some cli apps and they all now run twice as fast. Yay!Code:$ uname -morv 3.1.5-2.custom.fc16.x86_64 #1 Sat Dec 17 20:19:46 EST 2011 x86_64 GNU/Linux $ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 55 model name : AMD Athlon(tm) 64 Processor 3700+ stepping : 2 cpu MHz : 2199.488 cache size : 1024 KB 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 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm bogomips : 4398.97 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![]()
OS: Fedora 44 x86_64 | DE/WM: Window Maker (X11) | Machine: Lenovo ThinkCentre M91P | CPU: Intel Core i5-2500 (4)@3.30GHz | RAM: 32GB PC3-12800 DDR3 | Disks: Seagate Barracuda ST500DM002 500GB SATA, Seagate Constellation ES.3 ST1000NM0033 1TB SATA | Video: Intel HD Graphics 2000 128MB | Sound: Turtle Beach Santa Cruz CS4630 | Ethernet: Intel 82579LM
Glad to hear your cpu is back up to speed.![]()
I set mine to max all the time by turning it off in the bios (cool and quiet) massive speed boost.
same way I had to do it here, Dangermouse.
But in my case, I am running a processor a little overclocked, and the ONLY way I could get it to run at the overclocked speed was to disable the EIST (Intel SpeedStep) in the BIOS. cpufreq still sees the speed the processor is rated at, but it runs at the overclocked speed.
Without disabling SpeedStep, cpufreq would scale the processor, and then would refuse to set it any higher than than the maximum the processor is rated at.
Whoever wrote cpufreq does not want anybody to overclock, makes me wonder if they work for intel or amd or are getting paid by them to prevent overclocking.
I was thinking of filing a bug report but it looks like this bug has affected other users and reports have been filed:
https://bugzilla.redhat.com/show_bug.cgi?id=772649
https://bugzilla.redhat.com/show_bug.cgi?id=715329
I hope the Fedora devs remove cpu scaling from the Fedora kernels until this bug is fixed, and make it an optional service as before. That would be the considerate and right thing to do, otherwise they'll be slowing down computers that need top performance from their cpus. Having to build a custom kernel is not the right solution.
OS: Fedora 44 x86_64 | DE/WM: Window Maker (X11) | Machine: Lenovo ThinkCentre M91P | CPU: Intel Core i5-2500 (4)@3.30GHz | RAM: 32GB PC3-12800 DDR3 | Disks: Seagate Barracuda ST500DM002 500GB SATA, Seagate Constellation ES.3 ST1000NM0033 1TB SATA | Video: Intel HD Graphics 2000 128MB | Sound: Turtle Beach Santa Cruz CS4630 | Ethernet: Intel 82579LM
Rupert, your readings and experiments might make a useful addendum to the appropriate bugzilla entry.
I think an even more annoying "feature" of F16 and gnome3 is that CPU Frequency Scaling Monitor from gnome-applets is now unable to change governors... I used it in F14 without any problems.
Now it displays the current frequency and governor but choosing a new one has no effect. I am not sure if this is because of cpufrequtils being removed (obsoleted) by kernel-tools or something else.
Right now on my desktop machine I need to cat a governor to some /proc file. Very user-friendly...