Новини Пристрої 27.09.2022 о 15:35 comment views icon

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

author avatar
https://itc.ua/wp-content/uploads/2022/04/ad81c83e9fbf757ce8a90d0eb41dee5b-96x96.jpeg *** https://itc.ua/wp-content/uploads/2022/04/ad81c83e9fbf757ce8a90d0eb41dee5b-96x96.jpeg *** https://itc.ua/wp-content/uploads/2022/04/ad81c83e9fbf757ce8a90d0eb41dee5b-96x96.jpeg

Вадим Карпусь

Автор новин

Інженер 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.

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

Джерело: arstechnica


Loading comments...

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: