Linux 6.19 kernel: Lezárultak a PCI alrendszer fejlesztései, fókuszban a Resizable BAR és az új PCIe vezérlők

Bjorn Helgaas beküldte Linus Torvaldsnak a Linux 6.19 kernel verziójához szánt PCI alrendszer változtatásait, ezzel gyakorlatilag lezárva a PCI-vel kapcsolatos fejlesztések beolvasztását az aktuális merge window során. A csomag a Linux 6.18-rc1 óta összegyűlt módosításokat tartalmazza. A frissítések köre rendkívül széles, de jól kirajzolódnak azok a területek, amelyek ebben a ciklusban különösen nagy figyelmet kaptak, ideértve az erőforrás-kezelést, az energiagazdálkodást és az új PCIe vezérlők támogatását.

Linux 6.19 kernel: Lezárultak a PCI alrendszer fejlesztései, fókuszban a Resizable BAR és az új PCIe vezérlők

Resizable BAR: javított működési mechanizmus

A Linux 6.19 fejlesztési ciklusában a PCI alrendszeren belül kiemelt figyelmet kapott a Resizable BAR működésének stabilizálása. A módosítások célja az volt, hogy elkerülhetővé váljon a PCI resource tree sérülése abban az esetben, ha egy BAR átméretezési kísérlet meghiúsul, illetve hogy ilyen helyzetekben a rendszer megbízható módon vissza tudja állítani az eredeti BAR-konfigurációt. Ennek érdekében több grafikus meghajtó működését is átalakították, így az Intel Xe, az i915 és az AMDGPU esetében is a PCI alrendszer vette át a visszaállítás kezelését, leváltva ezzel a korábbi, driveroldali megoldásokat.

A Resizable BAR kódbázisa ezzel párhuzamosan átfogó kódtisztításon és átszervezésen esett át, és mostantól egységesen a rebar.c forrásfájlban kapott helyet. A változtatások új segédfüggvényekkel is kiegészültek, amelyek pontosabban határozzák meg az egyes eszközök által támogatott BAR-méreteket, valamint az elérhető maximális méretet. Ezek a fejlesztések hosszabb távon kiszámíthatóbb működést és kevesebb hibalehetőséget ígérnek, különösen a modern grafikus hardverek esetén.

Az energiagazdálkodás és a hibakezelés területén is jelentős átalakítások történtek

A PCI alrendszer energiagazdálkodási és hibakezelési logikája szintén jelentős átalakításon ment keresztül a 6.19-es ciklusban. A fejlesztések egyik központi eleme az volt, hogy a rendszer mindig a ténylegesen aktuális konfigurációs állapotot mentse el felfüggesztés vagy hibernálás előtt, és ne egy korábbi, esetleg már elavult állapotot állítson vissza a felélesztéskor. Ez azoknál az eszközöknél fontos, amelyeknek nincs saját energiagazdálkodási támogatásuk, vagy nem rendelkeznek aktív meghajtóval.

Emellett a PCI hibakezelés dokumentációja frissült, pontosabban rögzítve, mikor és milyen esetekben érdemes a meghajtóknak állapotmentést végezniük. Több driverből eltávolították a feleslegessé vált pci_save_state hívásokat, mivel a PCI core immár minden esetben automatikusan elvégzi ezt a feladatot.

Bővülő PCIe vezérlők és platformtámogatás a kernelben

A Linux 6.19 kernel PCI alrendszere több új natív PCIe vezérlőmeghajtóval is bővült, ami jól mutatja, hogy a kernel fejlesztése továbbra is szorosan követi az újabb SoC-platformok megjelenését. A frissítés során bekerült a CIX Sky1, az NXP S32G, a Renesas RZ/G3S és a SpacemiT K1 PCIe host vezérlők támogatása, mind a megfelelő eszközfa-leírásokkal, mind a hozzájuk tartozó meghajtókkal együtt. Ezek a kiegészítések különösen az ipari, beágyazott és autóipari rendszerek számára lehetnek fontosak.

Számos meglévő vezérlőmeghajtó is frissült, így többek között a Qualcomm, Rockchip, MediaTek, Broadcom, Apple és Synopsys alapú PCIe megoldások is a képességek pontosabb kezelését, jobb energiagazdálkodást vagy stabilabb inicializálást kaptak.