Intel публикует переработанные исправления Linux для улучшения поведения гибридного процессора + ядра HT/SMT

Еще в августе инженер Intel опубликовал серию исправлений, чтобы помочь Linux на гибридных процессорах Intel с Hypr Threading. Эта работа, приносящая пользу новым процессорам Alder Lake и Raptor Lake, заключается в том, чтобы избежать ненужных миграций в доменах SMT. Наконец, была опубликована обновленная версия этой серии исправлений, поскольку это гибридное улучшение Intel работает в ядре.

Инженер Intel Рикардо Нери обновил исправления планировщика x86 для ядра Linux, чтобы избежать ненужных миграций в доменах SMT на гибридных процессорах Intel с сочетанием производительных ядер «P» и энергоэффективных «E». Исправления версии 2 позволяют избежать потенциального регресса архитектур, отличных от x86, устраняют различные проблемы, возникшие во время предыдущей проверки кода, и вносят другие изменения в код.

Intel публикует переработанные исправления Linux для улучшения поведения гибридного процессора + ядра HT/SMT
Написано Майклом Ларабелем в Intel 23 ноября 2022 г. в 09:30 по восточному поясному времени. Добавить комментарий
INTEL — Еще в августе инженер Intel опубликовал серию исправлений, чтобы помочь Linux на гибридных процессорах Intel с Hypr Threading. Эта работа, приносящая пользу новым процессорам Alder Lake и Raptor Lake, заключается в том, чтобы избежать ненужных миграций в доменах SMT. Наконец, была опубликована обновленная версия этой серии исправлений, поскольку это гибридное улучшение Intel работает в ядре.

Инженер Intel Рикардо Нери обновил исправления планировщика x86 для ядра Linux, чтобы избежать ненужных миграций в доменах SMT на гибридных процессорах Intel с сочетанием производительных ядер «P» и энергоэффективных «E». Исправления версии 2 позволяют избежать потенциального регресса архитектур, отличных от x86, устраняют различные проблемы, возникшие во время предыдущей проверки кода, и вносят другие изменения в код.

Рикардо Нери резюмировал эту последнюю серию патчей следующим образом:
«Балансировка нагрузки asym_packing используется для балансировки нагрузки между физическими ядрами с SMT (например, процессорами Intel с поддержкой Intel Turbo Boost Max 3.0 и гибридными процессорами) и между братьями и сестрами SMT физических ядер (например, Power7).

Текущая реализация достаточна для последнего случая, поскольку она отдает предпочтение братьям и сестрам SMT с более высоким приоритетом. Однако в первом случае мы должны учитывать тот факт, что пропускная способность процессора снижается, если один или несколько его братьев и сестер SMT заняты. Следовательно, ЦП с более низким приоритетом, который полностью простаивает, более желателен, чем ЦП с высоким приоритетом с занятыми братьями и сестрами SMT.

Чтобы соответствовать текущей реализации asym_packing, x86 искусственно присваивает более низкий приоритет братьям и сестрам SMT с более высокими номерами. На самом деле, нет никакой разницы между любым из братьев и сестер SMT ядра.

Не используйте разные приоритеты для каждого брата SMT. Вместо этого настройте логику балансировки нагрузки asym_packing так, чтобы она учитывала состояние простоя SMT-сестер ЦП.

Удаление этих искусственных приоритетов позволяет избежать лишних миграций и позволить ядрам с более низким приоритетом проверять все одноуровневые узлы SMT на наличие самой загруженной очереди. Последнее также необходимо для поддержки классов задач IPC, поскольку ЦП назначения должен будет проверять задачи, выполняемые на ЦП с равным приоритетом.

Этот набор исправлений не должен ломать Power7 SMT8. Функциональность не меняется для архитектур, которые не реализуют новый параметр check_smt функции sched_prefer_asym()».
Поделиться:

Похожие публикации

Тут ничего нет

Нет комментариев