Linus Torvalds har forberedt et sæt patches til hukommelsesstyringsundersystemet i Linux-kernen, der implementerer optimering til læsning af små datablokke fra sidecache uden atomar opdatering af reference tælleren (refcount) i folio-strukturen. I commit-beskeden angives det, at ændringerne, de tilknyttede tests og det rå udkast til noten er lavet af AI-assistenten Claude Code under Linus Torvalds' opsyn. Ændringen er tilføjet i en separat kernelgren noref-filemap-read-with-llm, og det er endnu ikke klart, om den vil blive overført til hovedgrenen, eller om det bare er et internt eksperiment.
Under testningen muliggjorde patchene en stigning i læsekapaciteten for små filer i en konfiguration med 8 tråde fra 9,9-10,4 til 30-33 millioner operationer pr. sekund (en forøgelse på 3 gange), med 4 tråde fra 8,9-11,6 til 25-26 millioner/sek (en forøgelse på 2 gange), og ved en enkelttrådet belastning fra 7,9-8,1 til 8,8-8,9 millioner/sek. Ydeevneforøgelsen forklares ved, at der ved samtidig adgang til sidecachen opstår hård konkurrence mellem trådene ved adgang til cachen. For eksempel, når 8 tråde forsøger samtidig at læse 16 bytes data, bruges 99,92% af tiden ikke på selve læsningen, men på at vente på adgang til reference tælleren.
I patchen for at sikre dataintegritet anvendes en alternativ tilgang i stedet for at sætte individuelle låsninger, ændre reference tællere eller intermidiel buffering, som benytter forsinket frigivelse af hukommelse med synkronisering ved hjælp af RCU-mekanismen (Read-Copy-Update). Den foreslåede metode i patchen sikrer, at hukommelsessiden ikke vil blive fysisk frigivet, før den læsende tråd er færdig med at kopiere data.
Kilde: opennet.ru
