cpupower-gui performance profile is not persistent.
panorain opened this issue · comments
Hi, when I set cpupower-gui to use Performance
setting at boot and apply. A reboot reverts back to Scedutil
governor. I am able to manually set cpupower-gui to use performance settings again. Why is Performance
setting or a custom profile not persistent? Is the problem related to a permission issue perhaps?
/home/pj/.config
drwx------ 1 pj pj 86 Jan 25 10:38 cpupower_gui
~/.config/cpupower_gui> ls -lah
total 8.0K
drwx------ 1 pj pj 86 Jan 25 10:38 .
drwx------ 1 pj pj 3.6K Mar 10 01:44 ..
-rw-r--r-- 1 pj pj 140 Mar 10 01:39 00-cpg.conf
-rw-r--r-- 1 pj pj 114 Jan 25 10:38 cpg-Lenovo-M57p-Profile1.profile
To Reproduce
Steps to reproduce the behaviour:
- Set cpupower-gui to use performance setting at boot and apply.
- Powercycle/Restart - Machine
- Notice cpupower-gui has reverted to using the Schedutil governer option
Expected behaviour
I expected cpupower-gui to allow for persistent performance setting once machine is powercycled.
Setup (please complete the following information):
- Distro: openSUSE Tumbleweed
- Package version: 1.0.0+git.24.b44a198-1.1
- Installed via: [package or source]
- Source package : cpupower-gui-1.0.0+git.24.b44a198-1.1.src
- Vendor : obs://build.opensuse.org/multimedia
- Arch : noarch
Additional context
Thank you for the nice program.
check that cpupower-gui
systemd service is working : systemctl status cpupower-gui
do you have tlp
installed ?
some programs set intel p-state to passive after cpupower applys the profile. which overwrites governor to scedutil
.
Thank you for responding, Between the time I wrote my initial message and hearing from you this > https://github.com/vagnum08/cpupower-gui#system-configuration-and-user-profiles < did not work for me. Please do feel free to discuss this if you have further questions as to why. I can display the current configuration file contents on the machine if desired.
tlp
is not installed on this machine. This is a desktop machine.
How can I find out more about which program could be setting the intel p-state to passive?
:~> systemctl status cpupower-gui
○ cpupower-gui.service - Apply cpupower-gui config at boot
Loaded: loaded (/usr/lib/systemd/system/cpupower-gui.service; enabled; preset: disabled)
Active: inactive (dead) since Mon 2024-05-27 20:38:27 CDT; 8h ago
Docs: https://github.com/vagnum08/cpupower-gui
man:cpupower-gui(1)
Process: 1144 ExecStart=/usr/bin/cpupower-gui config (code=exited, status=0/SUCCESS)
Main PID: 1144 (code=exited, status=0/SUCCESS)
CPU: 222ms
May 27 20:38:27 Thinkcentre-M57p cpupower-gui[1144]: Minimum Frequency: 2000.0 MHz, Maximum Frequency: 2667.0 MHz
May 27 20:38:27 Thinkcentre-M57p cpupower-gui[1144]: Governor: Schedutil, Online: True
May 27 20:38:27 Thinkcentre-M57p cpupower-gui[1144]: Setting CPU: 2
May 27 20:38:27 Thinkcentre-M57p cpupower-gui[1144]: Minimum Frequency: 2000.0 MHz, Maximum Frequency: 2667.0 MHz
May 27 20:38:27 Thinkcentre-M57p cpupower-gui[1144]: Governor: Schedutil, Online: True
May 27 20:38:27 Thinkcentre-M57p cpupower-gui[1144]: Setting CPU: 3
May 27 20:38:27 Thinkcentre-M57p cpupower-gui[1144]: Minimum Frequency: 2000.0 MHz, Maximum Frequency: 2667.0 MHz
May 27 20:38:27 Thinkcentre-M57p cpupower-gui[1144]: Governor: Schedutil, Online: True
May 27 20:38:27 Thinkcentre-M57p systemd[1]: cpupower-gui.service: Deactivated successfully.
May 27 20:38:27 Thinkcentre-M57p systemd[1]: Finished Apply cpupower-gui config at boot.
I created a systemd service with a script and able to set persistent ondemand governor
mode this way now (I think). I'm using ondemand not performance governor for now.
- Create service file in directory
/etc/systemd/system
named > cpupower-ondemand-governor.service - File permissions are > -rw-r--r-- 1 root root 316 Apr 20 23:23 cpupower-ondemand-governor.service
- Service file contents > /etc/systemd/system >
cat cpupower-ondemand-governor.service
[Unit]
Description=Enable cpupower-ondemand-governor on this machine
After=multi-user.target
#graphical.target - multi-user.target
[Service]
Type=oneshot
RemainAfterExit=true
StandardOutput=tty
ExecStart=/usr/local/sbin/cpupower-ondemand-governor.sh
[Install]
WantedBy=multi-user.target
WantedBy=graphical.target
- Create script file in directory
/usr/local/sbin
named > cpupower-ondemand-governor.sh - File permissions are > -rwxr-xr-x 1 root root 206 Apr 20 23:20 cpupower-ondemand-governor.sh
- Script file contents are > /usr/local/sbin >
cat cpupower-ondemand-governor.sh
#!/bin/bash
cpupower frequency-set --governor ondemand
echo "the script works" >> /tmp/cpupower-ondemand-governor.txt
logger -t cpupower-ondemand-governor.sh -p local1.info "Enabling ondemand-cpu-governor"
/etc/systemd/system> cpupower frequency-info
analyzing CPU 2:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 2
CPUs which need to have their frequency coordinated by software: 2
maximum transition latency: 10.0 us
hardware limits: 2.00 GHz - 2.67 GHz
available frequency steps: 2.67 GHz, 2.00 GHz
available cpufreq governors: ondemand performance schedutil
current policy: frequency should be within 2.00 GHz and 2.67 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 2.41 GHz (asserted by call to kernel)
boost state support:
Supported: no
Active: no
What are your thoughts about this?
Why does passing systemctl status cpupower-gui
display the schedutil
governor still being used? When I open the cpupower-gui application from the KDE6 menu the Ondemand governor is being selected by default now.
-Best wishes
Active: inactive (dead) since Mon 2024-05-27 20:38:27 CDT; 8h ago
you have an issue here
the service should be always active.
set persistent ondemand governor
it should never be persistent, this way there might be two apps opposing each other trying to change governor.
the issue is that on boot an app changes CPU governor from active (performance or power-save) to passive (where the default is Scedutil
.
to revert this try : echo "active" | sudo tee /sys/devices/system/cpu/intel_pstate/status
confirm to me if this worked with you.
Hi, I believe what you say is to disable/remove the service I created. It is like a bad patch.
There is no intel_pstate
directory on this machine : :~> echo "active" | sudo tee /sys/devices/system/cpu/intel_pstate/status
[sudo] password for root:
tee: /sys/devices/system/cpu/intel_pstate/status: No such file or directory
active
:/sys/devices/system/cpu> ls -lah
total 0
drwxr-xr-x 13 root root 0 Jun 2 23:09 .
drwxr-xr-x 10 root root 0 Jun 2 23:09 ..
drwxr-xr-x 8 root root 0 Jun 2 23:09 cpu0
drwxr-xr-x 8 root root 0 Jun 3 09:57 cpu1
drwxr-xr-x 8 root root 0 Jun 3 10:09 cpu2
drwxr-xr-x 8 root root 0 Jun 3 10:09 cpu3
drwxr-xr-x 7 root root 0 Jun 2 23:43 cpufreq
drwxr-xr-x 2 root root 0 Jun 3 10:09 cpuidle
-r-------- 1 root root 4.0K Jun 3 10:09 crash_hotplug
drwxr-xr-x 2 root root 0 Jun 3 10:09 hotplug
-r--r--r-- 1 root root 4.0K Jun 3 10:09 isolated
-r--r--r-- 1 root root 4.0K Jun 2 23:43 kernel_max
drwxr-xr-x 2 root root 0 Jun 3 10:09 microcode
-r--r--r-- 1 root root 4.0K Jun 3 10:09 modalias
-r--r--r-- 1 root root 4.0K Jun 3 10:09 nohz_full
-r--r--r-- 1 root root 4.0K Jun 3 10:09 offline
-r--r--r-- 1 root root 4.0K Jun 2 23:30 online
-r--r--r-- 1 root root 4.0K Jun 2 23:19 possible
drwxr-xr-x 2 root root 0 Jun 3 10:09 power
-r--r--r-- 1 root root 4.0K Jun 2 23:10 present
drwxr-xr-x 2 root root 0 Jun 3 10:09 smt
-rw-r--r-- 1 root root 4.0K Jun 3 10:09 uevent
drwxr-xr-x 2 root root 0 Jun 3 10:09 vulnerabilities
This does not appear to work.
Thanks
Hi, I believe what you say is to disable/remove the service I created. It is like a bad patch.
my bad too, there must have been some misunderstanding.
what is your cpu?
CPU is, > :~> inxi -Fxz
CPU:
Info: quad core model: Intel Core2 Quad Q8400 bits: 64 type: MCP
arch: Penryn rev: A cache: L1: 256 KiB L2: 4 MiB
Speed (MHz): avg: 2213 high: 2521 min/max: 2000/2667 cores: 1: 2521
2: 2344 3: 1995 4: 1994 bogomips: 21290
Flags: ht lm nx pae sse sse2 sse3 sse4_1 ssse3 vmx