intel_pstate vs acpi-cpufreq

Имеется ноут на i3, intel_pstate грузится по дефолту. У intel_pstate governor ondemand отсутствует как данность, cpupower frequency-info выдает что дескать intel_pstate пашет в режиме powersave, но только это какой то странный powersave, ибо частота ВСЕГДА 1.7 ггц (максимум), я наверное 1 раз только видела что было 1.68 ггц, 800 мгц (минимум) не видела отродясь.
Попробовала сделать в строку ядра intel_pstate=disable, стал грузиться acpi-cpufreq, ondemand работает (правда со стойким стремлением чуть что - моментально опрокинуть частоту к минимуму), вроде все нормально, но смущает солидное количество блогов да прочих "мнений гуру", которые прям-таки всячески и наперебой советуют не пользоваться acpi-cpufreq при малейшей возможности, дескать "intel_pstate весь из себя волшебный и крутой, все-все знает о процессоре, да дескать его powersave умней ondemand-а ацпи-шного, да ваще ацпи устарел", бла-бла-бла...
Я б возможно и поверила бы в "умность" powersave от intel_pstate, если бы хоть раз увидела проц на частоте ну хотя бы не 800 мгц, но хотя бы 1ггц или около того, но постоянная работа на максимуме в режиме powersave меня как то смущает.
Кто что может пояснить-посоветовать на эту тему?
[berg@berg-notebook ~]$ cpupower frequency-info
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us
hardware limits: 782 MHz - 1.70 GHz
available frequency steps: 1.70 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz, 782 MHz
available cpufreq governors: ondemand performance
current policy: frequency should be within 800 MHz and 1.70 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 800 MHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
Вот на acpi-cpufreq вроде все как надо
Eva_Berg
постоянная работа на максимуме в режиме powersave меня как то смущает.
Понятное дело, ведь это определенно похоже на performance.

Eva_Berg
ondemand работает (правда со стойким стремлением чуть что - моментально опрокинуть частоту к минимуму)
Это нормальная работа ondemand: минимум-максимум-минимум. Плавную регулировку обеспечивает говернер conservative, но возможность его использования зависит от количества множителей процессора, т.е. если их больше двух. Покажите:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
Теория - INTEL_PSTATE позволяет лучше управлять частотой процессоров на Sandy Bridge (и более новых), чем стандартный планировщик ondemand.
Практика - в большей части признается лучше . …. но не все так однозначно - известны результаты ее применения когда и греется проц и выше частота ….. а потому лучше поэкспериментировать/помонитоить на конкретном железе и выбрать наиболее подходящий вариант в зависимости от назначения/использования железа
У меня Sandy Bridge много тестил и для меня это очень хороший вариант.
Привожу некоторые результаты - от простоя до максимальной нагрузки (частота: min - 800, max - 2100)
1. При простое …... температура 52 град.
$ grep MHz /proc/cpuinfo
cpu MHz		: 799.932
cpu MHz		: 828.515
cpu MHz		: 799.932
cpu MHz		: 799.932
2. При просмотре видео с жесткого диска ….. температура 55 град.
$ grep MHz /proc/cpuinfo
cpu MHz		: 974.633
cpu MHz		: 889.910
cpu MHz		: 960.021
cpu MHz		: 829.925
3. При просмотре видео с yutub ….. температура 60 град.
$ grep MHz /proc/cpuinfo
cpu MHz		: 1452.593
cpu MHz		: 1464.770
cpu MHz		: 1430.548
cpu MHz		: 1586.535
4. 10 секундный stress-test (stress --cpu 4 --timeout 10s) ….. температура 70 град.
grep MHz /proc/cpuinfo
cpu MHz		: 2099.871
cpu MHz		: 2100.000
cpu MHz		: 2099.871
cpu MHz		: 2100.000
Ошибки не исчезают с опытом - они просто умнеют
$lscpu
Архитектура:x86_64
CPU op-mode(s): 32-bit, 64-bit
Порядок байт:Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Ядер на сокет:2
Сокетов: 1
NUMA node(s): 1
ID прроизводителя:GenuineIntel
Семейство ЦПУ:6
Модель: 69
Имя модели: Intel(R) Core(TM) i3-4010U CPU @ 1.70GHz
Степпинг: 1
CPU MHz: 800.000
CPU max MHz: 1701,0000
CPU min MHz: 782,0000
BogoMIPS: 3393.41
Виртуализация:VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3
Флаги: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts

говернора conservative у него нету, есть ток поверсейв и ондеманд для acpi-cpufreq и поверсейв и перфоманс для intel_pstate

то есть если я правильно поняла,
$cpupower frequency-info

показывает реально существующее положение дел и если intel_pstate упорно гоняет процессор на максимуме даже в режиме powersave, а acpi-cpufreq с ondemand таки меняет частоту от минимума до максимума, то рекомендуете поставить acpi-cpufreq и пофиг что разные гуры пишут про "волшебный intel_pstate"?
powersave близок к ondemand — основное существенное отличие в том, что один управляет статически другой динамически.
Powersave - The CPUfreq governor "powersave" sets the CPU statically to the lowest frequency within the borders of scaling_min_freq and scaling_max_freq.
Ondemand - The CPUfreq governor "ondemand" sets the CPU depending on the current usage. To do this the CPU must have the capability to switch the frequency very quickly.
Насчет всяких мнений в интернете — пишут много, но это не значит, что это правильно …. например, наша Wiki пишет, что по умолчанию (в ArchLinux), в зависимости от модуля (на усмотрение юзера это уже от себя), по дефолту будет использоваться или ondemand или powersave
Depending on the scaling driver, one of these governors will be loaded by default:
- ondemand for AMD and older Intel CPU.
- powersave for Intel CPUs using the intel_pstate driver (Sandy Bridge and newer).
А вот выбор, что использовать, это уже каждый выбирает сам, в зависимости от железа и решаемых на нем задач....... Как правило, при решении больших вычислительных задач рекомендуется использовать intel_pstate
UPD …. не понятно, почему у тебя при powersave все время установлена максимальная частота …. возможно слабоват ноутбук, мало памяти и др.....
Ошибки не исчезают с опытом - они просто умнеют
Eva_Berg
то есть если я правильно поняла,
$cpupower frequency-info

показывает реально существующее положение дел
Для pstate не факт.
Попробуйте лучше pstate-frequency (из AUR)

И почитайте описание

https://github.com/pyamsoft/pstate-frequency

Сейчас пишу с такого же CPU
$ lscpu
Архитектура:x86_64
CPU op-mode(s):        32-bit, 64-bit
Порядок байт:Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Ядер на сокет:2
Сокетов:        1
NUMA node(s):          1
ID прроизводителя:GenuineIntel
Семейство ЦПУ:6
Модель:          69
Имя модели:   Intel(R) Core(TM) i3-4010U CPU @ 1.70GHz
Степпинг:      1
В случае pstate powersave (на аккумуляторе) частота всегда 800.

Может у Вас версия BIOS бажная?
Ты не смотри на частоту, ты смотри на то, сколько ноутбук проживет от батареи. По субъективным наблюдениям с pstate ноутбук от батареи работает дольше и шустрее, чем с acpi-cpufreq.
vasek
UPD …. не понятно, почему у тебя при powersave все время установлена максимальная частота …. возможно слабоват ноутбук, мало памяти и др.....
Самой непонятно, а ноут вряд ли можно к "слабоватым" отнести:

http://www.citilink.ru/catalog/mobile/notebooks/944134/

Спс за наводку на pstate-frequency, кажется начинаю понимать в чем дело. С intel_pstate проц пашет нонстоп в режиме Turbo Boost, стоит турбобуст отключить - сразу ну не до 800 конечно, но начинают появляться цифирки, отличные от 1.7ггц. Вот как бы сделать чтоб этот турбобуст включался только по необходимости.
И еще - intel_pstate сам резко швыряет частоту до 800 при питании от батареи, и так же резко поднимает до 1700 при питании от сети. Мб так конечно и "по умному", но мне надо чтоб он это делал в зависимости от нагрузки, а не просто экономя батарею на свое усмотрение от того включен провод или нет. Я от батареи то его почти и не гоняю, но лишний грев мне ни к чему.
Eva_Berg
Вот как бы сделать чтоб этот турбобуст включался только по необходимости.
И еще - intel_pstate сам резко швыряет частоту до 800 при питании от батареи, и так же резко поднимает до 1700 при питании от сети. Мб так конечно и "по умному", но мне надо чтоб он это делал в зависимости от нагрузки,
Все стало понятно ........ совсем вышибло из головы этот турбо ….так как его у меня нет, то и забываю о нем. ….
Предлагаю поиграться со следующими параметрами
1. no_turbo …. =1 - режим turbo отключен, =0 режим turbo включен
PSS ... забыл по необходимости - встречались только срипты, менящие этот параметр в зависимости работы от сети или батареи ...
2. max_perf_pct - максимальная производительность в процентах от максимальной частоты, по дефолту = 100.
Я как то игрался с этим параметром и устанавливал его = 50 , при этом значении у меня частота при проведении stress test (stress --cpu 4 --timeout 10s) не поднималась выше половины максимально частоты …... попробуй найти оптимальные для себя значение

PS ... как всегда, забыл главное ....
# echo 50 > /sys/devices/system/cpu/intel_pstate/max_perf_pct ## 50 , конечно, мало .... может где то 70 -80 ...
# echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.