
Я использую 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, но полный список параметров ядраздесь.