A Linux 6.17-rc1 kernel kiadáshoz FireWire alrendszer frissítések érkeznek

A Linux 6.17-rc1 kernelhez elkészült a FireWire alrendszer legújabb fejlesztési csomagja, amelyet Takashi Sakamoto nyújtott be Linus Torvaldsnak. A frissítés elsősorban a korábban használt tasklet-ek teljes körű kiváltását valósítja meg, amelyet a 1394 OHCI DMA kontextusok alsó szintű kezelési mechanizmusának átalakítása tett lehetővé. A kód mostantól teljes mértékben standard Linux workqueue mechanizmust használja az aszinkron adatcsomagok kezelésére, ezzel egységesítve és modernezálva a belső feldolgozási folyamatokat.

A változások alapját a 6.10 és 6.11 kernel verziók között bevezetett tracepoint események megfigyelései adták, amelyek igazolták, hogy az új architektúra stabilan működik. Egy technikai problémát azonban egyelőre nem oldottak meg: előfordulhat, hogy a rendszer a schedule() függvényt egy RCU olvasási szakasz közepén hívja meg, ami szabálytalan. A javítási javaslat már elkészült, jelenleg tesztelés és felülvizsgálat alatt áll, ezért nem került be ebbe a pull kérelembe, csak a 6.17-rc1 kiadás után várható.

A Linux 6.17-rc1 kernel kiadáshoz FireWire alrendszer frissítések érkeznek

Aszinkron csomagkezelés új alapokon

A tasklet-ek kiváltása a FireWire alrendszerben nem csupán technikai kódtisztítást jelent: az aszinkron csomagkezelés – amely kulcsszerepet játszik a soros busztopológia menedzsmentjében, valamint az SBP-2 protokollt alkalmazó eszközillesztő működésében – mostantól alvó állapotból is végrehajtható feladatként valósul meg. Ennek köszönhetően a rendszer jobban támogatja az előreemptív, valósidejű feldolgozási modelleket, különösen alacsony memóriás környezetben. A hozzá tartozó workqueue létrehozása során a fejlesztők a WQ_MEM_RECLAIM attribútumot is beállították, így a rendszer képes a memória-visszanyerési utakba is bekapcsolódni. Ez a konfiguráció tükrözi a korábbi, isokron csomagkezeléshez használt megoldást, amelyet a 6.12-es verzióban vezettek be. Az új struktúrák nemcsak rugalmasabb feldolgozást tesznek lehetővé, hanem elősegítik az egyes események közötti jobb időzítést is, ami például AV-eszközöknél kulcsfontosságú lehet.

Tisztább kód és hatékonyabb memóriakezelés

A frissítés számos kódtechnikai finomítást is tartalmaz, amelyek célja a FireWire alrendszer karbantarthatóságának javítása és a memóriakezelés optimalizálása. A fejlesztők pontosították a buszresethez kapcsolódó kommentárokat, egységesítették a from_work() makró használatát az AR és AT kontextusoknál, és külön munkafolyamatokat rendeltek az egyes eseménytípusokhoz. A közös kontextusstruktúra mérete csökkent, mivel bizonyos tagokat kiszerveztek egy külön AT struktúrába. Emellett egy kisebb refaktorálással lokalizálták a gap count táblát, így az adatszerkezetek hozzáférhetősége és használhatósága is javult. Ezek a módosítások együttesen nemcsak a teljesítményt, hanem a rendszer hosszú távú stabilitását és bővíthetőségét is kedvezően befolyásolják.

A Linux kernelben pár évig még biztosan megmarad a Firewire szabvány támogatása

Miközben az Apple a macOS 26 „Tahoe” kiadásból végleg eltávolítja a FireWire támogatást, a Linux továbbra is biztosítja a kompatibilitást az IEEE-1394 szabvánnyal. A 6.17-es verzió fejlesztése során nem csupán fenntartják a meglévő funkcionalitást, hanem aktív kódmodernizálás is zajlik az alrendszerben. Ennek célja a megbízhatóság és karbantarthatóság javítása, valamint a jövőbeli kernelverziókkal való kompatibilitás biztosítása. A közösségi fejlesztésű rendszer így a professzionális felhasználók és ipari eszközöket alkalmazó környezetek számára továbbra is stabil alapot kínál. A fejlesztők jelenlegi tervei szerint a FireWire támogatás legalább 2029-ig biztosított marad a Linux rendszeren.

Gábor a Pingvinbázis alapítója és főszerkesztője, több mint 20 éves tapasztalattal rendelkezik a Linux rendszerek és az Open Source szoftverek területén. Jártas a Python, és a PHP nyelvben, valamint a BASH scriptelésben is.