Linux 6.19 kernel: ATA-javításokkal hozzák helyre a SATA LPM-et, csökken az üresjárati fogyasztás

A Linux kernel ATA kódjába bekerült egy javításcsomag, amely az elmúlt nagyjából egy év kiadásaiban is jelen lévő energiagazdálkodási regressziót kezel. A hiba lényege az volt, hogy bizonyos helyzetekben a SATA Link Power Management, vagyis a SATA kapcsolat energiatakarékos állapotkezelése nem működött megfelelően, emiatt egyes rendszerek nem tudtak eljutni a valóban alacsony fogyasztású platform- és CPU-állapotokig.

Linux 6.19 kernel: ATA-javításokkal hozzák helyre a SATA LPM-et, csökken az üresjárati fogyasztás

Amikor az ATAPI és a „DUMMY port” ébren tartja a platformot

A visszajelzések alapján a gond főleg akkor jelentkezett, amikor a hardverkonfigurációban ATAPI eszköz is volt, például CD-, DVD- vagy Blu-ray meghajtó, illetve olyan AHCI/SATA vezérlők, amelyek „DUMMY” portokat is kezelnek, vagyis papíron létező, de valójában nem kiépített csatornákat. Ilyen felállásban a SATA kapcsolat nem tudott rendesen lejjebb váltani energiatakarékos állapotokba, ami dominóhatásként a processzort is visszatarthatta a mélyebb csomagszintű C-state-ek (CPU nyugalmi állapotok) elérésétől. Ennek a kézzelfogható oldala egy konkrét hibajelentésben is megjelent: a Linux 6.14 utáni kerneleknél egy Intel Core i5 „Raptor Lake” gépen, az integrált SATA AHCI vezérlő mellett a SATA LPM gyakorlatilag kényszerből kikapcsolt, a CPU pedig nem jutott el a mélyebb package C-state-ekig, ami nagyjából 4 wattal megemelte az üresjárati fogyasztást.

Mit javít pontosan a Cassel-féle kernel patchsorozat?

A beküldött módosítások Niklas Cassel hatrészes patchsorozatából álltak össze, és több, a SATA LPM körül felbukkant kellemetlen hibát tesz rendbe. A legfontosabb tanulság, hogy volt olyan kódrész, ahol egyes ATAPI eszközöknél nem érvényesült helyesen az LPM-hez kapcsolódó ATA_QUIRK_NOLPM függvény, miközben a driver olyan portok regiszterterületét is megpróbálta olvasni, amelyek valójában nincsenek megvalósítva, holott ezt az AHCI specifikáció kifejezetten tiltja.

Ezek a javítások pusztán formai jellegűek: ha a SATA link nem tud rendesen energiatakarékos nyugalmi állapotokra váltani, az a teljes platform takarékosságát is visszafoghatja, így a gép üresjárati fogyasztása magasabb tartományban ragadhat. A SATA LPM célja éppen az, hogy üresjáratban hatékonyabb link-energiakezeléssel csökkentse a fogyasztást, amihez elengedhetetlen, hogy a hardver és a vezérlő/driver viselkedése összhangban legyen. A változtatások a Linux 6.19 fejlesztői ágába kerültek be, és reális az is, hogy a regresszió jellege miatt a közeljövőben stabil ágakba is visszaportolják őket, így nem csak a 6.19-et használók profitálhatnak belőle.