Добавить в корзинуПозвонить
Найти в Дзене
Games4Linux

Новый набор патчей для драйвера Intel P-State: Оптимизация планировщика задач на гибридных системах

На прошедшей неделе Intel представила новый набор патчей для драйвера P-State в Linux, направленный на оптимизацию работы с асимметричной мощностью ЦП на гибридных системах. Это продолжение усилий по улучшению поведения планировщика задач в Linux и обеспечению оптимального размещения задач между процессорами Intel Core, состоящими из высокопроизводительных (P) и энергоэффективных (E) ядер. Данная версия патчей особенно актуальна в условиях отключенной поддержки SMT (Simultaneous Multi-Threading) или для предстоящих процессоров Lunar Lake, у которых вообще отсутствует поддержка Hyper-Threading.
Характеристика новых патчей
Ранее в апреле были выпущены патчи с просьбой о комментариях, на основании которых сейчас был развернут новый набор изменений. Главным образом, они направлены на передачу информации о асимметричной мощности ЦП в планировщик, что необходимо для гибридных систем на базе оборудования Intel.
Рафаэль Высоцки, ответственный за подсистему управления энергопотреблением в яд

На прошедшей неделе Intel представила новый набор патчей для драйвера P-State в Linux, направленный на оптимизацию работы с асимметричной мощностью ЦП на гибридных системах. Это продолжение усилий по улучшению поведения планировщика задач в Linux и обеспечению оптимального размещения задач между процессорами Intel Core, состоящими из высокопроизводительных (P) и энергоэффективных (E) ядер. Данная версия патчей особенно актуальна в условиях отключенной поддержки SMT (Simultaneous Multi-Threading) или для предстоящих процессоров Lunar Lake, у которых вообще отсутствует поддержка Hyper-Threading.

Характеристика новых патчей

Ранее в апреле были выпущены патчи с просьбой о комментариях, на основании которых сейчас был развернут новый набор изменений. Главным образом, они направлены на передачу информации о асимметричной мощности ЦП в планировщик, что необходимо для гибридных систем на базе оборудования Intel.

Рафаэль Высоцки, ответственный за подсистему управления энергопотреблением в ядре Linux, опубликовал новые патчи и пояснил:
«Целью этой серии является предоставление планировщику информации об асимметричной мощности ЦП в гибридных системах x86 на базе оборудования Intel».

Информация об асимметричной мощности важна для гибридных систем, так как она позволяет более точно вычислять загрузку задач во всем ЦП, независимо от их мощности. Это, в свою очередь, позволяет более последовательно устанавливать уровни производительности ЦП с использованием агрегата cpufreq governor, особенно когда задачи мигрируют между ядрами с различной мощностью. Кроме того, это улучшает размещение задач и балансировку нагрузки в гибридных системах, что критически важно для EAS (Energy Aware Scheduling).

Основная информация передается драйвером intel_pstate из регистра MSR_HWP_CAPABILITIES, как указано в changelog патча [3/3]. Патч [2/3] вводит архитектурную инфраструктуру в виде переменной для мощности на уровне ЦП, а патч [1/3] — это предварительная корректировка кода.

Серия патчей и отключение SMT

Сравнивая новые патчи с RFC из апреля, следует отметить, что новая версия более эффективно обрабатывает частотную инвариантность и вносит другие изменения. Эти патчи требуют отключения поддержки SMT для корректной работы. В третьем патче указано:
«Сделайте так, чтобы intel_pstate использовал значения HWP_HIGHEST_PERF из MSR_HWP_CAPABILITIES для установки информации о мощности ЦП на асимметричных системах без SMT».

По сути, если речь идет о гибридной системе с отключенным SMT, новый код отключает поддержку ITMT (Intel Turbo Boost Max Technology) в планировщике, чтобы избежать конфликта с кодом асимметричной мощности, который автоматически активируется.

Разработчики ядра ранее утверждали, что они работали с гибридными ЦП в конфигурации "nosmt", чтобы отключить поддержку SMT. С предстоящими процессорами Lunar Lake, которые не имеют поддержки SMT/HT, Intel считает это решение более эффективным с точки зрения производительности и тем самым облегчает задачу правильного размещения и поведения планировщика между P и E ядрами.

Высоцки также комментировал, что «nosmt — это один из способов работы без SMT. Другой — отключить SMT в настройках BIOS. В любом случае с SMT провести точный учёт загрузки задач практически невозможно».

Ссылка: https://lore.kernel.org/linux-pm/4908113.GXAFRqVoOG@rjwysocki.net/#t