Jens Axboe, a Linux kernel block és io_uring moduljainak karbantartója, 2025. november 18-án egy fontos commitet olvasztott be a kernelbe, amely a loop-aio-nowait branch-t integrálja a for-6.19/block ágba. Ez a változás jelentős előrelépést hoz a loop device kezelésében, különösen az aszinkron I/O műveletek optimalizálásában, ahol az IOCB_NOWAIT flag használatával kerülik el a parancsok munkafolyamatba történő sorbaállítását. A frissítés célja, hogy javítsa a loop aio teljesítményét, és közelebb hozza a loop disk sebességét az olyan hátterében álló blokk eszközökhöz, mint például NVMe vagy virtio-scsi. A commit kiemeli, hogy tesztkörnyezetben a loop disk teljesítménye szinte megegyezik a backing block device-ével, és megoldja a korábban jelentett problémákat, például a szekvenciális olvasás-írás teljesítményét akár ötszörösére növelve, androidos használat esetén pedig javítja a hatékonyságot.
Tartalomjegyzék

A loop device AIO optimalizálásának technikai részletei
A merge Ming Lei patch sorozatára épül, amely refaktorálja a lo_rw_aio függvényt, és bevezeti az IOCB_NOWAIT támogatást az aszinkron I/O parancsokhoz. Ez azt jelenti, hogy a parancsok nem kerülnek mindig munkafolyamatba, hanem közvetlenül NOWAIT I/O-val kezelhetők, ha lehetséges, így csökkentve a késleltetést. A változások érintik a loop_queue_work függvényt, ahol inicializálják a blkcg és memcg komponenseket, valamint új segédfüggvényeket vezetnek be, mint a lo_submit_rw_aio és lo_rw_aio_prep, amelyek előkészítik és végrehajtják az aszinkron olvasás-írás műveleteket. További fejlesztések közé tartozik a blokkoló írások számának nyomon követése, ami segít elkerülni a konkurens műveletek miatti konfliktusokat, és biztosítja, hogy a NOWAIT mód biztonságosan használható legyen stabil fájlrendszer blokk mappingeken.
Jelentős javulás érhető el a kernelben a fejlesztéseknek köszönhetően
A patch sorozat tesztjei drámai javulást mutatnak, például egy 8192 memslot-os mikrobenchmarkban a mapping idő akár tizenhétszeresére gyorsult, míg az unmap művelet 2353-szoros gyorsulást ért el. Ez nem csak szintetikus tesztekben érvényesül, hanem valós használatban is, például szekvenciális I/O műveleteknél. A loop MQ változása külön patchként érkezik, mivel UAPI módosítást igényel, de együttesen ezek a fejlesztések megoldják a korábban jelentett teljesítményproblémákat.
