Linus Torvalds on valmistanud hulga plaastritest, mis kuuluvad Linuxi tuuma mälu haldamise alamsüsteemi, et optimeerida väikeste andmeplokkide lugemist leheküljekettast ilma viidete arvu (refcount) aatomse muutmiseta folio struktuuris. Commit'i tekstis on märgitud, et muudatustega seotud testid ja märkmed on koostatud AI-assistendi Claude Code poolt Torvaldsi järelevalve all. Muudatus on lisatud eraldi tuuma haru noref-filemap-read-with-llm ning hetkel pole selge, kas see kantakse põhiharusse või on see lihtsalt sisene katse.
Testimise käigus õnnestus plaastritega suurendada väikeste failide lugemise jõudlust 8 lõime konfiguratsioonis 9.9-10.4 miljonilt 30-33 miljonile operatsioonile sekundis (kasv 3 korda), 4 lõime puhul 8.9-11.6 miljonilt 25-26 miljonile operatsioonile sekundis (kasv 2 korda), ning ühesüsteemse koormuse korral 7.9-8.1 miljonilt 8.8-8.9 miljonile operatsioonile sekundis. Jõudluse tõusu põhjuseks on see, et samal ajal leheküljekettale juurdepääsu korral tekib lõimede vahel tugev konkurents juurdepääsul vahemälule. Näiteks, kui 8 lõime proovivad korraga lugeda 16 baiti andmeid, siis 99.92% ajast kulub mitte lugemisele, vaid viidete arvu ootele.
Plaastris andmete õigsuse tagamiseks kasutatakse eraldi lukustuste seadmise, viidete arvu muutmise või vahemälude rakendamise asemel ümbersõidung, mis rakendab edasi lükatud mälu vabastamist RCU (Read-Copy-Update) mehhanismi abil sünkroniseerimisega. Pakutud meetod tagab, et mälu lehekülge ei vabastata füüsiliselt, enne kui lugemisprotsess on andmete kopeerimise lõpetanud.
Allikas: opennet.ru
