AMD soluciona el problema de los SSD NVMe y el estado de suspensión de Linux con las CPU Ryzen
AMD y Linux no solamente es sinónimo de rendimiento, sino también de algunos problemas arrastrados durante bastante tiempo. Aunque Intel tampoco se salva, en el caso de los rojos les cuesta algo más ponerse al día dentro del software libre, pero sin duda este 2024 están cogiendo impulso, y hoy tenemos otra prueba. Mario Limonciello, ingeniero de AMD para Linux, confirma que han dado solución al problema de los SSD NVMe con el estado de suspensión del SO, además, de una forma particular.
Linux lanzó en el día de ayer su versión 6.10-RC4, y como hemos ido viendo durante el último mes traía importantes cambios, pero curiosamente y sobre la bocina AMD introdujo uno más. Este hace referencia a los problemas que había estado encontrando en muchas arquitecturas Zen y sus CPU Ryzen, algo que parece ser cosa del pasado.
AMD lanza un parche para Linux que soluciona los problemas de los SSD NVMe con la suspensión del SO
Hablamos de casi dos años arrastrando un mismo problema, así que como es evidente, no era fácil de solucionar, y de hecho, la propia AMD hablaba de que podría llegar a tener que lanzar BIOS nuevas para solventar el error. El problema es simple de entender: los SSD NVMe entraban en el modo D3 de suspensión propiciado por Linux, pero no despertaban del sueño, es decir, no se reanudaba el sistema, por lo que había que reiniciar manualmente.
Esto no pasa tanto en PC como en portátiles, donde el problema era realmente en casi todas las últimas arquitecturas, léase Picasso, Renoir, Lucienne y Cezanne, casi nada. Linux, como Windows en parte, requiere que el driver NVMe vaya al estado D3 dentro de lo que se conoce, según el SO, como espera o suspensión, pero los rojos no eran capaces de conseguirlo por los distintos firmwares de los fabricantes. Esto se conoce como la suspensión s2idle en Linux y como es lógico, corregir en decenas de portátiles esto por cada arquitectura que hemos nombrado supone varios cientos de modelos a tratar, algo complejo sin duda.
Mario Limonciello explica cómo funciona el parche y cómo se ha corregido todo esto
La solución es bastante salomónica y está disponible para Linux 6.10-RC4, donde Mario comenta lo siguiente:
"Se informa que un portátil HP basado en Rembrandt tiene problemas en los que el disco NVME no está presente después de reanudar desde s2idle.
Esto se debe a que el disco NVME no se colocó en el estado D3 en suspensión, y eso sucedió porque faltaba StorageD3Enable_DSD en la BIOS.
Como la arquitectura de AMD requiere que NVME esté en D3 para s2idle, ajustamos los criterios para force_storage_d3 para que coincidan con *todos* los SoC Zen cuando FADT anuncie soporte inactivo de bajo consumo.
Esto garantizará que cualquier producto futuro con esta deficiencia de BIOS no necesite ser agregarlo a la lista de anulaciones permitidas".
El parche llega dentro de lo que vimos hace semanas para el ACPI, por lo que los cambios son más sensibles de lo que parecían en un primer momento y siempre es una buena noticia que AMD se esté poniendo las pilas en este SO corrigiendo errores tan necesarios de subsanar como este del NVMe y la suspensión de Linux.