1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

ATI Gets Dynamic Power Management & Profiles Too

AMD

Published on 08 May 2010 08:33 AM EDT
Written by Michael Larabel in AMD
35 Comments

For years we have been talking about open-source ATI Radeon power management for their Linux driver and it's finally all coming to fruition. Back in April of 2008 we talked about dynamic clocks coming to R500+ ASICs and various other initiatives to improve the Radeon power management in their DDX driver, but everything got shook up with the migration to their ATI kernel mode-setting driver, which finally now allows for real power management capabilities.

Since September of last year there have been many KMS power management patches that have gone through multiple iterations and also advanced into beginning to support thermal monitoring, implementing I2C support, utilizing GUI idle IRQ support, and support for turning down the number of active SIMDS. Alex Deucher of AMD and Matthew Garrett of Red Hat had posted the newest KMS PM patches last week that further build upon this support. Published before the weekend started, however, is yet another ATI KMS power management patch-set.

This set of nine patches begin to batten the Radeon power management support into a readied state that many more users -- especially those with ATI graphics in mobile devices -- will be able to enjoy.

Alex's newest power management patch-set applies against the drm-radeon-testing kernel and it provides a number of fixes and reworks the code to provide two different methods of power management: dynamic power management and profile-based power management.

Under the Radeon driver's dynamic power management (simply called "dynpm" through the sysfs interface), the GPU clock speeds are changed dynamically based upon load. To determine the load at this point, the number of pending GPU fences is looked at to determine whether the GPU is idling or busy. A fence signals when the GPU has executed all instructions before it have been executed. In order to reduce flickering, GPU re-clocking is attempted on vertical blanking periods as the screen is being redrawn, but this area is still not perfect.

For those not interested in dynamic power management, there is now the profile-based power management that is configurable by the user in real-time. Right now switching of dynamic and profile power management is done by writing the respective value to /sys/class/drm/card0/device/power_method and then the different profile options can be written to /sys/class/drm/card0/device/power_profile.

The different power profiles at this point include: default, auto, low, and high. The profile-based default is the default choice used for ATI power management when switching to a kernel with this new graphics power management code and it simply leaves the GPU running at its default clock speeds without any re-clocking being used at all.

Using the auto profile-based setting will switch between the high and low power levels depending upon whether the system is connected to AC power or running off battery power. So when the system with ATI graphics is running off of a battery, it will switch down to a lower clock speed in order to conserve power. However, this option may end up getting removed before these patches are to be found in the mainline kernel, as it should be left to the user-space to decide what should happen when switching between power connectivity states.

The "low" power profile will force the GPU to run in its low power level at all times. This will decrease the graphics performance, but will lead to maximum battery life. On the other hand, the "high" power profile will always keep the GPU ramped up at its highest clock frequency for maximum performance but with maximum power consumption.

This code also clocks the GPU down into even lower power-states when the monitor is signaled off via DPMS (Display Power Management Signaling). However, when a monitor is active, these lowest power-states are inaccessible as in some cases it ends up being too slow to draw the display and can result in corruption or screen artifacts.

The profile-based switching also works with multiple display heads, where right now the dynamic power management support will only work when the graphics card is driving a single head. The profile power management support is also more stable and flicker-free than the dynamic method at this time.

This new code should land in drm-radeon-testing and will hopefully appear in the Linux 2.6.35 kernel. It's looking like this next major kernel release to be out by the end of the summer will be another exciting release thanks to this improved Radeon power support and also the DRI2 swap and sync extensions for the ATI driver that we talked about yesterday.

We are in the process of testing out these new power management patches and you can expect to see some interesting results on Phoronix by Monday or Tuesday of next week. We are going to be looking at how the different dynpm and profile options impact the gaming performance, how the battery power is affected, whether the system temperatures change at all, what the GPU clocks are during idle and load for the different options, and even graphing the GPU fence counts during this testing.

The new patch-set can be examined on the dri-devel mailing list.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. NVIDIA GeForce GTX 970 Offers Great Linux Performance
  2. CompuLab Intense-PC2: An Excellent, Fanless, Mini PC Powered By Intel's i7 Haswell
  3. From The Atom 330 To Haswell ULT: Intel Linux Performance Benchmarks
  4. AMD Radeon R9 285 Tonga Performance On Linux
Latest Linux Articles
  1. AMD Moves Forward With Unified Linux Driver Strategy, New Kernel Driver
  2. MSI: Update Your BIOS From The Linux Desktop
  3. NVIDIA vs. AMD 2D Linux Drivers: Catalyst Is Getting Quite Good At 2D
  4. 15-Way GPU Comparison With Mesa 10.3 + Linux 3.17
Latest Linux News
  1. Linux 3.19 To Have Skylake Graphics, PPGTT Enablement
  2. Ubuntu 16.04 Might Be The Distribution's Last 32-Bit Release
  3. Imagination Releases Full ISA Documentation For PowerVR Rogue GPUs
  4. Features GNOME Developers Want In The Linux Kernel
  5. GTK+ Gains Experimental Overlay Scrollbars
  6. Phoronix Test Suite 5.4 M3 Is Another Hearty Update
  7. GParted 0.20 Improves Btrfs Support
  8. EXT4 In Linux 3.18 Has Clean-ups, Bug Fixes
  9. Emacs 24.4 Has Built-In Web Browser, Improved Multi-Monitor Support
  10. NVIDIA's NVPTX Support For GCC Is Close To Being Merged
Latest Forum Discussions
  1. Users/Developers Threatening Fork Of Debian GNU/Linux
  2. HOPE: The Ease Of Python With The Speed Of C++
  3. Proof that strlcpy is un-needed
  4. Bye bye BSD, Hello Linux: A Sys Admin's Story
  5. Updated and Optimized Ubuntu Free Graphics Drivers
  6. NVIDIA Presents Its Driver Plans To Support Mir/Wayland & KMS On Linux
  7. AMD Is Restructuring Again, Losing 7% Of Employees
  8. Open-Source AMD Fusion E-350 Support Takes A Dive