Kernel 6.14 - minimum CPU frequency changed?

Hi,

I’m just wondering if anyone know what change between kernel 6.13 and 6.14 that could have resulted in my cpu’s minimum frequency being 1100 mhz instead of 400mhz like before?

I’m inquiring because it’s resulting in higher idle temps causing the fan to kick in when previously it would never kick in.

Thanks in advance for any information on this.

Dominique

1 Like

Ok I figured it out.

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
1100000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
400000

To temporarily change it back to 400mhz
$ echo 400000 | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq

1 Like

Uh I was wondering this today too, just happened to notice it today.

wonder what was the factor for this change, or is this just a misshap

Likely this? https://gitlab.freedesktop.org/upower/power-profiles-daemon/-/merge_requests/198

Power saver drops CPU clocks to 400MHz for me.

3 Likes

Thanks for the extra info.

Using
tuned-adm profile powersave

Doesn’t seem to change it on my fedora 42 beta install.

Could it have to do with amd_pstate_epp vs amd_pstate passive?

Looking at fedora kernel git log at some point last summer amd_pstate default mode was changed to 3

diff --git a/kernel-x86_64-fedora.config b/kernel-x86_64-fedora.config
index a0b2e5b2e..c7544c398 100644
--- a/kernel-x86_64-fedora.config
+++ b/kernel-x86_64-fedora.config
@@ -347,19 +347,6 @@ CONFIG_ARCH_RANDOM=y
 # CONFIG_ARCH_SA1100 is not set
 # CONFIG_ARCH_SPARX5 is not set
 # CONFIG_ARCNET is not set
-CONFIG_ARM64_AMU_EXTN=y
-CONFIG_ARM64_E0PD=y
-CONFIG_ARM64_EPAN=y
...skipping...
+CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3
 CONFIG_X86_AMD_PSTATE_UT=m
 CONFIG_X86_AMD_PSTATE=y
 CONFIG_X86_ANDROID_TABLETS=m

That change seems pretty strange to me. Wouldn’t you want to prioritize absolute lowest power use over efficiency for your lowest clock state which presumably you are at when your system has little or no work to do, or am I missing something?

ohh i have this too? :thinking:

Not if it consumes more power overall to spin it back up to a usable speed, for instance.

I’m gonna trust the revised defaults from AMD on this one

2 Likes

Which Linux distro are you using?
Arch
Which release version?
Rolling
(If rolling release, last date updated?)
May 20 2025
Which kernel are you using?
6.14.6
Which BIOS version are you using?
3.05
Which Framework Laptop 13 model are you using?
AMD Ryzen™ 7040 Series

I can’t remember exactly since which kernel version. Since then the minimum frequency changed from 400MHz to 1100MHz and the minimum idle power usage increased about 0.5W, nothing serious and I don’t know whether it’s a bug or not. Happens in Fedora 42 as well

Previously

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver    = amd-pstate-epp
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  =  5132000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq  =  5132000 [kHz]

Now

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver    = amd-pstate-epp
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq  =  1100000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  =  5134000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq  =  5134000 [kHz]

Probably caused by Linux kernel change similar to this one.

Yeah min idle is higher now, not sure this was a good change after all.

It’s changed to lowest nonlinear frequency. The CPU spends more energy going from minimum to lowest nonlinear frequency than running a similar workload operating at lowest nonlinear frequency..

If you don’t like the behavior it’s controllable from sysfs to program the lower bound to minimum again. It’s just the defaults.

My idle min workload may be even less than that apparently.

Doing this seems to reduce min idle by a bit under 0.5W.

So ideally what you need to do is capture energy used over a large enough sample of time with both settings and a similar workload.

Under contrived scenario of the desktop sitting doing nothing of course you won’t use as much energy.

1 Like

I am having more fun messing with the ec right now, maybe I’ll get to doing such a test it at some point later. At least video playback power doesn’t seem to have changed much in either direction.

Making the min frequency 1100 does have some other advantages/disadvantages like limiting the min throttle which I accidentaly discovered while playing with the ec power limits, with 400 it can get throttled down to about 7W but with 1100 only down to 11W. Resuming from hibernate thorttled to 400mhz took forever XD.