Közelebb a Linuxhoz az Intel Cache Aware Schedulingje

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

Az Intel mérnökei több mint egy éve dolgoznak a Linux kernel Cache Aware Scheduling funkcióján. A Cache Aware Schedulinget már Intel és AMD CPU-kon is kipróbáltam a javított Linux kernel-val, nagyon jó eredményekkel. Emiatt külön öröm látni, hogy a Cache Aware Scheduling javítócsomagjai egyre közelebb kerülnek a mainline Linux kernel-hoz.

Néhány napja a Cache Aware Scheduling javítócsomagokat beemelték Peter Zijlstra sched/cache Git ágába. Remélhetőleg Peter hamarosan továbbítja őket egy tip/tip.Git ágba, ahonnan már közvetlen út vezet a következő Linux kernel merge window-ba.

A Cache Aware Scheduling a modern, több cache doménnel rendelkező CPU-kon javíthatja a Linux teljesítményét. Az ütemező igyekszik elérni, hogy az azonos adatokat használó feladatok ugyanabba a legutolsó szintű cache (LLC) doménbe kerüljenek. Így jobb lesz a cache lokalitás, és csökkennek a cache miss-ek és a cache-bouncing jelenségek. Korábban már mértem szép teljesítménynyereséget AMD EPYC és jobb Xeon 6 teljesítményt is. Amint a Cache Aware Schedulinget beolvasztják, vagy nagyon közel kerül a véglegesítéshez, újabb friss benchmarkokat fogok készíteni.

Azon túl, hogy ezek a javítócsomagok most eljutottak Peter fejlesztői Git ágába, új patch-sorozat is érkezett szerdán Tim Chen Intel-mérnöktől, amely már csak az ott előkészített javítócsomagokra épülő fejlesztéseket tartalmaz.

Az új fejlesztői patch-sorozat egy túlzott aggregációs problémát old meg, ami a Cache Aware Scheduling működése közben léphetett fel. Emellett több hiba javítása is belekerült, köszönhetően Sashiko AI-alapú jelentéseinek.

Tim Chen a patch-sorozat kísérőlevelében ezt írta:

"A cache-aware v4-hez képest a legnagyobb változás az első részben az, hogy az LLC effektív méretét a per-CPU alsó sched_domain tárolja. Ez lehetővé teszi, hogy ellenőrizzük, egy feladat memória-lábnyoma túllépi-e a küszöböt, mégpedig úgy, hogy közvetlenül a megfelelő sched_domainből kérjük le az értéket, ahelyett hogy minden alkalommal újraszámolnánk. Emellett az RSS helyett a NUMA balance page-fault statisztikáit használjuk a working set becslésére. Átvettük Jianyong optimalizáló patchét is, amely csökkenti a CPU-szkennelés többletterhét. Ha azonban a NUMA balancing nincs engedélyezve, akkor nem lesz ilyen working set-becslésünk. Ilyen esetben valószínűleg az RSS használata lenne megfelelő.

...

A teszteredmények azt mutatják, hogy a jelenlegi verzió ugyanazt a teljesítményt hozza, mint a v4 azokon a workloadokon és platformokon, amelyeken teszteltük.

A jövőbeli tervek között szerepel a cache aware scheduling finomhangolható vezérlésének bevezetése egyes feladatokra, miután a load-balance-alapú cache aware scheduling merge-ölésre kerül:

- Megvizsgáljuk a feladatcímkézés (például a schedqos frameworkkel, cgroupokkal) lehetőségét a nem folyamat-alapú feladatcsoportosításhoz LLC-re.

- Kiértékeljük a gyors cache-aware aggregációt a wakeup útvonalon."

Örömteli látni, hogy újabb fejlesztések érkeznek a Cache Aware Schedulinghez, és remélhetőleg hamarosan bekerül a mainline Linux kernel-ba.