
Originally Posted by
bridgman
PM basically works by changing clocks and voltages to make power/performance tradeoffs that match the user's needs.
For r600 and earlier the driver code set clocks and voltages directly. On most of the more recent hardware generations the driver can still set clocks and voltages directly but each generation has different hardware blocks added which can set those clocks and voltages automatically with guidance from the driver. So far we have not been allowed to release info for those additional HW blocks, although as with UVD we have been working internally to change that. The difference is that we started internal discussions about PM a couple of years ago, concluded that we were not going to get quick approval, and that's why the current PM code was developed.
I think many people (like me) who say they would like better power management aren't even talking about automatically adjusting power levels to "match the user's needs". It's still that on "low" power level my HD 6550M drains more power than catalyst by default. (Last time I tried "low" it sometimes crashed so I used "mid" since then which seems to be exactly the same but at least appeared to be more stable).
What I personally think should be the priority in power management is bringing the card down to the minimum power drain possible for the "low" profile.
Code:
% sudo su -c "echo low > /sys/class/drm/card0/device/power_profile"
% cat /sys/kernel/debug/dri/0/radeon_pm_info
default engine clock: 600000 kHz
current engine clock: 299970 kHz
default memory clock: 800000 kHz
current memory clock: 299950 kHz
voltage: 900 mV
PCIE lanes: 16
% sudo su -c "echo mid > /sys/class/drm/card0/device/power_profile"
% cat /sys/kernel/debug/dri/0/radeon_pm_info
default engine clock: 600000 kHz
current engine clock: 299970 kHz
default memory clock: 800000 kHz
current memory clock: 299950 kHz
voltage: 900 mV
PCIE lanes: 16