Linus Torvalds připravil sadu záplat pro subsystém správy paměti jádra. Linux, implementující optimalizace pro čtení malých bloků dat z mezipaměti stránek bez atomické změny počtu odkazů (refcount) ve struktuře folia. Text commitu uvádí, že změny, související testy a text anotace konceptu byly vytvořeny asistentem Claude Code AI pod Torvaldsovým dohledem. Změna byla přidána do samostatné větve jádra noref-filemap-read-with-llm a zatím není jasné, zda bude zpětně portována do hlavní větve, nebo se jedná pouze o interní experiment.
Během testování záplaty zvýšily propustnost čtení malých souborů v konfiguraci s 8 vlákny z 9.9–10.4 na 30–33 milionů operací za sekundu (3násobné zvýšení), v konfiguraci se 4 vlákny z 8.9–11.6 na 25–26 milionů operací za sekundu (2násobné zvýšení) a v konfiguraci s jedním vláknem ze 7.9–8.1 na 8.8–8.9 milionů operací za sekundu. Toto zvýšení výkonu je vysvětleno skutečností, že simultánní přístup k mezipaměti stránek způsobuje silnou konkurenci mezi vlákny při přístupu k mezipaměti. Například když se 8 vláken pokusí současně přečíst 16 bajtů dat, 99.92 % času se nestráví samotným čtením, ale čekáním na přístup k čítači referencí.
Pro zajištění správnosti dat používá oprava alternativní řešení, které využívá zpožděné uvolňování paměti se synchronizací prostřednictvím mechanismu Read-Copy-Update (RCU), namísto získávání samostatných zámků, změny čítačů odkazů nebo mezilehlého ukládání do vyrovnávací paměti. Tato metoda zaručuje, že paměťová stránka nebude fyzicky uvolněna, dokud vlákno pro čtení nedokončí kopírování dat.
Zdroj: opennet.ru
