Een voorgestelde wijziging aan de slab-allocator voor Linux 7.4 is gemeld als klaargezet in slab/for-next. Voor de will-it-scale-test mmap1 wordt bij de patch een verbetering van 24% gemeld.
Hoe de voorgestelde sheaf-refill werkt
Een sheaf is een arraygebaseerde cachelaag per CPU voor de kernelallocator. De patch verandert het voorvullen van een sheaf die nog niet vol is: het pad kan daarvoor objecten uit volle sheaves in de barn halen. Een nieuwe partial sheaf in de barn bewaart objecten die na het overzetten overblijven.
Bij het voorvullen worden eerst objecten uit de partial sheaf gebruikt en daarna, als de sheaf nog niet vol is, uit een volle sheaf in de barn. De sheaf die wordt bijgevuld, blijft dezelfde. Het ontwerp moet ruimte maken op de volle lijst in de barn voor toekomstige RCU-sheaves. Ook is bijvullen vanuit de barn bedoeld als een goedkopere route dan objecten halen uit partial slabs onder list_lock.
Wat de benchmarkcijfers laten zien
Voor will-it-scale mmap1 wordt een verbetering van 24% gemeld. De cijfers voor de twee barn-metrics zijn veel groter: barn_get komt uit op +22.904.539,81% en barn_put op +21.422.544,07%. Die percentages horen bij hun eigen benchmarks; ze voorspellen geen vergelijkbare winst in alledaagse toepassingen.
De beoogde bestemming is Linux 7.4
De patch is bedoeld voor de mergewindow van Linux 7.4, die naar verwachting eind oktober plaatsvindt.