Настройка частоты процессора в ядре (default CPUFreq governor, cpufreq-info, acpitool)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
nockdown
Сообщения: 59
ОС: debian

Настройка частоты процессора в ядре

Сообщение nockdown »

Вопрос возник во время:
1. поиска аналога cpu-z для linux
2. изучения опций ядра для сборки собственного.

Так например, утилита cpufreq-info сообщила, что:
hardware limits: 2.00 GHz - 2.66 GHz
available frequency steps: 2.66 GHz, 2.00 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 2.00 GHz and 2.66 GHz. The governor "ondemand" may decide which speed to use within this range.
current CPU frequency is 2.00 GHz.

а acpitool --cpu подтверждает:
Min/Max frequency : 1998/2664 MHz
Current frequency : 1998 MHz
Frequency governor : ondemand

Но вот текущий конфиг ядра, взятый:

Код: Выделить всё

cat /boot/config-`uname -r` | grep CONFIG_CPU_FREQ_DEFAULT_GOV

показывает:
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set


Как же так? В ядре performance, а по факту ondemand ??? :unsure:

PS ядро дефолтное, никаких изменений в него не вносилось.
PPS система - kubuntu 11.10
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Настройка частоты процессора в ядре

Сообщение rm_ »

Я чуть другую часть вам подчеркну, чтобы намекнуть:
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y


Помимо этого см.
cat /etc/init.d/cpufrequtils | grep GOVERNOR=
Спасибо сказали:
Аватара пользователя
nockdown
Сообщения: 59
ОС: debian

Re: Настройка частоты процессора в ядре

Сообщение nockdown »

rm_, я немного запутался:
1) почему же тогда у меня в данный момент стоит не дефолт (не performance), а ondemand? Хотя я ничего самостоятельно не менял?
2) может какие-то другие опции так изменяют этот дефолт (performance)?
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Настройка частоты процессора в ядре

Сообщение rm_ »

1) почему же тогда у меня в данный момент стоит не дефолт (не performance), а ondemand?

Потому что
cat /etc/init.d/cpufrequtils | grep GOVERNOR=

За вас ondemand там прописали майнтайнеры cpufrequtils.
Можно отредактировать /etc/init.d/cpufrequtils, прописать там GOVERNOR="какойнужен", после чего сделать /etc/init.d/cpufrequtils restart.
Но по опыту, ondemand вполне подходит даже для десктопов и серверов. Без заметного падения производительности снижает нагрев и шум.
Спасибо сказали:
Аватара пользователя
nockdown
Сообщения: 59
ОС: debian

Re: Настройка частоты процессора в ядре

Сообщение nockdown »

rm_ писал(а):
21.01.2012 22:59
Но по опыту, ondemand вполне подходит даже для десктопов и серверов. Без заметного падения производительности снижает нагрев и шум.

Согласен!

Спасибо. Завтра продолжу разбираться дальше.
Спасибо сказали:
Аватара пользователя
nockdown
Сообщения: 59
ОС: debian

Re: Настройка частоты процессора в ядре

Сообщение nockdown »

rm_ писал(а):
21.01.2012 22:59
За вас ondemand там прописали майнтайнеры cpufrequtils.

rm_, видимо, не cpufrequtils изменяет frequency governor на не дефолтный ondemand. Попробовал на чистой системе, cpufrequtils не установлена.

Проверяем наличие cpufreq в системе:
:~$ aptitude search cpufreq
p awn-applet-cpufreq - Monitors and controls the CPU frequency for Awn
p cpufreqd - полностью настраиваемый сервис для динамического изменения частоты и напряжения
p cpufrequtils - утилиты для работы с компонентом ядра cpufreq
p libcpufreq-dev - development files to deal with the cpufreq Linux kernel feature
p libcpufreq0 - разделяемая библиотека для работы со свойством cpufreq ядра Linux
p xfce4-cpufreq-plugin - расширение панели Xfce4 отображающая частоту процессора

cpufrequtils - не установлена.

Узнаём текущий governor:
:~$ acpitool -c
CPU type : Intel® Core™2 Duo CPU E6750 @ 2.66GHz
Min/Max frequency : 1998/2664 MHz
Current frequency : 1998 MHz
Frequency governor : ondemand
Freq. scaling driver : acpi-cpufreq
Cache size : 4096 KB
Bogomips : 6398.85
Bogomips : 6399.93
Function Show_CPU_Info : could not read directory /proc/acpi/processor/
Make sure your kernel has ACPI processor support enabled.


А в конфиге ядра дефолтный governor - performance:
:~$ cat /boot/config-`uname -r` | grep CONFIG_CPU_FREQ_DEFAULT_GOV
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set


Посему, вопросы

1) почему же тогда у меня в данный момент стоит не дефолт (не performance), а ondemand? Хотя я ничего самостоятельно не менял?
2) может какие-то другие опции так изменяют этот дефолт (performance)?


для меня вновь актуальны
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Настройка частоты процессора в ядре

Сообщение KiWi »

nockdown писал(а):
09.02.2012 13:13
Посему, вопросы

1) почему же тогда у меня в данный момент стоит не дефолт (не performance), а ondemand? Хотя я ничего самостоятельно не менял?
2) может какие-то другие опции так изменяют этот дефолт (performance)?


для меня вновь актуальны

/etc/init.d/ondemand
Спасибо сказали:
Аватара пользователя
nockdown
Сообщения: 59
ОС: debian

Re: Настройка частоты процессора в ядре

Сообщение nockdown »

KiWi писал(а):
09.02.2012 20:01
/etc/init.d/ondemand


То есть причина в скрипте /etc/init.d/ondemand , который спустя 60 секунд после загрузки переключает governor в ondemand. Посмотрим содержимое /etc/init.d/ondemand :

Код: Выделить всё

:~$ cat /etc/init.d/ondemand

#! /bin/sh
### BEGIN INIT INFO
# Provides: ondemand
# Required-Start: $remote_fs $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Set the CPU Frequency Scaling governor to "ondemand"
### END INIT INFO


PATH=/sbin:/usr/sbin:/bin:/usr/bin

. /lib/init/vars.sh
. /lib/lsb/init-functions

case "$1" in
start)
start-stop-daemon --start --background --exec /etc/init.d/ondemand -- background
;;
background)
sleep 60 # probably enough time for desktop login

for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
do
[ -f $CPUFREQ ] || continue
echo -n ondemand > $CPUFREQ
done
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac


Выделенный синим ondemand можно заменить к примеру performance. Или запретить скрипту исполнение, или удалить его. Меня же режим ondemand вполне устраивает. Некоторое понимание пришло.
Спасибо сказали:
Аватара пользователя
nockdown
Сообщения: 59
ОС: debian

Re: Настройка частоты процессора в ядре

Сообщение nockdown »

KiWi, большое спасибо!
Спасибо сказали: