How to replace power-profiles-daemon with tuneD for Power Management

As some of you have heard, Fedora 41 will be switching from power-profiles-daemon to Redhat tuneD for power profiling.

Below are my notes on how to make the switch using the AUR package (if you want to experiment). I’m on Gnome, which only shows 3 of the profiles in the Gnome inteface. But the power modes are switching.

How to replace power-profiles-daemon with tuneD for Power Management

  1. Uninstall power-profiles-daemon:
paru -Rns power-profiles-daemon
  1. Verify that power-profiles-daemon.service is stopped:
systemctl stop power-profiles-daemon
systemctl status power-profiles-daemon
  1. Install Redhat tuneD from the AUR:
paru -S tuned tuned-ppd

The ‘tuned-ppd’ is the daemon that allows applications to easily transition to TuneD from power-profiles-daemon (PPD). You will need the tuned-ppd package so you can control your power profile in the gnome power management interface.

  1. Start and Enable the tuneD service:
sudo systemctl start tuned
sudo systemctl enable tuned
  1. Verify the tuned.service has started correctly:
 sudo systemctl status tuned
● tuned.service - Dynamic System Tuning Daemon
     Loaded: loaded (/usr/lib/systemd/system/tuned.service; disabled; preset: disabled)
     Active: active (running) since Thu 2024-06-20 08:19:17 EDT; 12s ago
 Invocation: 769888136d4f4336a81266fd17c7cdb8
       Docs: man:tuned(8)
             man:tuned.conf(5)
             man:tuned-adm(8)
   Main PID: 12660 (tuned)
      Tasks: 4 (limit: 19001)
     Memory: 18.3M (peak: 19.2M)
        CPU: 199ms
     CGroup: /system.slice/tuned.service
             └─12660 /usr/bin/python3 -Es /usr/bin/tuned -l -P

Jun 20 08:19:16 mani systemd[1]: Starting Dynamic System Tuning Daemon...
Jun 20 08:19:17 mani systemd[1]: Started Dynamic System Tuning Daemon
  1. Check the current active power profile:
tuned-adm active
  1. Check the possible power profiles:
tuned-adm list

Available profiles:
- accelerator-performance     - Throughput performance based tuning with disabled higher latency STOP states
- atomic-guest                - Optimize virtual guests based on the Atomic variant
- atomic-host                 - Optimize bare metal systems running the Atomic variant
- aws                         - Optimize for aws ec2 instances
- balanced                    - General non-specialized tuned profile
- balanced-battery            - Balanced profile biased towards power savings changes for battery
- cpu-partitioning            - Optimize for CPU partitioning
- cpu-partitioning-powersave  - Optimize for CPU partitioning with additional powersave
- default                     - Legacy default tuned profile
- desktop                     - Optimize for the desktop use-case
- desktop-powersave           - Optmize for the desktop use-case with power saving
- enterprise-storage          - Legacy profile for RHEL6, for RHEL7, please use throughput-performance profile
- hpc-compute                 - Optimize for HPC compute workloads
- intel-sst                   - Configure for Intel Speed Select Base Frequency
- laptop-ac-powersave         - Optimize for laptop with power savings
- laptop-battery-powersave    - Optimize laptop profile with more aggressive power saving
- latency-performance         - Optimize for deterministic performance at the cost of increased power consumption
- mssql                       - Optimize for Microsoft SQL Server
- network-latency             - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
- network-throughput          - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
- openshift                   - Optimize systems running OpenShift (parent profile)
- openshift-control-plane     - Optimize systems running OpenShift control plane
- openshift-node              - Optimize systems running OpenShift nodes
- optimize-serial-console     - Optimize for serial console use.
- oracle                      - Optimize for Oracle RDBMS
- postgresql                  - Optimize for PostgreSQL server
- powersave                   - Optimize for low power consumption
- realtime                    - Optimize for realtime workloads
- realtime-virtual-guest      - Optimize for realtime workloads running within a KVM guest
- realtime-virtual-host       - Optimize for KVM guests running realtime workloads
- sap-hana                    - Optimize for SAP HANA
- sap-hana-kvm-guest          - Optimize for running SAP HANA on KVM inside a virtual guest
- sap-netweaver               - Optimize for SAP NetWeaver
- server-powersave            - Optimize for server power savings
- spectrumscale-ece           - Optimized for Spectrum Scale Erasure Code Edition Servers
- spindown-disk               - Optimize for power saving by spinning-down rotational disks
- throughput-performance      - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
- virtual-guest               - Optimize for running inside a virtual guest
- virtual-host                - Optimize for running KVM guests
Current active profile: balanced
  1. Change to the preferred power profiles:
tuned-adm profile <profile-name>
  1. Disable all tuning till next reboot:
 tuned-adm off

Currently only static detection is implemented - it decides according to data in /etc/system-release-cpe and the output of virt-what. The rules for autodetection are defined in the file /usr/lib/tuned/recommend.d/50-tuned.conf. They can be overridden by the user by creating a file in /etc/tuned/recommend.d or a file named recommend.conf in /etc/tuned. See the tuned-adm(8) man page for details). The default rules recommend profiles targeted to the best performance or the balanced profile if unsure.

Source:

https://aur.archlinux.org/packages/tuned
https://aur.archlinux.org/packages/tuned-ppd
https://wiki.archlinux.org/title/Power_management
https://wiki.archlinux.org/title/CPU_frequency_scaling#power-profiles-daemon

#powermanagement #gnome