LINUX.ORG.RU

amd-pstate

 ,


1

1

Привет, ЛОР!
Кто нибудь уже разобрался с новым драйвером управления питанием для AMD под названием amd-pstate?

У меня получилось его загрузить, но я не имею ни малейшего понятия, как им управлять.
Как ограничить частоту или мощность процессора, как выключить амудешный «turbo boost» при работе от батареи, да и вообще как хоть что-то поменять?

Гугл не помогает от слова совсем.

ann@shadowmoon:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 
amd-pstate
ann@shadowmoon:~$ ls /sys/devices/system/cpu/cpu0/cpufreq
affected_cpus            amd_pstate_lowest_nonlinear_freq  cpuinfo_max_freq  cpuinfo_transition_latency  scaling_available_governors  scaling_driver    scaling_max_freq  scaling_setspeed
amd_pstate_highest_perf  amd_pstate_max_freq               cpuinfo_min_freq  related_cpus                scaling_cur_freq             
scaling_governor  scaling_min_freq

ann@shadowmoon:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/amd_pstate_highest_perf 
166
ann@shadowmoon:~$ echo 83 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/amd_pstate_highest_perf
tee: /sys/devices/system/cpu/cpu0/cpufreq/amd_pstate_highest_perf: Permission denied
83

ann@shadowmoon:~$ sudo cpupower frequency-info
analyzing CPU 0:
  driver: amd-pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 131 us
  hardware limits: 400 MHz - 1.90 GHz
  available cpufreq governors: performance schedutil
  current policy: frequency should be within 400 MHz and 400 MHz.
                  The governor "schedutil" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 2.74 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: no
    AMD PSTATE Highest Performance: 166. Maximum Frequency: 4.51 GHz.
    AMD PSTATE Nominal Performance: 70. Nominal Frequency: 1.90 GHz.
    AMD PSTATE Lowest Non-linear Performance: 41. Lowest Non-linear Frequency: 1.11 GHz.
    AMD PSTATE Lowest Performance: 15. Lowest Frequency: 400 MHz.


ann@shadowmoon:~$ sudo cpupower frequency-set -d 1.11GHz -u 1.11GHz
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
Setting cpu: 4
Setting cpu: 5
Setting cpu: 6
Setting cpu: 7
Setting cpu: 8
Setting cpu: 9
Setting cpu: 10
Setting cpu: 11
Setting cpu: 12
Setting cpu: 13
Setting cpu: 14
Setting cpu: 15
ann@shadowmoon:~$ sudo cpupower frequency-info
analyzing CPU 0:
  driver: amd-pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 131 us
  hardware limits: 400 MHz - 1.90 GHz
  available cpufreq governors: performance schedutil
  current policy: frequency should be within 1.11 GHz and 1.11 GHz.
                  The governor "schedutil" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 2.97 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: no
    AMD PSTATE Highest Performance: 166. Maximum Frequency: 4.51 GHz.
    AMD PSTATE Nominal Performance: 70. Nominal Frequency: 1.90 GHz.
    AMD PSTATE Lowest Non-linear Performance: 41. Lowest Non-linear Frequency: 1.11 GHz.
    AMD PSTATE Lowest Performance: 15. Lowest Frequency: 400 MHz.
ann@shadowmoon:~$ grep MHz /proc/cpuinfo 
cpu MHz		: 400.000
cpu MHz		: 400.000
cpu MHz		: 3544.897
cpu MHz		: 3136.247
cpu MHz		: 3801.438
cpu MHz		: 400.000
cpu MHz		: 4078.575
cpu MHz		: 400.000
cpu MHz		: 4143.479
cpu MHz		: 3781.898
cpu MHz		: 400.000
cpu MHz		: 3346.888
cpu MHz		: 400.000
cpu MHz		: 400.000
cpu MHz		: 400.000
cpu MHz		: 3934.364


ну, то есть, как видим — ему пофигу от слова совсем.
куда копать?

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

★★★★☆

методом научного тыка выяснилось, что если выбрать governor performance, то управление частотой работает.

~ ➤  sudo cpupower frequency-set -g performance -d 400MHz -u 800MHz                                                                                            
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
Setting cpu: 4
Setting cpu: 5
Setting cpu: 6
Setting cpu: 7
Setting cpu: 8
Setting cpu: 9
Setting cpu: 10
Setting cpu: 11
Setting cpu: 12
Setting cpu: 13
Setting cpu: 14
Setting cpu: 15
~ ➤  grep MHz /proc/cpuinfo                                                                                                                                    
cpu MHz		: 771.103
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 770.986
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000


однако, по очевидным причинам, застревает на максимальной частоте (performance же)

если выбрать динамический schedutil, то на лимиты частоты ему становится глубоко насрать:

~ ➤  sudo cpupower frequency-set -g schedutil -d 400MHz -u 800MHz                                                                                              
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
Setting cpu: 4
Setting cpu: 5
Setting cpu: 6
Setting cpu: 7
Setting cpu: 8
Setting cpu: 9
Setting cpu: 10
Setting cpu: 11
Setting cpu: 12
Setting cpu: 13
Setting cpu: 14
Setting cpu: 15
~ ➤  grep MHz /proc/cpuinfo                                                                                                                                    
cpu MHz		: 2595.035
cpu MHz		: 2595.035
cpu MHz		: 2595.021
cpu MHz		: 2595.035
cpu MHz		: 400.000
cpu MHz		: 2595.035
cpu MHz		: 2595.034
cpu MHz		: 2595.035
cpu MHz		: 2595.032
cpu MHz		: 400.000
cpu MHz		: 2595.032
cpu MHz		: 2595.013
cpu MHz		: 2595.034
cpu MHz		: 2595.033
cpu MHz		: 2595.034
cpu MHz		: 2595.034

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от ox55ff

энергопотреблением.
примерно на полватта разница.

annerleen ★★★★☆
() автор топика
Последнее исправление: annerleen (всего исправлений: 1)

кажется, разобрался:

~ ➤  sudo modprobe cpufreq_ondemand                                                                                                                            
~ ➤  sudo cpupower frequency-set -g ondemand -d 400MHz -u 800MHz                                                                                               
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
Setting cpu: 4
Setting cpu: 5
Setting cpu: 6
Setting cpu: 7
Setting cpu: 8
Setting cpu: 9
Setting cpu: 10
Setting cpu: 11
Setting cpu: 12
Setting cpu: 13
Setting cpu: 14
Setting cpu: 15
~ ➤  grep MHz /proc/cpuinfo                                                                                                                                    
cpu MHz		: 441.070
cpu MHz		: 482.140
cpu MHz		: 441.070
cpu MHz		: 400.000
cpu MHz		: 800.000
cpu MHz		: 986.600
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 736.315
cpu MHz		: 800.000
cpu MHz		: 739.589
cpu MHz		: 482.140
cpu MHz		: 800.000
cpu MHz		: 441.070
cpu MHz		: 564.280
cpu MHz		: 441.070

annerleen ★★★★☆
() автор топика
Последнее исправление: annerleen (всего исправлений: 1)

отмечу как решённую, но если кто-то ещё знает что-то полезное про эту новую плюшку (например, ограничение мощности, как в intel_pstate) — пишите, буду рад.

annerleen ★★★★☆
() автор топика

Попробуй задать вот так:

sudo cpupower frequency-set -d 1100000 -u 1100000

Далее запусти нагрузку:

stress --cpu 16 --timeout 100s

И только теперь смотри частоту процессора. У меня не задается частота если указывать «GHz». При этом, на холостом ходе, значение частоты может изменятся в пределах хардваре лимит, а при нагрузке - опускаться до 1,1GHz.

В итоге я забил и отключил pstate в настройках ядра, и все заработало как раньше.

sfedosenko
()
Ответ на: комментарий от sfedosenko

см. мои ответы выше, частота задаётся только с governor ondemand, при этом всё перестаёт работать после саспенда (баг в ядре, уже исправлен)

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от annerleen

Если что, самые свежия ядра для убунты:

https://kernel.ubuntu.com/~kernel-ppa/mainline/ 

sfedosenko
()
19 августа 2022 г.
Ответ на: комментарий от annerleen

А есть ли какие-то «интегральные» профили управления у amd-pstate?

Что-то в стиле режимов производительности: «low-power», «balanced», «performace», — в ядерных модулях для управления ACPI?

Или всё вручную, «по наитию»?

AlexM ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.