К. Пратик Наяк, инженер AMD , сообщил, что обходной путь чипсета 20-летней давности в ядре Linux все еще можно применять к современным процессорам AMD. Обходной путь может снизить производительность современных процессоров Zen. Обходной путь сейчас исправлен для старых систем, и он также поможет повысить производительность современных систем.
Объединено для Linux 6.0
Опубликовано исправление , позволяющее коду бездействия процессоров ACPI избежать обходного пути в системах AMD Zen. Поддержка ACPI была впервые добавлена в ядро Linux в 2002 году. В описании патча говорится:
«Драйвер бездействия считывает acpi_gbl_FADT.xpm_timer_block.address в пути выхода C-состояния на основе IOPORT, который, как утверждается, является «фиктивной операцией ожидания» и существует с момента введения ACPI в Linux, начиная с публикации Энди Гровера 14 марта 2002 года. Комментарий над фиктивной операцией был разработан Андреасом Мором еще в 2006 году в коммите b488f02156d3d («ACPI: комментарий восстановления, оправдывающий «дополнительный» доступ к P_LVLx»), где журнал фиксации утверждает:
«это фиктивное чтение было связано с тем, что STPCLK# не подтверждается вовремя на (некоторых) наборах микросхем, поэтому нам нужно иметь фиктивное чтение ввода-вывода, чтобы отложить дальнейшую обработку инструкций до полной остановки ЦП ». »
Согласно примечаниям к патчу, выборка определенных рабочих нагрузок с помощью IBS в системе AMD Zen3 показывает, что значительное количество времени тратится на фиктивную операцию, которая ошибочно учитывается как резидентность C-State. Большое значение резидентности C-State может заставить регулятор процессора рекомендовать более глубокое C-State во время последующих экземпляров бездействия, запуская порочный круг и приводя к снижению производительности при рабочих нагрузках, которые быстро переключаются между фазами занятости и простоя.
Патч AMD теперь объединен с ядром Linux 6.0 и, как ожидается, будет включен в выпуск на следующей неделе. Патч также превратился в другой патч, созданный инженером Intel Linux Дейвом Хансеном, который ограничивает обходной путь «фиктивного ожидания» для старых систем.