New Linux Change Helps Ensure AMD Ryzen With NVMe Works After Resuming From Suspend
A Linux power management change merged on Friday aims to help ensure AMD Ryzen systems with NVMe solid-state drive storage will work properly when resuming from suspend.
Merged ahead of the Linux 6.10-rc4 kernel release tomorrow is a patch to help ensure more AMD Ryzen laptops/desktops put their NVMe storage devices into D3 mode at suspend time so that they will come back up properly on resume. The past year or two AMD has been dealing with power management quirks with some AMD Ryzen laptops losing NVMe on resume from s2idle suspend among other s2idle quirks/bugs under Linux.
Modern AMD systems require that the NVMe controller is put into D3 over a modern standby / suspend-to-idle cycle but some system firmware/BIOS aren't properly handling things. So the Linux ACPI code had been checking for AMD CPU IDs and forcing it for Picasso / Renoir / Lucienne / Cezanne platforms. But rather than limiting this behavior to specific CPU IDs, to make it more future-proof and robust the change ahead of Linux 6.10-rc4 is forcing the storage D3 functionality for AMD Zen CPUs where low-power idle support is also detected.
AMD Linux engineer Mario Limonciello explained in the patch:
That change was merged on Friday as part of the ACPI material for Linux 6.10-rc4. This will be found in Sunday's Linux 6.10-rc4 release while it's also marked for back-porting and thus will appear in the stable Linux kernel series over the coming days.
Merged ahead of the Linux 6.10-rc4 kernel release tomorrow is a patch to help ensure more AMD Ryzen laptops/desktops put their NVMe storage devices into D3 mode at suspend time so that they will come back up properly on resume. The past year or two AMD has been dealing with power management quirks with some AMD Ryzen laptops losing NVMe on resume from s2idle suspend among other s2idle quirks/bugs under Linux.
Modern AMD systems require that the NVMe controller is put into D3 over a modern standby / suspend-to-idle cycle but some system firmware/BIOS aren't properly handling things. So the Linux ACPI code had been checking for AMD CPU IDs and forcing it for Picasso / Renoir / Lucienne / Cezanne platforms. But rather than limiting this behavior to specific CPU IDs, to make it more future-proof and robust the change ahead of Linux 6.10-rc4 is forcing the storage D3 functionality for AMD Zen CPUs where low-power idle support is also detected.
AMD Linux engineer Mario Limonciello explained in the patch:
"A Rembrandt-based HP thin client is reported to have problems where the NVME disk isn't present after resume from s2idle.
This is because the NVME disk wasn't put into D3 at suspend, and that happened because the StorageD3Enable _DSD was missing in the BIOS.
As AMD's architecture requires that the NVME is in D3 for s2idle, adjust the criteria for force_storage_d3 to match *all* Zen SoCs when the FADT advertises low power idle support.
This will ensure that any future products with this BIOS deficiency don't need to be added to the allow list of overrides."
That change was merged on Friday as part of the ACPI material for Linux 6.10-rc4. This will be found in Sunday's Linux 6.10-rc4 release while it's also marked for back-porting and thus will appear in the stable Linux kernel series over the coming days.
16 Comments