
CPU Scheduler sched/fair
míří do budoucího jádra Linux 5.20. Intel se v něm snaží zefektivnit způsob, jakým systém vyhledává nezatížená CPU jádra v situaci, kdy systém sám o sobě jako celek je pod velkou zátěží. Pokud se vše podaří, budou zejména moderní procesory Intelu (generace Alder Lake kombinující malá „Atomová“ jádra a klasická „velká“ CPU jádra s HyperThreadingem) pracovat efektivněji.
Do scheduleru tak míří nová vlastnost SIS_UTIL
na které pracuje Chen Yu z Intelu. S ní by měl být systém schopen porovnávat využití jader na základě průměrného zatížení. Komentuje to tak, že ideální by bylo mít křišťálovou kouli dávající odpověď na otázku, kolik CPU jader je nutno budit, než se podaří najít jádro v idle stavu. Jsou zde metriky, kterými lze toto předvídat, jedním z kandidátů na vhodnou metodu je suma hodnot util_avg
v LLC doméně (Last Level Cache). Výhodou je, že tato metrika akumuluje historickou aktivitu jader, která se zdá být lépe vypovídající než okamžité hodnoty. Současně umožňuje precizněji zatěžovat jednotlivé LLC domény.
Zkrátka čím menší je průměrné zatížení, tím častěji lze danou část CPU skenovat na nevyužitá jádra. Je zde ale nastavena empiricky stanovená mez 85% a vyšší util_avg
, nad kterou už sken na nevyužitá jádra nemá smysl provádět. Z test vyplývá, že tato úprava snižuje počty skenů CPU jader o téměř 88 % a jsou zde i další dílčí vylepšení chování. Celkově pak tato úprava přispívá ke zvýšení výkonu CPU. Dlužno však doplnit, že se již našla minimálně jedna regrese, na jejímž řešení se pracuje. Podrobný popis včetně měření je k dispozici na jaderném Gitu.