Драйвер Intel P-State видит больше исправлений для гибридных процессоров с Linux 6.2

Хотя поддержка гибридных процессоров Intel Alder Lake, а теперь и Raptor Lake в Linux находится в хорошей форме после различных улучшений ядра для работы с сочетанием ядер P и E, иногда возникают оговорки. На этой неделе был опубликован набор исправлений драйвера Intel P-State, связанных с калибровкой аппаратных P-состояний (HWP), чтобы обеспечить его работу на всех гибридных платформах Intel.

Инженер Intel и специалист по обслуживанию подсистемы управления питанием Linux Рафаэль Высоцки разослал набор из двух исправлений, обеспечивающих работу калибровки HWP на всех платформах. Он подытожил серию патчей этим сопроводительным письмом, объясняющим ситуацию:
Калибровка HWP в intel_pstate необходима для надежного сопоставления уровней производительности HWP с частотами, которые используются в интерфейсе cpufreq sysfs. На всех негибридных «ядерных» платформах достаточно умножить уровни производительности HWP на 100000, чтобы получить соответствующие частоты, а вот на гибридных есть разница между P-ядрами и E-ядрами.

Предыдущие попытки сделать эту работу были основаны на использовании CPPC (и, в частности, номинальных значений производительности, предоставляемых _CPC), но оказалось, что информация CPPC недостаточно надежна для этой цели, и единственный способ сделать это — использовать жестко запрограммированные коэффициенты масштабирования для P-ядер и для E-ядер (к счастью, такие же, как и в негибридном случае). К счастью, на сегодняшний день один и тот же коэффициент масштабирования для P-ядер работает на всех гибридных платформах.

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

Второй реализует описанный выше подход.

В первом патче также объяснялось следующее:
Некоторые обращения к MSR в intel_pstate выполняются на ЦП, на котором выполняется код, но полученные от них значения используются для масштабирования производительности других ЦП.

Это проблематично, например, на гибридных платформах, где MSR_TURBO_RATIO_LIMIT для P-ядер и E-ядер отличается, поэтому считываемые из него значения на P-ядре вообще неприменимы к E-ядрам и наоборот.

Это «исправление» для кода калибровки Intel P-State HWP, поставленного в очередь в сентябре 2021 года.

На данный момент Rafael собрал патчи P-State в своей ветке linux-next linux-pm.git, что делает их пригодными для Linux 6.2. Но, учитывая, что это также исправление для поставляемых процессоров Intel и годовой проблемы с драйвером P-State, возможно, оно также будет перенесено в существующие стабильные серии Linux.
Поделиться:

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

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

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