AMD поправи грешка в ядрото на Linux 6.13, заради която

...
AMD поправи грешка в ядрото на Linux 6.13, заради която
Коментари Харесай

AMD пусна кръпка за Linux, която ускорява времето за зареждане на машини със Zen 1 и 2 – спестява от секунди до минути

AMD поправи неточност в ядрото на Linux 6.13, поради която времето за зареждане на системи с AMD Zen 1 и Zen 2 процесори от време на време нарастваше до няколко минути.

Въпреки че на Linux може да отнеме известно време за зареждане на остарял хардуер, операционната система не е известна като изключително мудна. Дори оптимизация, направена през август, която редуцира единствено 0,035 секунди от времето за зареждане, се смята за забележителна, защото Linux към този момент е мощно усъвършенствана операционна система.

Преди четири седмици обаче един от чиновниците на Nokia забелязал, че на повече от 10 сървъра, основани на Zen 1 процесори Epyc, им лишава известно време да започват.

Обикновено тази стъпка от процеса на зареждане би била към 12 секунди със единствено 1-2 секунди разлика при другите зареждания. Но при използването на упоменатата кръпка вариацията се усилва. При множеството зареждания не се вижда никакво влияние, при някои зареждания времето се усилва с няколко до десетки секунди, а в рискови случаи даже с няколко минути (!).

Инженера от Nokia в имейл до чиновник на AMD и екипа на Linux ядрото.

Инженерът също по този начин е открил, че казусът се дължи на смяна, която е била добавена в Linux 6.11 още през май 2023 година Наречена „ късно натоварване на двете влакна “, тя трябваше да се отнася до актуализациите на микрокода за процесорите на AMD, които имат по едно и също време многонишково ръководство (SMT).

Това всъщност обгръща всеки процесор, основан на Zen, от 2017 година насам.

Според служителя на AMD, който е написал кода за „ двете влакна “, Linux в началото е проверявал дали дадена актуализация на микрокода може да се приложи единствено на една нишка или би трябвало да се приложи и на двете влакна. Пачът обаче е премахнал тази инспекция, което значи, че актуализациите на микрокода постоянно ще се извършват на двете влакна.

Инженерът на Nokia обаче твърди, че актуализациите на микрокода биват сполучливо приложени към едната нишка, а по-късно биват приложени към другата.

Въпреки че това е излишно и води до фрапантно увеличение на времето за зареждане.

Твърди се, че спомагателното късно зареждане не вреди на нито един процесор, по-нов от Bulldozer. И въпреки всичко, въз основа на моите наблюдения, считам, че това изказване може да е погрешно.

По-малко от месец по-късно кръпката за ядрото 6.13-rc1, която отстранява казуса, към този момент е реалност. Тя отстранява актуализациите на микрокода от буфера на паметта на процесора, предотвратявайки прекосяването на актуализацията за повторно.

Според Phoronix тази корекция би трябвало да бъде трансферирана и към предходни постоянни версии на ядрото на Linux. Това ще разреши на дистрибуциите, основани на ядра отпреди 6.13, да получат поправката за бавното зареждане.

Като се има поради, че казусът е видян едвам този месец, макар че съществува от повече от година, евентуално той не е повлиял на доста консуматори или организации. Това не е изненадващо, защото истинските процесори Zen дебютираха през 2017 година, а чиповете Zen 2 се появиха през 2019 година Към този миг няма толкоз доста компютри, които към момента работят с тези относително остарели процесори. И то за значими задания.

Източник: kaldata.com


СПОДЕЛИ СТАТИЯТА


КОМЕНТАРИ
НАПИШИ КОМЕНТАР