A Linux-kernel aszinkron I/O interfésze, az io_uring, jelentős belső szerkezeti átalakításon esik át a közelgő Linux 7.0 fejlesztési ciklusban. Jens Axboe egy olyan problémát orvosolt, amely eddig lassította a nagy sebességű adatforgalmat: az úgynevezett IOPOLL (lekérdezéses) üzemmódban a rendszer eddig egyszerűen láncolt listát használt a függőben lévő műveletek kezelésére. Ennek a struktúrának a legnagyobb hátránya a rugalmatlanság volt. Ha több művelet várakozott a sorban, egy adott kérést csak akkor lehetett lezárni, ha a listában előtte lévő összes többi feladat is teljesült. Ez felesleges várakozási időt (latency) okozott, különösen akkor, ha különböző eszközökről volt szó, vagy ha egyazon eszköz eltérő sebességű kéréseit kellett feldolgozni.
Tartalomjegyzék

A megoldás: Duplán láncolt lista és független feldolgozás
A fejlesztés lényege, hogy a rendszer átáll a duplán láncolt listák (doubly linked list) használatára. Ez a változtatás lehetővé teszi, hogy az egyes I/O kéréseket tetszőleges sorrendben, a befejeződésük pillanatában azonnal eltávolítsák a várakozási sorból és lezárják.
Fengnan Chang (Bytedance) és Jens Axboe közös munkája révén megszűnik az „adatfeltorlódás” (IO accumulation). A kérések immár nem blokkolják egymást: amint egy lekérdezés sikeres, az io_uring azonnal értesíti a felhasználót, függetlenül attól, hogy a listában korábban szereplő kérések éppen milyen állapotban vannak. Ennek előnyeit a modern, ultra-gyors NVMe tárolók és az összetettebb, több eszközt érintő műveletek esetében lehet tapasztalni.
Látványos teljesítménynövekedés a kernelben a mérések alapján
A kód optimalizálása igencsak jól sikerült, ugyanis a közzétett benchmark eredmények alapján a javítás jelentősen megdobja az egy másodperc alatt elvégezhető műveletek számát (IOPS):
| Teszt környezet | Alap teljesítmény | Javítás utáni teljesítmény | Növekedés |
| Összetett terhelés (-c32) | 725K IOPS | 782K IOPS | ~8% |
| Célzott terhelés (-c1) | 880K IOPS | 895K IOPS | ~2% |
Ezek az adatok is bizonyítják, hogy a Linux 7.0 kernel érkezésével a szerverek és a nagy teljesítményű munkaállomások még hatékonyabban lesznek képesek kiaknázni a modern tárolóeszközökben rejlő potenciált.
