Linus Torvalds ir sagatavojis patchu komplektu Linux kodola atmiņas pārvaldības apakšsistēmai, īstenojot optimizāciju sīku datu bloku nolasīšanai no lapu keša bez atomiskām izmaiņām atsauču skaitītājā (refcount) folio struktūrā. Komita tekstā norādīts, ka izmaiņas, ar tām saistītie testi un piezīmju melnraksts ir radīti AI palīga Claude Code uzraudzībā, ko veica Torvalds. Izmaiņa pievienota atsevišķā noref-filemap-read-with-llm kodola zarā, un pagaidām nav skaidrs, vai tā tiks iekļauta pamata zarā vai tā ir tikai iekšēja eksperimenta daļa.
Testēšanā, pateicoties patchiem, izdevās palielināt sīku failu lasīšanas caurlaidspēju konfigurācijā ar 8 pavedieniem no 9.9-10.4 līdz 30-33 miljoniem operāciju sekundē (pieaugums 3 reizes), ar 4 pavedieniem - no 8.9-11.6 līdz 25-26 milj.m/s (pieaugums 2 reizes), savukārt vienpavediena slodzes gadījumā no 7.9-8.1 līdz 8.8-8.9 milj.m/s. Veiktspējas pieaugumu izskaidro fakts, ka vienlaikus piekļūstot lapu kešam, starp pavedieniem rodas stingra konkurence piekļūšanai kešam. Piemēram, kad 8 pavedieni mēģina vienlaicīgi nolasīt 16 baitus datu, 99.92% laika tiek tērēts nevis paša lasīšanas, bet gaidīšanas laikā piekļuvei atsauču skaitītājam.
Patchā, lai garantētu datu precizitāti, vietā atsevišķu bloķēšanas izsniegšanas, atsauču skaitītāju izmaiņu vai starpbuferēšanas, tiek izmantota alternatīva pieeja, kas izmanto atliktu atmiņas atbrīvošanu ar sinhronizāciju, izmantojot RCU (Read-Copy-Update) mehānismu. Patchā piedāvātais paņēmiens garantē, ka atmiņas lapa netiks fiziski atbrīvota, kamēr lasošais pavediens nebeigs datu kopēšanu.
Avots: opennet.lv
