В ядрото на Linux е намерен забравен пач, който влияе на производителността на CPU AMD.

В ядрото на Linux 6.0, чието освобождаване се очаква в понеделник, е приета промяна, която решава проблемите с производителността на системите с AMD Zen процесори. Източникът на падението в производителността е код, добавен преди 20 години, с цел заобикаляне на хардуерен проблем в някои чипсети. Хардуерният проблем отдавна е решен и не се проявява в актуалните чипсети, но старият обходен механизъм е забравен и е станал източник на намаляване на производителността на системите, базирани на съвременни AMD CPU. Новите системи с Intel CPU не засягат стария обходен механизъм, тъй като достъпът до ACPI в тях се осъществява чрез отделен драйвер intel_idle, а не чрез общ драйвер processor_idle.

Обходният механизъм е добавен в ядрото през март 2002 година за блокиране на проявленията на грешка в чипсетите, свързана с липсата на правилна настройка на състоянието на простоя (idle) поради закъснение в обработката на сигнала STPCLK#. За да се заобиколи проблемът в реализацията на ACPI, е добавена допълнителна инструкция WAIT, която забавя процесора, за да може чипсетът да премине в състояние на простоя. При профилиране с използването на инструкции IBS (Instruction-Based Sampling) на AMD Zen3 процесори, е установено, че процесорът прекарва значително време, изпълнявайки заглушка, което води до неправилно тълкуване на натоварването на процесора и поставяне на по-дълбоки състояния на сън (C-State) от обработчика cpuidle.

Такова поведение рефлектира в намаляване на производителността при натоварвания, при които често се редуват състояния на простоя (idle) и активност (busy). Например, при използване на пач, който деактивира обходния механизъм, средните резултати от теста tbench се увеличават от 32191 MB/s до 33805 MB/s.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster