GPU Runtime Power Management Coming For Linux 3.12
The latest DRM subsystem work to be merged for the upcoming Linux 3.12 kernel is runtime power management support to be able to dynamically turn on/off secondary GPUs. This is an especially important feature for those with dual GPU (e.g. Optimus) laptops where the secondary GPU doesn't need to be constantly running.
The DRM runtime PM support for this secondary GPU powering was merged today into David Airlie's drm-next tree. One commit added runtime power management for Nouveau.
Another commit added the driver control power feature to the kernel's vga_switcheroo. "For optimus and powerxpress muxless we really want the GPU driver deciding when to power up/down the GPU, not userspace. This adds the ability for a driver to dynamically power up/down the GPU and remove the switcheroo from controlling it, the switcheroo reports the dynamic state to userspace also. It also adds 2 power domains, one for machine where the power switch is controlled outside the GPU D3 state, so the powerdown ordering is done correctly, and the second for the hdmi audio device to make sure it can resume for PCI config space accesses."
Too bad though that the Nouveau driver hasn't yet received any dynamic re-clocking support for Fermi/Kepler hardware or improved power management / re-clocking in general, which continues to be one of the biggest bottlenecks of the open-source NVIDIA driver with regard to maximizing performance.
The DRM runtime PM support for this secondary GPU powering was merged today into David Airlie's drm-next tree. One commit added runtime power management for Nouveau.
This hooks nouveau up to the runtime PM system to enable dynamic power management for secondary GPUs in switchable and optimus laptops.
a) rewrite suspend/resume printks to hide them during dynamic s/r to avoid cluttering logs
b) add runtime pm suspend to irq handler, crtc display, ioctl handler, connector status,
c) handle hdmi audio dynamic power on/off using magic register.
Another commit added the driver control power feature to the kernel's vga_switcheroo. "For optimus and powerxpress muxless we really want the GPU driver deciding when to power up/down the GPU, not userspace. This adds the ability for a driver to dynamically power up/down the GPU and remove the switcheroo from controlling it, the switcheroo reports the dynamic state to userspace also. It also adds 2 power domains, one for machine where the power switch is controlled outside the GPU D3 state, so the powerdown ordering is done correctly, and the second for the hdmi audio device to make sure it can resume for PCI config space accesses."
Too bad though that the Nouveau driver hasn't yet received any dynamic re-clocking support for Fermi/Kepler hardware or improved power management / re-clocking in general, which continues to be one of the biggest bottlenecks of the open-source NVIDIA driver with regard to maximizing performance.
6 Comments