LINUX.ORG.RU
ФорумAdmin

Профиль питания balanced - intel_pstate power-profiles-daemon

 , ,


0

1

Привет.

# uname -a

Linux 6.19.11-zen1-1-zen #1 ZEN SMP PREEMPT_DYNAMIC

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

# powerprofilesctl list

performance:
CpuDriver:  intel_pstate
PlatformDriver:     platform_profile
Degraded:   no

* balanced:
CpuDriver:  intel_pstate
PlatformDriver:     platform_profile

power-saver:
CpuDriver:  intel_pstate
PlatformDriver:     platform_profile


# turbostat --Summary --quiet --show Busy%,Bzy_MHz,PkgWatt,CoreTmp --interval 3

Busy%   Bzy_MHz CoreTmp PkgWatt

99.76   3369    74      53.14
99.76   3368    78      52.39
99.76   3369    78      51.76
99.76   3369    80      51.78

Но если профиль сменить на power-saver или performance, а затем вернуть на balanced, то он как будто остаётся на power-saver. Выдает не более 20 ватт:

99.71   2008    54      18.23
98.34   1982    54      21.26
99.66   2017    54      18.38
99.00   2014    54      17.77
99.76   2018    54      18.08

Хотя всё вроде бы остальное по конфигам возвращается на место.

cat /sys/firmware/acpi/platform_profile_choices
cat /sys/firmware/acpi/platform_profile
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
cat /sys/devices/system/cpu/intel_pstate/status
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

quiet balanced performance
balanced
powersave
intel_pstate
active
5100000
400000
cat /sys/devices/system/cpu/cpu0/power/energy_perf_bias
cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences
cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference
cat /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference

6
default performance balance_performance balance_power power
balance_performance
balance_performance

Пробовал per_cpu_perf_limits, support_acpi_ppc, no_hwp. С последним конечно проблема уходит, но смысла тогда в intel_pstate нет и вовсе -)

Сейчас запощу и попробую hwp_only. Кто знает -)

Ответ на: комментарий от akmulla

Нет, не понимаете. Если вы выставили Powersave как говернор, он будет инструктировать процессор работать на минимальной частоте всегда. И вот за счет HWP у вас процессор сам задирает частоту, по своему разумению, т.е. чихать он хотел на говернор, но интелу никто не выставляет в здравом уме powersave. В данной ситуации у процессора отваливается turbo boost. И дело именно в platform profiles и фирмвари вашего ноутбука.

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

Я конечно не буду с вами спорить, раз вы говорите, что не понимаю. А вы сами точно понимаете, что значит governor и его режимы?

Во первых, powersave стоит изначально и при загрузке с balanced он вполне себе нормально работает.

А во вторых, у него только два режима: powersave и performance. И они вовсе не значат то, о чем вы говорите. В performance режиме процессор работает просто на максимальной частоте, всегда, игнорируя нагрузку. А powersave позволяет процессору сбрасывать частоту при простое, разгоняя её при нагрузке. Это вовсе не означает профиль powersave, это означает не пыжиться тогда, когда для этого нет причин.

В третьих, если было как вы написали, то у меня даже в режиме performance power-profiles-daemon`на частота бы стояла на месте.

Ну и в последних, power-profiles-daemon вообще работает только при режиме гувернёра powersave, для интеловской масти.

После вашего сообщения, я так и подумал, что вы просто не понимаете о чем говорите, указывая на:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor powersave

Но была надежда, что дело в чём-то другом -)

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

Ещё раз. Powersave - выставляет минимальную частоту процессору и успокаивается. Дальше при наличии HWP процессор САМ определяет по своим внутренним метрикам с какой частотой он хочет работать. При performance - та же штука, только оно выставляет прцоессору максимальную частоту, только еще ограничивает C-states снизу. Тут я был не прав, да, почему-то вспомнились времена Intel SpeedStep. А дальше процессор отдыхает когда посчитает нужным.

Собственно, смысл HWP в том, что процессор сам выбирает уровень производительности. А в вашем случае я так понимаю, частота 3.3 - это буст. А родная частота у процессора - 2. Так как вы модель процессора и ноутбука не указали -> я позволил себе это предположить. И… Я сталкивался буквально на днях с такой же проблемой. Просто отваливается Turbo Boost и решается обновлением UEFI/BIOS. Такие вот дела.

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

Ещё раз. Powersave - выставляет минимальную частоту процессору и успокаивается. Дальше при наличии HWP процессор САМ определяет по своим внутренним метрикам с какой частотой он хочет работать

У опа профиль меняется через intel_pstate, а не через ядерный говернор.

Вопрос выглядит вполне легитимным, поведение странное.

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

Ну если вы спорите с документацией https://docs.kernel.org/admin-guide/pm/intel_pstate.html вам то конечно виднее. Погуглите, если не воспринимаете написанное со стороны, можно у ИИ даже спросить о том, что такое режимы гувернёра и как работают.

# cat /sys/devices/system/cpu/intel_pstate/no_turbo
0

Я же объяснил, турбобуст не отваливается. На powersave гувернёра все работает пучком относительно профилей power-profiles-daemon`на performance и power-saver. Powersave гувернёра это нормальный режим. intel_pstate это не acpi-cpufreq, где он выставляет частоту и «успокаивается». Он подхватывает рекомендации: default performance balance_performance balance_power power

Но не на профиле balanced. Даже на power-saver профиле эти рекомендации нормально разгоняют частоту. Но balanced никак не реагирует даже на них. Более того balanced выдает даже меньшую частоту, чем power-saver.

Дело не в гувернёре. Может действительно что то там по фирмваре, может где-то ещё косяк.

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

Второе сообщение было признанием собственной неправоты и ссылка о том, что надо было вылезти из криокамеры раньше, потому что в остальном я расписал верно и документации не противоречу.

А вот то, что > турбобуст не отваливается

Он не отваливается в настрйоках. Он отваливается в MSR. То есть модели ноутбука и процессора не будет, а то, что он у вас перестает просто буститься и начинает работать у вас с частотой базовой, без буста не смотря ни на какие параметры, вас не смущает.

Ну ок, дальше помогать смысла не вижу, вам указано в чем проблема: platform profiles, отвечает за это фирмварь девайса. Можно прописать воркэраунд. Если вы считаете, что буст происходит средствами ОС - вы ошибаетесь, буст выбирает процессор при некоторых условиях и разрешенном бусте в MSR. То, что там где-то что-то в /sys написано это профанация в данном случае. Ну т.е. с момента переключения профилей, потому что фирмварь пишет в MSR в обход ОС. А в зависимости от модели ноутбука вообще может в EC писать и ограничивать TDP. В общем обращайтесь за поддержкой к производителю устройства.

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

Он не отваливается в настрйоках. Он отваливается в MSR.

Да не может от отваливаться только на balanced. Он бы тогда и на power-saver отваливался и на performance. Я же объяснял, если выбрать на power-saver в energy_performance_preference какой-нибудь balance_performance или даже performance, то он разгоняется до предела - даже на power-saver. Но вы же не читаете, только талдычите своё.

Ну ок, дальше помогать смысла не вижу, вам указано в чем проблема:

Да помощи то и не было. Сначала был какой-то надменный тон, типа ты вообще не понимаешь, что делаешь, типа вот же написано scaling_governor в powersave. Когда вас поправили, вы включили другую песню, опять же не вникая в детали. Теперь у вас турбобуст отваливается. Это та же песня про гувернёра, просто на другой лад.

Спасибо конечно, и на том, как говорится. Проблема скорее всего действительно в фирмваре, поскольку balanced реагирует только на EPP 0.

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

Я же объяснял, если выбрать на power-saver в energy_performance_preference какой-нибудь balance_performance или даже performance, то он разгоняется до предела - даже на power-saver. Но вы же не читаете, только талдычите своё. Да млять. Дуракам объяснять - зря время тратить. Открываем сорцы, смотрим код. Понимаем, что это делается в большинстве ноутбуков через WMI. В т.ч. сопровождается записью некоторых байтиков в EC. Т.е. platform profiles при их установке вполне себе могут вызвать запись в MSR процессора фирмварью.

Но у нас настолько секретные данные, что ни процессор ни ноутбук указаны не будут. Ах как странно, что при установке профиля balanced фирмварь считает, что буститься процессору не зачем, а вместо power-save там должен профиль называться, например «eco» или «cool» и поэтому он просто праивльно не выставляется: ядро передает фирмвари левые названия, которые она не понимает.

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

Спасибо, дружище. Но у меня асус:

 OS Garuda Linux x86_64
├ Kernel Linux 6.19.11-zen1-1-zen
├󰏖 Packages 1468 (pacman)[stable]
├ Shell fish 4.6.0
└ Age 166 days

 DE KDE Plasma 6.6.4
├󰧨 Window Manager KWin (Wayland)
├󰧨 Login Manager sddm-autologin 0.21.0 (Wayland)
├󰉼 WM Theme CatppuccinMocha-Classic
├󰉼 Color Themes Mokka (Mokka) [Qt]
├󰀻 System Icons Tela-circle-dracula-dark [Qt]
├ System Fonts Inter (10pt) [Qt]
└ Terminal konsole 25.12.3

󰌢 PC Notebook (1.0)
├󰻠 CPU Intel(R) Core(TM) Ultra 7 255H (16) @ 5.10 GHz
├󰍛 GPU NVIDIA GeForce RTX 5070 Max-Q / Mobile [Discrete]
├󰍛 GPU Intel Arc Pro 130T/140T @ 2.25 GHz [Integrated]
├󰍛 OpenGL 4.6.0 NVIDIA 595.58.03
├󰍛 Vulkan 1.4.335 - Intel open-source Mesa driver [Mesa 26.0.4-ar]
└󰍹 Display(s) 2560x1600 @ 1.25x in 16", 240 Hz [Built-in]

Пришлось изрядно потрудиться в прошлом году, чтобы заработала яркость, а для звука пришлось добавить патч переопределения таблиц ACPI. Да, какие-то моменты ещё бывает лагают, но в целом, я в восторге -) ИИ-модели пользую на ура -)

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

drivers/platform/x86/asus-wmi.c

строки 4103-4128.

Судя по ним у тебя в место power-save профиль должен быть quiet. PPD этого не понимает пытается записать в /sys/firmware/acpi/platform_profile что-то другое. Или наоборот может сказаться так, что у тебя ноутбук не понимается asus-wmi нормально и туда пишется quiet, а должно писаться что-то другое.

Покажи /sys/firmware/acpi/platform_profile_choices

Если там есть не стандартное имя профиля, значит тебе вместо ppd лучше поставить tlp и сконфигурить его. Судя по thermal policy овербуст включается только на performance. Я в коде не разбирался, но там вроде ещё и asus.c надо смотреть и ещё что-то. Может так сказаться, что у твоего ноута оффсеты другие в фирмвари, из-за чего и проблемы.

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

А, перечитал стартовый пост. Ну в общем, скорее всего, у тебя quiet обрабатывается как-то криво. Или PPD пишет вместо него power-save.

anonymous
()
Ответ на: комментарий от anonymous
# cat /sys/firmware/acpi/platform_profile_choices

quiet balanced performance

Да, можно через asusd переключать, quiet с power-saver нормально связаны, а balanced везде один. Я уж пробовал и вообще отключать asusd как и ppd, Вопрос решился выставлением EPP 0 на balamced. Видимо значения 128 и 192, соответствующие balance_performance и balance_power, где-то выпадают.

Недавно биос обновил, может этот косяк и раньше был, а я не замечал -) Но зато с новым биосом звук работает без патча.

akmulla
() автор топика
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария