В Linux подкрутили код ACPI, замедлявший работу систем AMD Zen 3

В Linux подкрутили код ACPI, замедлявший работу систем AMD Zen 3

В Linux подкрутили код ACPI, замедлявший работу систем AMD Zen 3

В ядро Linux внесены исправления, призванные ограничить использование устаревшего приема — фиктивной операции ожидания, тормозящей CPU при его переводе в состояние сна. Современные системы AMD и Intel не нуждаются в такой помощи, более того, при определенных рабочих нагрузках трюк, в котором нет необходимости, может вызвать существенное снижение производительности.

В 2002 году в Linux была добавлена поддержка стандарта ACPI (Advanced Configuration and Power Interface), согласно которому управление энергопотреблением осуществляется на уровне операционной системы. Спецификации предусматривают возможность перевода устройства в состояние сна разной степени, а также использование технологий мгновенной готовности (пробуждение по сигналу).

Однако некоторые чипсеты оказались неспособными быстро реагировать на сигнал STPCLK# (stop-clock, вызывает состояние функционирования C2, при котором питание процессора отключается, но регенерация ОЗУ продолжается; для возврата в рабочий режим требуется время). В связи с этим был придуман обходной маневр — имитация ожидания, при которой система просто считывает данные ввода-вывода, задерживая обработку инструкций.

Соответствующий код появился в Linux вместе с поддержкой ACPI и присутствует до сих пор. Современные процессоры Intel его не используют, так как давно засыпают с помощью инструкции MWAIT — ее использование обеспечивает более тонкое управление энергопотреблением неактивного состояния (их семь против трех по ACPI).

Чипсетам AMD фейковая операция ожидания тоже больше не требуется, однако для них альтернативы нет. В то же время трюк двадцатилетней давности при определенных условиях может оказаться губительным. Недавнее исследование показало, что он может сильно замедлить работу AMD Zen 3 при рабочих нагрузках Linux с быстрым переключением состояний занятости и простоя. Падение производительности особенно заметно на платформах Ryzen Threadripper и EPYC, которые используют многоядерные процессоры.

Во избежание таких потерь был предложен патч для Linux, который лимитирует использование потерявшего актуальность кода: он пускается в ход только на старых платформах (в случае с Intel это системы с микроархитектурой древнее Nehalem). Концепцию заплатки подхватил Линус Торвальдс; в итоге долгожданный фикс был добавлен в новую сборку ядра Linux (6.0), выпуск которой запланирован на 2 октября.

Подпишитесь на новости

Yandex Cloud вернул доступ к 97,16% данных. Остальные потеряны

Яндекс восстановил доступ к 97,16% клиентских данных Yandex Cloud после октябрьских атак на дата-центры. Оставшиеся 2,84% вернуть невозможно, поскольку оборудование критически повреждено, а резервных копий на платформе у этих клиентов не было.

Об итогах восстановления корпорация рассказала РБК. По утверждению Яндекса, клиенты, использовавшие инструменты резервного копирования Yandex Cloud, данных не потеряли: у них сохранены все 100%.

После атак компания поменяла настройки: резервное копирование теперь включается автоматически при создании новых виртуальных машин (раньше пользователю требовалось подключать его самостоятельно).

Условия услуги остались прежними, отказаться от неё можно. Инженеры также распределяют вычислительные ресурсы по новым независимым локациям в разных регионах России. Число таких площадок обещают увеличивать.

Напомним, в октябре беспилотники атаковали три дата-центра компании: в Сасове, Калуге и под Владимиром. Сбои затронули сервисы самого Яндекса и других организаций, включая «Додо Пиццу», «М.Видео», «Ленту» и «Магнит».

Для восстановления компания переносила системы на резервные площадки и договорилась об ускоренном размещении клиентских сервисов у Selectel, K2Cloud и VK Cloud.

RSS: Новости на портале Anti-Malware.ru