I dont’t think so. Dissapointed
I still think so:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/Documentation/admin-guide/pm/amd-pstate.rst?id=v6.3-rc1&id2=v6.2
EPP is added in 6.3, autonomous mode is something else
the new state “active” enables EPP when running 6.3. autonomous/guided state EPP is yet another expansion that is still to come.
oh thanks
Has anyone encounter the issue of using Pstate in 6.1 resulting in worse battery life compared to acpi-cpufreq
mode guided State EPP v3 for linux 6.4
with Kernel 6.3, we can now set amd-pstate=active
via Kernel boot parameter, passive
still works.
the default EPP mode is performance:
cat /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
performance
and the available ones can be checked with
cat /sys/devices/system/cpu/cpufreq/policy0/energy_performance_available_preferences
default performance balance_performance balance_power power
those sysfs parameters can then be changed like every other sysfs interface (be aware that you need to change it per thread!).
but CPU has to stay in powersave
governor for EPP to work:
cpupower frequency-info
analyzing CPU 2:
driver: amd_pstate_epp
CPUs which run at the same hardware frequency: 2
CPUs which need to have their frequency coordinated by software: 2
maximum transition latency: Cannot determine or is not supported.
hardware limits: 400 MHz - 5.57 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 400 MHz and 5.57 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 4.46 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: no
Here are some benchmarks, each and everyone can set the value more towards performance or powersaving that they think fits best for their system:
Edit: I will try balance_power
first and see if it has issues. So far CPU - frequencies are between 400MHz and 5.5GHz like expected.
I set amd-pstate=active
to test. Using zen3 CPU here.
I’m using all the defaults and it seems to be ok.
cpupower.service shows amd_pstate_epp
driver with powersave
governor.
/sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference shows balance_performance
.
cpu frequency
cpu MHz : 550.000
cpu MHz : 3966.583
cpu MHz : 3709.286
cpu MHz : 550.000
cpu MHz : 550.000
cpu MHz : 550.000
cpu MHz : 550.000
cpu MHz : 550.000
cpu MHz : 550.000
cpu MHz : 550.000
cpu MHz : 550.000
cpu MHz : 550.000
cpu MHz : 3578.267
cpu MHz : 550.000
cpu MHz : 550.000
cpu MHz : 550.000
yes, for some reason, they changed the default to the more sane balance_performance
- I still use balance_power
though
I just set mine to amd-pstate=active
but cpu power service won’t start. Not sure why as i had this working before.
Edit:
[ricklinux@eos-plasma ~]$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
amd_pstate_epp
[ricklinux@eos-plasma ~]$ cpupower frequency-info
analyzing CPU 3:
driver: amd_pstate_epp
CPUs which run at the same hardware frequency: 3
CPUs which need to have their frequency coordinated by software: 3
maximum transition latency: Cannot determine or is not supported.
hardware limits: 550 MHz - 4.56 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 550 MHz and 4.56 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 550 MHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: no
[ricklinux@eos-plasma ~]$
[ricklinux@eos-plasma ~]$ systemctl status cpupower.service
× cpupower.service - Apply cpupower configuration
Loaded: loaded (/usr/lib/systemd/system/cpupower.service; enabled; preset: disabled)
Active: failed (Result: exit-code) since Sat 2023-05-06 11:19:36 EDT; 8min ago
Process: 3564 ExecStart=/usr/lib/systemd/scripts/cpupower (code=exited, status=1/FAILURE)
Main PID: 3564 (code=exited, status=1/FAILURE)
CPU: 3ms
May 06 11:19:36 eos-plasma systemd[1]: Starting Apply cpupower configuration...
May 06 11:19:36 eos-plasma systemd[1]: cpupower.service: Main process exited, code=exited, status=1/FAILURE
May 06 11:19:36 eos-plasma systemd[1]: cpupower.service: Failed with result 'exit-code'.
May 06 11:19:36 eos-plasma systemd[1]: Failed to start Apply cpupower configuration.
[ricklinux@eos-plasma ~]$
what do you want to set with cpu-power?
That tool lost its value when using epp for me as we shouldn’t change governor anyway and frequencies are mostly non-relevant numbers anyway (the power level that the CPU uses doesn’t depend on frequencies for some generations now)
So we shouldn’t be using cpu power anymore?
depends on what you want to achieve - but most options it offers are non-relevant now.
It can’t change the energy_performance_preference
which is the only value that makes sense to modify now. I use a self-written systemd-service with a self-written bash script for that:
cat /etc/systemd/system/set_pstate_epp_preference.service
[Unit]
Description=Set AMD P-State-EPP preference
[Service]
ExecStart=/usr/bin/set_balance_power.sh
[Install]
WantedBy=multi-user.target
cat /usr/bin/set_balance_power.sh
#!/usr/bin/env bash
sleep 5
echo balance_power > /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy1/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy2/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy3/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy4/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy5/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy6/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy7/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy8/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy9/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy10/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy11/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy12/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy13/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy14/energy_performance_preference
echo balance_power > /sys/devices/system/cpu/cpufreq/policy15/energy_performance_preference
I know that there are better ways to set those values, but I didn’t have time to write them.
that said - it does not make that much of a difference so using the default is ok, too.
Mine shows the same as @mcury balance_performance
[ricklinux@eos-plasma ~]$ cat /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
balance_performance
So i can just uninstall cpupower?
How are you getting it to show the cpu frequency? I set mine and cpupower service doesn’t seem to work.
I’m using cpupower to check the driver and the governor being used.
You can leave it installed and disabled just to check these values in case you need.
To check it, issue the following command: cpupower frequency-info
As you can see below, cpupower doesn’t provide the options such as, balance_power balance_performance…
$ cat /etc/default/cpupower
# Define CPUs governor
# valid governors: ondemand, performance, powersave, conservative, userspace.
#governor='ondemand'
Based on @BS686 posts, you would need to use another method to change the values, such as the script he provided.
To check the CPU frequency, I used:
watch -n1 "grep \"^[c]pu MHz\" /proc/cpuinfo"
So i should leave this commented then because it’s now controlled by the kernel?
Edit: I get this when run.
[ricklinux@eos-plasma ~]$ cpupower frequency-info
analyzing CPU 12:
driver: amd_pstate_epp
CPUs which run at the same hardware frequency: 12
CPUs which need to have their frequency coordinated by software: 12
maximum transition latency: Cannot determine or is not supported.
hardware limits: 550 MHz - 4.56 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 550 MHz and 4.56 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 3.46 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: no
[ricklinux@eos-plasma ~]$
Does power-profiles-daemon
show those options? Just being curios
powerprofilesctl list
My CPU or firmware on this laptop doesn’t support amd_pstate so I couldn’t check.
I’m not using it… I would leave it commented since governor “ondemand” is not available anymore for amd_pstate_epp, Actually, cpupower does not even show the options we are using now as available in that config file…
I suppose that cpupower.service is failing to launch because of that… You probably set a governor that amd_pstate_epp doesn’t support.
I had it set to ondemand before. But i commented it out now.
Not sure if this is what you asked
$ powerprofilesctl list
performance:
Driver: amd_pstate
Degraded: no
* balanced:
Driver: amd_pstate
power-saver:
Driver: amd_pstate