Az Intel kernelmérnökei egy olyan problémát próbálnak megoldani, ami főleg többmagos konfigurációknál jelentkezik: az NVMe-megszakítások száma sokszor kevesebb, mint a CPU-magoké, ezért több magnak kell ugyanazokat a megszakításokat kezelnie. Ha a rendszer ezeket nem a megfelelő magokra irányítja, vagyis nem igazodik a processzor topológiájához, ennek következményeképpen bizonyos platformokon akár jelentős teljesítményromlás is kialakulhat.
Tartalomjegyzék

Magcsoportok szerinti kiosztás NUMA-n belül
A benyújtott javítócsomag a kernel lib/group_cpus.c kódját teszi „magcsoport-tudatossá”: Ez a gyakorlatban azt jelenti, hogy a CPU-kat a kernel nem csak NUMA-tartományonként, hanem azon belül magcsoportok szerint is együtt próbálja tartani, így az NVMe-megszakításokhoz rendelt végrehajtás nagyobb eséllyel marad „közel” ugyanazon belső gyorsítótár-tartományon belül.
A patch leírása egy Xeon E példát is hoz, ahol négy mag alkot egy modulnak tekinthető csoportot közös L2 gyorsítótárral, és a rosszul elosztott megszakításkiosztás átlógást okozhat két ilyen csoport között; az új logika ezt igyekszik elkerülni.
Mit várhatunk, és mikor derül ki a valós hatás?
Egyelőre csak egyetlen nyilvános mérés áll rendelkezésre: a szerző szerint egy Intel Xeon E gépen a FIO libaio véletlenszerű olvasási tesztje 8K blokkmérettel nagyjából 15% feletti javulást hozott. Arról viszont még információ, hogy más NVMe-terheléseknél és eltérő CPU-topológiákon mekkora ez a hatás, ugyanakkor a változtatás már bekerült Andrew Morton mm tesztágába, ami általában a szélesebb körű kipróbálás következő lépcsője. Így a következő mainline ciklusok során derülhet ki, mennyire általánosítható ez a gyorsulás.
