Получить все доступные шаги частоты

Ответы на этот вопрос на Server Fault предполагают, что единственный способ сделать это - запустить два отдельных экземпляра vsftpd, каждый с одной из нужных вам конфигураций.

1
15.05.2018, 09:07
2 ответа

Я поискал, и, как говорится в комментариях, больше не существует таблицы частот.

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

Для облегчения набора текста создайте этот псевдоним:

alias cpuinfo="paste <(ls *) <(cat *) | column -s $'\t' -t"

Сначала узнайте количество шагов частоты

$ cd /sys/devices/system/cpu/intel_pstate
$ cpuinfo
max_perf_pct  100
min_perf_pct  22
no_turbo      0
num_pstates   28
status        active
turbo_pct     33

У нас есть 28 частотных шагов, определяемых num_pstates.

Теперь посмотрите на минимальную и максимальную частоту МГц, которые могут меняться в зависимости от включенного/отключенного состояния Turbo Boost:

cd /sys/devices/system/cpu/cpu0/cpufreq
$ cpuinfo
affected_cpus                             0
cpuinfo_max_freq                          3500000
cpuinfo_min_freq                          800000
cpuinfo_transition_latency                4294967295
energy_performance_available_preferences  default performance balance_performance balance_power power 
energy_performance_preference             balance_performance
related_cpus                              0
scaling_available_governors               performance powersave
scaling_cur_freq                          837225
scaling_driver                            intel_pstate
scaling_governor                          powersave
scaling_max_freq                          3500000
scaling_min_freq                          800000
scaling_setspeed                          <unsupported>

Позже я могу написать скрипт для автоматического отображения частот, но делать это вручную таким образом:

  • Скорость шага =(max-min)/ steps. например (3500 -800 )/28=96,428
  • Повторить 28 раз. :Скорость=Последняя скорость+Шаговая скорость. например 800.00, 896.42, 992.856, 1089.284, 1185.712, 1282.14...

Скрипт для отображения частот

Вы можете скопировать и вставить эту функцию в свой терминал:

ApproximateFrequencies () {
    NumSteps=$(cat /sys/devices/system/cpu/intel_pstate/num_pstates)
    MinFreq=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq)
    MaxFreq=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq)
    LastFreq=$MinFreq
    StepRate=$((( $MaxFreq - $MinFreq ) / $NumSteps))
    for ((n=0;n<=$NumSteps;n++)); do
        echo $LastFreq
        LastFreq=$(( $LastFreq + $StepRate))
    done
}

Затем запустите функцию, используяApproximateFrequencies:

800000
896428
992856
...
3403556
3499984

Лучше использовать команду column, если она у вас установлена ​​:

$ ApproximateFrequencies | column
800000  1089284 1378568 1667852 1957136 2246420 2535704 2824988 3114272 3403556
896428  1185712 1474996 1764280 2053564 2342848 2632132 2921416 3210700 3499984
992856  1282140 1571424 1860708 2149992 2439276 2728560 3017844 3307128
2
27.01.2020, 23:43

Я могу проверить /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequenciesс помощью

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

Это относится не только к Intel. Я не знаю, округлены они или нет.

Версия ядра :5.4.0 -74

Соответствующие документыhttps://www.kernel.org/doc/Documentation/cpu-freq/user-guide.txt

0
17.06.2021, 08:24

Теги

Похожие вопросы