Linux 6.3 To Allow Some AMD GPU Power Savings Benefits Even Without S0ix BIOS Support

Written by Michael Larabel in Radeon on 5 February 2023 at 07:25 AM EST. 8 Comments
RADEON
AMD sent in another batch of AMDGPU features and fixes to DRM-Next this week ahead of the Linux 6.3 merge window. With being late in the cycle the material is mostly of different fixes -- including some Radeon RX 7000 series "RDNA3" (GFX11) fixes -- but also a new feature in that AMD Radeon GPU power savings with S0ix even when the system BIOS support is lacking.

For the latest AMD Radeon GPUs there is various GC11 fixes, DCN 3.2.x fixes, DCN 3.1.4 fixes, and various other fixes. Among those fixes is also re-enabling Scatter Gather (S/G) support for DCN 3.1.4 hardware. Also of interest to some users are PCI hotplug fixes.

AMDGPU no s0ix in dmesg


Arguably the most interesting feature change with this week's AMDGPU pull request is allowing S0ix even without proper BIOS support. AMD engineer Mario Limonciello explained in the patch making this change:
We guard the suspend entry code from running unless we have proper BIOS support for either S3 mode or s0ix mode.

If a user's system doesn't support either of these modes the kernel still does offer s2idle in `/sys/power/mem_sleep` so there is an expectation from users that it works even if the power consumption remains very high.

Rafael Ávila de Espíndola reports that a system of his has a non-functional graphics stack after resuming. That system doesn't support S3 and the FADT doesn't indicate support for low power idle.

Through some experimentation it was concluded that even without the hardware s0i3 support provided by the amd_pmc driver the power consumption over suspend is decreased by running amdgpu's s0ix suspend routine.

The numbers over suspend showed:
* No patch: 9.2W
* Skip amdgpu suspend entirely: 10.5W
* Run amdgpu s0ix routine: 7.7W

As this does improve the power, remove some of the guard rails in `amdgpu_acpi.c` for only running s0ix suspend routines in the right circumstances.

However if this turns out to cause regressions for anyone, we should revert this change and instead opt for skipping suspend/resume routines entirely or try to fix the underlying behavior that makes graphics fail after resume without underlying platform support.

More details via this bug report that triggered the change. The problematic hardware in this case was a Ryzen 4350G desktop.

One other feature change to mention with this week's AMDGPU pull request is enabling FreeSync support over PCon to benefit DP-to-HDMI adapters.

The full list of this week's AMDGPU patches slated for Linux 6.3 via this pull request. This builds upon other AMDGPU feature code merged in recent weeks.

The Linux 6.3 merge window opens later this month while the stable Linux 6.3 kernel should be out in April.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week