Как установить регуляторы для Intel для работы старым хорошим ondemand?

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

  • низкие аппаратные температуры
  • тихий вентилятор
  • высокая производительность при необходимости

Теперь я обновил оба своих ноутбука (до Lenovo B5400, Intel Pentium 3550M) и система (Ubuntu 14.10), и я нашел что:

  • только performance и powersave регуляторы доступны; ondemand больше не доступно и поддерживается
  • что-то было изменено в установке файлов, потому что регулятор тока и минута/максимальные скорости восстанавливается значениям по умолчанию каждый раз, когда я загружаюсь

В последствии моя система:

  • все еще возвращает регулятор к performance, который является неправильным, я верю
  • независимо от того, что регулятор, cpufreq-информация говорит мне, что "частота должна быть в 2,30 МГц и 2,30 ГГц", хотя доступные частоты начинают с 800 МГц

Я попытался отредактировать /etc/init.d/cpufrequtils определение следующей установки:

ВКЛЮЧИТЕ = "верный"

РЕГУЛЯТОР = "powersave"

MAX_SPEED = "2300000"

MIN_SPEED = "800000"

Я также попытался отредактировать scaling_min_freq файл в /sys/devices/system/cpu/cpu0/cpufreq и набор это к 800 000.

И, угадайте то, в чем, после перезапуска системы я нахожусь снова performance режим с частотой, "масштабируемой между" 2.30 ГГц и 2.30 ГГц.


Могли Вы, объясняете меня:

a) где точно в Ubuntu 14.10 основные настройки минуты частоты ЦП / макс. частоты ЦП?

b) как определить частоты и регуляторы для достижения того же результата как старая польза ondemand? (Я хотел бы работать над самой низкой возможной частотой и повыситься только на большой нагрузке),

c) и как постараться не сбрасывать то, что я определил, конечно.

Я был бы благодарен за объяснения.

5
задан 25 October 2014 в 23:54

2 ответа

Для совместимых процессоров, Ubuntu по умолчанию теперь использует intel_pstate регулятор частоты ЦП, тогда как это раньше использовало acpi_cpufreq ЦП frequncy регулятор.

диск intel_pstate не имеет ondemand режим, но powersave, режим должен быть эквивалентом режима acpi_cpufreq ondemand. Ваша система должна принять значение по умолчанию к powersave режим спустя приблизительно 1 минуту после начальной загрузки, и через /etc/init.d/ondemand сценарий. В недалеком прошлом тот сценарий правильно не имел дело с intel_pstate случаем, но это должно было быть зафиксировано для всех вариантов использования к настоящему времени. Ссылка .

Для ответа на фактические вопросы:

А.) Основная минута и макс. частоты хранятся как числа процента.
cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
интерпретация тех чисел является функцией турбо, включил или отключил флаг, и по-моему существует несоответствие в определениях.
cat /sys/devices/system/cpu/intel_pstate/no_turbo

Пример от моего i7-2600K: минимальная частота 1.6 ГГц; макс. нетурбо 3.4 ГГц; макс. турбо 3.8 ГГц.
Поэтому как проценты:
Турбо прочь: макс. = 100%, минута = 47,1%
Турбо на: макс. = 100%, минута = 42,1%

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
42
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100

и

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
1
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
42


B.) Режим intel-pstate powersave должен быть эквивалентом режима acpi-cpufreq ondemand.

C.) Существует что-то не так, приводя к Вашему горю. Были другие отчеты, подобные Вашему. Самостоятельно, я не знаю основную проблему, но также были сообщения о несовместимостях с cpufrequtils. Я не знаю, верны ли они или нет, поскольку я не использую никакие подобные вещи. Я только использую самый примитивный уровень средств управления с драйвером intel-pstate.

3
ответ дан 17 November 2019 в 11:44

Я установил его в .bashrc как псевдоним (и как root), потому что я испытал подобные проблемы.
псевдонимы похожи на это:

alias performance="echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"  
alias powersave="echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"  
alias ondemand="echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

можно тогда записать powersave для включения энергосберегающей опции на BASH консоль. Когда я хочу использовать определенный регулятор масштабирования, я поместил его в /etc/rc.local:

#!/bin/sh -e  
# rc.local  
# This script is executed at the end of each multiuser runlevel.  
# Make sure that the script will "exit 0" on success or any other   
# value on error.  
# In order to enable or disable this script just change the execution  
# bits.  
#  
# By default this script does nothing.  
for i in `ls -d /sys/devices/system/cpu/cpu*|grep -v cpufreq|grep -v cpuidle`; do echo ondemand > $i/cpufreq/scaling_governor; done
exit 0

у Вас, вероятно, есть больше чем один процессор, так отредактируйте его соответственно. Я слишком ленив для записи короткого сценария, но я сделаю это, если Вы попросите, чтобы я сделал так:)

РЕДАКТИРОВАНИЕ: Я добавил сценарий к /etc/rc.local

1
ответ дан 17 November 2019 в 11:44

Другие вопросы по тегам:

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