Linus Torvalds pripravil sadu záplat pre podsystém správy pamäte jadra. Linux, implementácia optimalizácií pre čítanie malých blokov údajov z vyrovnávacej pamäte stránok bez atomickej zmeny počtu odkazov (refcount) v štruktúre folia. Text commitu uvádza, že zmeny, súvisiace testy a text anotácie konceptu vytvoril asistent Claude Code AI pod dohľadom Torvaldsa. Zmena bola pridaná do samostatnej vetvy jadra, noref-filemap-read-with-llm, a zatiaľ nie je jasné, či bude spätne portovaná do hlavnej vetvy, alebo ide len o interný experiment.
Počas testovania záplaty zvýšili priepustnosť čítania malých súborov v 8-vláknovej konfigurácii z 9.9 – 10.4 na 30 – 33 miliónov operácií za sekundu (3-násobné zvýšenie), v 4-vláknovej konfigurácii z 8.9 – 11.6 na 25 – 26 miliónov operácií za sekundu (2-násobné zvýšenie) a v jednovláknovej konfigurácii zo 7.9 – 8.1 na 8.8 – 8.9 milióna operácií za sekundu. Toto zvýšenie výkonu sa vysvetľuje skutočnosťou, že súčasný prístup k vyrovnávacej pamäti stránok spôsobuje silnú konkurenciu medzi vláknami pri prístupe k vyrovnávacej pamäti. Napríklad, keď sa 8 vlákien pokúša súčasne prečítať 16 bajtov údajov, 99.92 % času sa netrávi samotným čítaním, ale čakaním na prístup k počítadlu referencií.
Na zabezpečenie správnosti údajov používa záplata riešenie, ktoré využíva oneskorené uvoľnenie alokácie pamäte so synchronizáciou prostredníctvom mechanizmu Read-Copy-Update (RCU) namiesto získavania samostatných zámkov, zmeny počítadiel odkazov alebo medziľahlého ukladania do vyrovnávacej pamäte. Táto metóda zaručuje, že pamäťová stránka nebude fyzicky uvoľnená, kým vlákno čítania nedokončí kopírovanie údajov.
Zdroj: opennet.ru
