Powertop reports "Bad" "Runtime PM for PCI Device"

I've noticed that powertop utility reports "Bad" "Runtime PM for PCI Device" for several devices. Seems that powertop can fix the issue but it won't tell what exactly it does to fix it. What should I do to fix that "Runtime PM..." issue?


Solution 1:

Create a file called /etc/udev/rules.d/10-runtime-pm.rules with the following content:

SUBSYSTEM!="pci", GOTO="power_runtime_rules_end"
ACTION!="add", GOTO="power_runtime_rules_end"

KERNEL=="????:??:??.?"
PROGRAM="/bin/sleep 0.1"

ATTR{power/control}=="*", ATTR{power/control}="auto"

LABEL="power_runtime_rules_end"

After a reboot runtime PM should be enabled for all devices that support it. It is also enables it for all hotplugged devices.

Solution 2:

You need to set power/control attribute to auto for these devices. The easiest way to set it immediately for all PCI devices is:

echo auto | sudo tee /sys/bus/pci/devices/*/power/control 

Bash complains when using output redirection (>) to multiple files as ambiguous redirect.

If you want to set it permanently use approach described in this answer.