Как заставить процессор работать на максимальной скорости, обойдя масштабирование процессора?

Как заставить процессор работать на максимальной скорости, обойдя масштабирование процессора?

Я использую CentOS 7 (7.9.2009) (ядро 3.10.0-1160.49.1.el7.x86_64) на довольно старом ноутбуке (Lenove T61) с двухъядерным процессором (Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz). Драйвер для масштабирования процессора - acpi-cpufreq, и когда напроизводительностьGovernor, я могу заставить процессор работать на максимальной скорости, как указано в /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq, и наблюдать за этим, выполнив:

$ grep -i mhz /proc/cpuinfo 
cpu MHz     : 2001.000
cpu MHz     : 2001.000

и он устойчив как скала на этой скорости. Я могу это проверить, выполнив:

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
2001000
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 
2001000

Я пытаюсь запустить на постоянной частоте программу реального времени, которая считает циклы тактовой частоты ЦП для синхронизации. Я скомпилировал пользовательское ядро ​​(5.10.83-rt58) для поддержки части оборудования, которая не поддерживается в ядре CentOS по умолчанию (3.10.0). Масштабирование ЦП обычно приводит к скачкам тактовой частоты, но я обнаружил, что могу получить постоянную частоту, установив все значения в /sys/devices/system/cpu/cpu*/cpuidle/state*/disable. 1Когда я проверяю частоту:

$ grep -i mhz /proc/cpuinfo 
cpu MHz     : 1995.106
cpu MHz     : 1995.106

это не совсем 2001 МГц, как видно с ядром 3.10.0. Следующая команда проверяет это:

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
1995106

Но вывод:

$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
2001000

отличается. Мой вопрос: кто-нибудь знает, почему мой процессор работает не на максимальной частоте (2001 МГц), а на ~6 МГц меньше? Что-то кардинально изменилось в масштабировании процессора между ядром 3.10 и 5.10?

решение1

Я обнаружил, что добавление параметров ядра nohz_full=1 rcu_nocbs=1 mitigations=offпозволило одному из моих ядер работать на частоте 2001 МГц на ядре 5.10.83-rt58. Имейте в виду, что добавление mitigations=offотключит смягчение уязвимостей ЦП. Я не уверен, были ли эти параметры доступны в ядре 3.10.0-1160.49.1.el7.x86_64, но полный список параметров ядраздесь.

Связанный контент