Новости Софт 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, что затем заставляет ЦП дольше «пробуждаться», особенно в задачах, требующих большого количества переключений между состояниями работы и простоя.

Nayak провел тесты tbench в системе с двумя процессорами на базе архитектуры Zen3. При этом для сравнения использовались базовое ядро Linux, ядро с полностью отключенным состоянием C2 и ядро с исправленной фиктивной операцией ожидания. В его пропатченной версии минимальная пропускная способность в МБ/с увеличилась на 1390%, а средняя пропускная способность — на 51% по сравнению с базовым ядром. Эти результаты лишь немного отстают от версии ядра с полного отключенным состоянием C2.

Если на этой неделе будет утверждён срочный патч, удаляющий или ограничивающий «фиктивное ожидание», он, скорее всего, станет частью ядра ​​Linux 6.0, которое ожидается на следующей неделе.

Источник: arstechnica


Loading comments...

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: