Power management with radeon on Ubuntu

As you might have already heard, lucid will introduce kernel modesetting(KMS) for most chipsets including intel, nvidia and ati. But at least for ati there is are drawbacks compared with the latest user mode setting(UMS) code. With UMS you could downclock your graphics which was quite handy when using a laptop. But the code shipped with lucid allows no power management at all although power management for KMS is already available in drm-next.

To continue the good news, the KMS power management is already more advanced than the UMS code used to be as it can change the engine clock, the memory clock and the number of PCIE lanes on the fly – depending on the current load.

If you want to try this out for yourself, you have to get an updated kernel from here.(this build tracks drm-radeon-testing) And then load the radeon module with dynpm=1. To just try this for one boot you can append radeon.dynpm=1 to your grub boot line. To make it permanent put it in a new file in /etc/modprobe.d/.

If it succeeds you should see something like this in your dmesg output: (engine, memory, pcie lanes)

[ 7827.808061] [drm] Requested: e: 43200 m: 33000 p: 16
[ 7828.012066] [drm] Setting: e: 43200 m: 33000 p: 16
[ 7828.508058] [drm] Requested: e: 32400 m: 13500 p: 1
[ 7828.708094] [drm] Setting: e: 32400 m: 13500 p: 1

Of course this things are not stable yet, as they are not even contained in Linux 2.6.33, but I think they are supposed to go in for 2.6.34 and it works here quite well 🙂