Javasolt Linux-folt: rövid késleltetés a PCI-szabvánnyal összhangban, ami remélhetőleg több hibát is orvosol

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

A Framework Computer jelezte először azt a Linux kernel hibát, amelyet néhány ügyfelük tapasztalt. Végül Mario Limonciello, az AMD egyik Linux-mérnöke dolgozott ki egy javítócsomagot, amely úgy tűnik, megfelelően kezeli azt a helyzetet, amikor bizonyos hardvereken a rendszer felfüggesztésből visszatérve „elveszik” az xHCI vezérlő.

A PCI specifikáció előír egy minimális helyreállási időt, amit be kell tartani, amikor egy funkciót D3 állapotból D0-ba állítunk vissza, és utána el akarjuk érni. A PCI szabvány szerint ez 10 ms késleltetés. A Linux kernel viszont a D3cold útvonalon nem ír elő kötelező késleltetést, csak D3hot esetén. A most benyújtott Linux kernel javítócsomag viszont 10 ms-os késleltetést vezet be a D3cold útvonalon is, és úgy tűnik, ez megoldja a problémát.

Limonciello a

kernel levelezőlistán így magyarázta:

„Egy problémát jelentettek, amely szerint néhány rendszeren az xHCI host vezérlő nem áll vissza felfüggesztésből. A hiba előfordulási aránya változó, és zavaró módon összefügg azzal, mekkora VRAM-foglalást állít be a BIOS.

Ha például kicsi a VRAM-foglalás (például 512 MB), akkor nincs hiba. Vannak olyan megjegyzések, amelyek szerint minél nagyobb a VRAM mérete, annál magasabb a hibaarány. Személy szerint nem igazán értem, ez miért számítana, de megemlítem, hátha másnak beugrik róla valami.

Különféle kerülőmegoldások működnek:

Legacy megszakítások használata MSI helyett

A vezérlő resetelése visszatéréskor

* Device link függőség létrehozása az XHCI és a kijelző PCI-eszközök között (az eszközök visszaállítási sorrendjének szabályozására)

Szerintem azonban egyik kerülőmegoldás sem a probléma gyökerét kezeli.

Követtem a kód futását, és összevetettem a PCI specifikációval. Az XHCI vezérlőnek D3cold állapotban kell lennie felfüggesztéskor, így D3→D0 átmeneten megy keresztül. A PCI specifikáció szerint a D3 átmenetekhez 10 ms késleltetés kell.

Viszont D3cold állapotban az endpointoknál nincs kötelező késleltetés, csak a bridge-eknél. Az endpointoknál csak D3hot esetén van kötelező késleltetés.

Ezért az a gyanúm, hogy ha kötelező késleltetést vezetünk be a D3cold→D0 átmenethez, az segít ezen a problémán. Ezt valósítja meg ez a patch-sorozat.”

A javítócsomag kizárólag a közös Linux PCI driver kódot érinti. A február óta követett kernel.org hibajelentés alapján úgy tűnik, hogy a javítás legalább a Framework Desktop esetében megoldja a problémát.