Claude Code-patchene til Torvalds ga 23 ganger raskere lesing, så fant reviewerne en race
mandag 19. oktober · KI-generert · Kilde: The New Stack
Regn med at Claude Code-patchene til Linus Torvalds, som ga 23 ganger flere lesinger i sekundet i en syntetisk test, trenger mer arbeid etter at en reviewer fant en race som kan vise uskrevne data.
Linus Torvalds har sendt en ny serie på 10 patcher for page cache i Linux-kjernen, skrevet med Claude Code fra Anthropic, skriver The New Stack. På hans Ryzen Threadripper med 64 tråder gikk lesetesten fra 13,3 millioner til 304 millioner lesinger i sekundet, og kjernesyklusene per lesing falt fra nesten 20 000 til 735. Torvalds advarer selv om at gevinsten blir betydelig mindre i virkelige arbeidslaster.
Pulsen skrev 12. oktober om den første grenen på åtte patcher, som nesten tredoblet gjennomstrømningen på laptopen hans. Den nye serien, rcu-free-v3, bytter metode. Et nytt flagg, PG_rcu_free, og RCU-forsinket frigjøring skal beskytte folioen mens dataene kopieres til brukerbufferen, så lenge kopieringen ikke gir en page fault. Tidligere forsøk kopierte uten referanse og sjekket gyldigheten etterpå, og det etterlot races ved frigjøring og utskifting.
Reviewen har likevel funnet feil. Kiryl Shutsemau, som har jobbet med samme flaskehals før, fant en race i filemap_read_rcu_batch(): byttes folioen ut og i_size utvides etterpå, kan lesingen vise data som aldri er skrevet. Torvalds foreslo å lese filstørrelsen tidligere og samle folio-sjekkene, og Shutsemau har lagt det inn i en revidert patch. Matthew Wilcox fra Oracle, som flagget flaskehalsen i 2024, ville heller bruke en page type enn et nytt flagg, men Torvalds avviste det. Videre arbeid ligger nå hos Shutsemau.
Hva bør du gjøre?
- Mål en KI-skrevet ytelsesfiks både på maskinen der flaskehalsen er verst og på en vanlig maskin, slik Torvalds gjorde med laptop og Threadripper, og oppgi begge tallene.
- Be en reviewer, menneske eller egen agent, lete spesifikt etter races mellom gyldighetssjekk og kopiering når agenten fjerner låser eller referansetelling.