Тимчасовий патч 20-річної давності в ядрі Linux продовжує гальмувати сучасні процесори AMD

Опубликовал
Вадим Карпусь

Інженер AMD Пратик Як недавно представив патч для драйверів бездіяльності процесорів для Linux, який «пропускає фіктивне очікування для процесорів на основі мікроархітектури Zen».

Коли у 2002 році до ядра Linux було додано підтримку ACPI, вона включала «фіктивну операцію очікування». По суті система зчитувала дані без будь-якої мети, а лише для затримки виконання наступної інструкції до тих пір, поки CPU не зможе повністю зупинитися за допомогою команди STPCLK#. Це дозволило забезпечити деяку економію енергії та сумісність у перші дні реалізації ACPI, коли деякі чипи не переходили у стан простою, коли цього можна було очікувати.

Але це рішення було актуальним для процесорів лінійки Athlon 20-річної давності. Сучасні чипи AMD Threadripper на базі архітектури Zen не потребують цього обхідного шляху. Як пише Наяк, він шкодить їм принаймні при певних робочих навантаженнях в Linux. Тестування робочих навантажень із вибіркою з урахуванням інструкцій показує, що «значна кількість часу витрачається на фіктивну операцію, яка помилково враховується як резидентність C-State». Процесор, виявляючи цю фіктивну роботу з низькими навантаженнями, може переходити в більш глибокий і повільний стан C-State, що потім змушує ЦП довше «прокидатися», особливо в завданнях, що потребують великої кількості перемикань між станами роботи та простою.

Наяк провів тести tbench в системі з двома процесорами на базі архітектури Zen3. При цьому для порівняння використовувалися базове ядро ​​Linux, ядро ​​з повністю вимкненим станом C2 та ядро ​​з виправленою фіктивною операцією очікування. У його пропатченій версії мінімальна пропускна спроможність у МБ/с збільшилася на 1390%, а середня пропускна спроможність на 51% порівняно з базовим ядром. Ці результати лише трохи відстають від версії ядра з повним вимкненим станом C2.

Онлайн-курс "Лідогенерація у B2B" від Laba.
Де шукати нових клієнтів, щоб збільшити дохід компанії та які інструменти лідогенерації застосовувати? Розбираємо покроково та комплексно.
Дізнатись більше про курс

Якщо цього тижня буде затверджено терміновий патч, який видаляє або обмежує «фіктивне очікування», він, швидше за все, стане частиною ядра Linux 6.0, що очікується наступного тижня.

Джерело: arstechnica

Disqus Comments Loading...