Opravuje vážné zhoršení výkonu Linuxu, které zaznamenal Torvalds

Opravuje vážné zhoršení výkonu Linuxu, které zaznamenal Torvalds

Než Linus Torvalds přišel o internet a energii kvůli sněhové bouři, která ovlivnila okno integrace Linuxu 6.8, byl jeho víkend již v drsném stavu kvůli poklesu výkonu s novým kódem Linuxu 6.8, který způsobil, že se jeho linuxové jádro postavilo. Je to dvojnásobek toho, co bylo u předchozích jader. Inženýr AMD Linux byl schopen reprodukovat regresi a s vedoucími vývojáři nyní existuje potvrzené řešení tohoto problému v nejnovějším plánovacím kódu.

V diskuzi o významné regresi výkonu hlášené Linusem Torvaldsem, která vyplynula ze změn plánovače v Linuxu 6.8 pro rozdělené odevzdání, nebylo přímo zapojeným vývojářům jasné, co regresi způsobilo. V následné diskusi vystoupil Wise Carney z AMD zmíněno Může také reprodukovat regresi. Místo špičkového AMD Ryzen Threadripper, jako je ten, který používá Torvalds, Wyes používal skromný desktop AMD Ryzen 5600G. Jedna důležitá poznámka, kterou uvedl, je, že se to reprodukuje pouze tehdy, pokud deaktivujete ACPI CPPC v BIOSu a použijete ACPI CPUFreq s regulátorem Schedutil.

Většina systémů AMD Zen 2 a novějších podporuje ACPI CPPC, takže s moderními jádry na straně Ryzenu obvykle používají nový ovladač AMD P-State. Ale pro Zen 2 / Zen 3 a starší systémy (nebo ty, které deaktivují CPPC z BIOSu), se stále používá ovladač CPUFreq a výchozím regulátorem frekvence CPU je obvykle „Schedutil“, aby bylo možné využít data o využití plánovače.

Prostřednictvím tohoto vlákna na seznamu adresátů byla navržena oprava a byly projednány konkrétní problémy s touto regresí. Nakonec Vincent Guiteau věřil, že má řešení regrese a Wise byl schopen úspěšně otestovat patch.

Guittot byl nyní odeslán Naplánováno/Spravedlivé: Opravte výběr frekvence pro nestabilní případ Jako oprava pro opravu této špatné regrese na novém kódu Linuxu 6.8 při použití ACPI CPUFreq + Schedutil. Vysvětluje s opravou:

„Pokud není povolena frekvenční perzistence, get_capacity_ref_freq(policy) vrací aktuální frekvenci a výkonnostní rozpětí aplikované map_util_perf(), což umožňuje využití překročit maximální výpočetní kapacitu a vybrat frekvenci vyšší, než je aktuální frekvence.

Výkonnostní rozpětí je nyní aplikováno na začátku procesu, aby se zohlednily některá omezení využití a nemůžeme dosáhnout využití nad maximální výpočetní kapacitu.

Musíme použít frekvenci vyšší, než je aktuální frekvence, abychom měli šanci nastavit vyšší OPP při plném využití aktuální frekvence. Použijte stejnou rezervu a vraťte frekvenci o 25 % vyšší, než je aktuální frekvence, abyste přepnuli na další OPP dříve, než vyčerpáme celý CPU v aktuálním procesoru.“

Nakonec se jednalo o jednořádkovou opravu kódu, která měla vyřešit toto snížení výkonu, které způsobilo, že se prázdná sestavení jádra Linuse Torvaldse prodloužila z 22 sekund na 44 sekund.

READ  Lexus vypíná funkce 3. generace u téměř všech modelů 2010-2018

Opravuje vážné zhoršení výkonu Linuxu, které zaznamenal Torvalds

Za předpokladu, že vše bude s novým patchem nadále dobře testováno, oprava by se měla dostat do kódu Linux 6.8 Git, jakmile bude obnoven internet a elektřina Linuse Torvaldse.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *