Linus Torvalds magyar idő szerint tegnap késő este bejelentette a Linux 6.18 kernel hatodik kiadásra jelölt verzióját amelynek a mérete nagyobb a múlt héthez képest. Torvalds szerint ez kizárólag a beküldött pull requestek időzítésének köszönhető, komoly problémákra nem utal. A kernel jelenleg rendkívül stabil összképet mutat, ám még rendelkezésre áll néhány hét a stabil kiadásig, ami lehetőséget ad a még meglévő hibák felfedezésére. Az rc6 kiadás egyik legjelentősebb hibajavítása az ARM64 architektúrához kapcsolódik, ahol egy súlyos teljesítményproblémát sikerült javítani. Az ezzel kapcsolatos patch november 11-én került megküldésre,mely nem sokkal később beolvasztásra is került.
Tartalomjegyzék

Főképp kis módosításokat tartalmaz a Linux kernel 6.18-rc6
A javítások gyakorlatilag minden alrendszert érintenek, de nincs köztük nagyobb volumenű változás. Leginkább apró, egy-két soros patchekről van szó, ahol a legnagyobb méretűek a selftestekhez tartoznak, melyek a kiadás körülbelül negyed részét teszik ki. A selftesteken kívül rengeteg driver javítás érkezett, ami miatt nagyobb lett az rc6 a szokásosnál. Ezek a módosítások vegyes képet mutatnak, véletlenszerű elemeket tartalmaznak, beleértve a hálózati réteget, a BPF-et, a core kernelt, a fájlrendszereket és a core VM-et, így gyakorlatilag minden területet érintenek egy kicsit.
Javítottak például az arm64 platformot érintő modulbetöltési hibát, a TI Ethernet driverek QoS mechanizmusát, korrigálták a kernel memória menedzsment kmsan hook-ját (megelőzve a korai stack depot hiányából eredő problémákat), illetve új iova kezelő funkciókkal bővítették a VFIO selfteszteket, ami elősegíti a virtualizációs környezetek tesztelését. A kernel változásának további részeit főleg architektúra-specifikus javítások teszik ki, melyek leginkább az arm64, a loongarch és az x86 platformokra terjednek ki.
Ezen felül frissítésre került az AMD microcode x86 platformon, kijavították a netpoll refcount hibáit a hálózati stabilitásért, pontosították a KVM x86 MSR kezelését, valamint korrigálták a Bluetooth kapcsolat-tisztítási hibákat.
Az ARM64 teljesítményregresszió okainak részletezése
Ahogy a bevezetőben említettük, a kiadás legjelentősebb javítása a 64 bites ARM architektúrához kapcsolódik, és egy súlyos teljesítményregressziót orvosol. A probléma a per-CPU atomikus műveletek rendkívül magas késleltetéséből származott, például az SRCU zárolási kódokban, ahol Paul McKenney fejlesztő 100 nanoszekundumos késleltetést mért egy srcu_read_lock()/srcu_read_unlock() páron az ARM Neoverse V2 processzoron, miközben x86-on mindössze néhány nanoszekundumot mértek.A regressziót megerősítendő, egy másik fejlesztő is hasonló késleltetésű atomikus műveleteket észlelt Ampere Altra processzoron, ahol a haproxy-ban végzett módosítások 2-7 százalékos teljesítménynövekedést eredményeztek.
A vizsgálat során kiderült, hogy a Large System Extensions (LSE) atomikus utasítások kikapcsolásával javul a teljesítmény, a végleges megoldás pedig a non-return per-CPU atomikus műveletek esetében a load LSE műveletek (például LDADD/LDCLR/LDSET) alkalmazása lett, amelyek „közelebb” hajtódnak végre, így csökkentve a késleltetést azokban az esetekben, ahol nincs jelentős verseny a memóriához való hozzáférésért.
A Linux 6.18-rc6 kernel kiadási bejelentése a kernel.org weboldalon tekinthető meg.
