A Linux 6.17-rc1 kernelben átfogó karbantartás és előkészítés történik a memóriakezelés modernizálására

A Linux 6.17-rc1-es kernel kiadásának előkészületeként Andrew Morton beküldte a memóriakezelésért felelős alrendszer első nagyobb frissítési csomagját, amely 42 különböző foltot tartalmaz, ezek fele teljes vagy részleges karbantartási jellegű. A kernelbe történő beolvasztás célja elsősorban a régi, nehezen olvasható vagy túlterhelt kódok letisztítása, a típuskonzisztencia helyreállítása, valamint a közeljövőben tervezett fejlesztések előkészítése. A beolvasztás során Morton jelezte, hogy bár további kisebb kernel patch csomagot is várhatóan beküld jövő héten, a mostani változtatások már önmagukban jelentős méretűek, és több évtizedes technikai adósságot kezdtek ledolgozni. Különösen a DMA és NUMA rendszerek, valamint a DAMON memóriamonitorozási eszköz kapott hangsúlyos figyelmet, utóbbi mostantól egyszerűbben konfigurálható és jobban integrálható önálló gyártási környezetekbe is.

A Linux 6.17-rc1 kernelben átfogó karbantartás és előkészítés történik a memóriakezelés modernizálására

Új funkciók, optimalizációk és mérhető teljesítményjavulás

A kernelbe szánt kód egyik legfontosabb érdemi fejlesztése a mremap() rendszerhívás képességeinek kibővítése, amely mostantól lehetővé teszi több VMA (virtuális memóriatartomány) egyidejű áthelyezését, amennyiben a hívás MREMAP_FIXED zászlóval történik. Ennek előkészítésére és ellenőrzésére több részfeladat is megvalósult, beleértve új önellenőrző tesztek hozzáadását is.

A mprotect() hívás és a lapvédelmi bejegyzések kezelését szintén optimalizálták, különösen nagy méretű memórialapok esetén, amely akár háromszoros gyorsulást is eredményezhet. További mérhető javulás mutatkozott az önálló memória-visszavonási útvonalakra bontott lapcsoportok kezelésében, az előtöltési (readahead) algoritmus finomhangolásában és a nagyméretű lapokra vonatkozó egyedi hibakezelési útvonalak egyszerűsítésében. Ezek mellett a DAMON alrendszer számos új képességgel bővült, többek között statikus teljesítménymutatók elérhetőségével, valamint automatikus rendszerfigyelési paraméterek időalapú frissítésével. Ezzel a DAMON hatékonyabbá vált nemcsak fejlesztői, hanem üzemeltetési környezetben is.

Elavult mechanizmusok eltávolítása és konzisztenciajavítások

A változtatások között kiemelt helyet kapott a tasklet-ek és egyéb elavult, architektúrára vagy platformra jellemző makrók, típusok és bitjelzők kisöprése. Ez kiterjedt a PFN_DEV típusú oldalkezelésekre, az unmap_and_put_page függvényre, valamint a zero_user makróra, amelyet a modernebb memzero_page váltott fel. A NUMA-notifikációs infrastruktúra is jelentősen átalakult: mostantól a node-notifier alapú modell váltja a régi memória-notifier rendszert, ezzel átláthatóbbá és specifikusabbá téve a csomópontszintű események követését.

A különféle architektúrák közötti eltérések csökkentésére több olyan módosítás is érkezett, amelyek standardizálják a típuskövetést, például vm_flags_t egységes használatát a korábban vegyes típusokkal kezelt VM területeken. A memória-hozzárendelési mechanizmusokban, különösen a CMA (Contiguous Memory Allocator) és a HUGETLB kezelési útvonalakban további egyszerűsítések és fejlesztések történtek, többek között az előzetes foglalások megbízhatóságának javításával. A fejlesztések egy része közvetlenül a dokumentációra és önellenőrző tesztekre is kiterjedt, így biztosítva, hogy az új kód stabilitása és átláthatósága hosszú távon is fenntartható legyen.