CPUFreq: только регуляторы ondemand и powersave работают, когда ноутбук работает от батареи

Так что я хотел бы иметь возможность использовать свой ноутбук, как я хочу, пока он разряжается. Проблема в том, что у моего Acer Aspire 5 есть два графических процессора AMD: AMD R7 M440, который является моим интегрированным графическим процессором, и RX540, выделенный графический процессор. Когда мой ноутбук подключен, частота процессора достигает 2,7 ГГц, и я могу играть в свои игры в Steam, нет проблем. Но если он не подключен, частота процессора не превысит 1,8 ГГц (по требованию) и 1,4 ГГц (для энергосбережения); производительность не работает, когда ноутбук работает от батареи, что странно, потому что мой процессор - AMD A12 APU. Я знаю, что это может быть признаком Pstate от Intel, но я не знаю, есть ли у AMD аналог этого. Пожалуйста, дайте мне знать, если это так, чтобы я мог отключить его. Я хотел бы, чтобы мой ноутбук имел такую ​​же производительность при разряде, как и при подключении к розетке. Что я могу сказать, либо что-то мешает регуляторам ACPI изменять частоту процессора, либо это может быть новая функция ядра, о которой я не знаю. И если вам интересно, каковы мои настройки UEFI/BIOS, они даже не существуют на этом ноутбуке. Вот что выводит CPUFreq-info: https://pastebin.com/FeApPeDC CPU Частотный выход мощности: https://pastebin.com/Wuy7fnwa CPUFreq драйверы: https://pastebin.com/FSAGjg4t

Вопросы: A) Как я могу редактировать минимальную и максимальную частоту губернатора? Я попытался nano /sys/devices/system/cpu/cpu0/cpufreq/"scaling_min_frequency", но он не позволяет мне редактировать как root.

Б) Что на самом деле мешает частоте моего процессора увеличиваться до 2,7 ГГц, даже если мой ноутбук работает от батареи для процессора AMD?

C) Могу ли я установить аргументы регулятора в качестве параметра для модуля запуска? Идея заключается в том, что всякий раз, когда игра запускается, приложение устанавливает самого регулятора, поэтому я мог бы указать это в качестве параметра запуска игры Steam:

DRI_PRIME = 1% команда% cpupower Frequency-set -f 2700000 (это было бы эквивалентно щелчку правой кнопкой мыши по значку игры и выбору его запуска с dGPU и максимальными настройками всех параметров)

Пожалуйста, дайте мне знать, если вам нужен вывод команды, я буду рад предоставить его. Благодарю.

2 ответа

Вопрос А:

Один из способов установить /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_frequency, который сейчас на самом деле /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq это посмотреть на доступные частоты, и выбрать одну. Пример:

doug@s17:~$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
800000
doug@s17:~$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies
2400000 2133000 1867000 1600000 800000
doug@s17:~$ echo 1867000 | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
1867000
doug@s17:~$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
1867000
doug@s17:~$

Однако вам действительно нужно сделать это для всех процессоров, и вам нужно использовать доступную частоту для вашей системы, как в примере с моим.
Обратите внимание, что вы, кажется, используете userspace губернатор. Выше было для ondemand губернатор.

Теперь, если по какой-либо причине максимальная частота процессора уже была ограничена значениями ниже того, что вы пытаетесь установить, то вышеприведенное произойдет с Invalid argument сообщение. В этом случае вам необходимо сначала восстановить максимальную частоту. Пример:

doug@s17:~$ echo 1600000 | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
1600000
doug@s17:~$ echo 1867000 | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
1867000
tee: /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq: Invalid argument
doug@s17:~$ echo 2400000 | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
2400000
doug@s17:~$ echo 1867000 | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
1867000

В качестве примечания: Самый простой способ достижения вашей цели - просто переключиться на регулятор производительности. Например, запустите следующее как sudo:

doug@s15:~/temp$ cat set_cpu_performance
#! /bin/bash
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "performance" > $file; done

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Аналогично для ondemand:

doug@s15:~/temp$ cat set_cpu_ondemand
#! /bin/bash
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "ondemand" > $file; done

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Вопрос Б:

Я не уверен. У тебя работает tlp? Может быть, это делает это. Это также может быть ваш BIOS. Это не обычный регулятор в драйвере масштабирования частоты процессора acpi-cpufreq. Тем не менее, вам нужно изучить регулятор пользовательского пространства, который вы, похоже, используете, поскольку это может ограничивать вещи.

Вопрос С:

Я не знаю.

Другие заметки:

Я знаю, что это может быть симптомом Pstate от Intel

Это не.

Я не знаю, есть ли у AMD аналог этого [драйвера intel_pstate]. Пожалуйста, дайте мне знать, если это так

Из ваших сообщений вы используете универсальный драйвер acpi-cpufreq.

Прежде чем перейти к чтению, помните, что все, что я хотел сделать, - это просто заставить мой ноутбук работать на 100% для игр (это относится ко всей системе), и для этого я хотел использовать "производительность". губернатор.

Таким образом, после неудачных попыток я наконец пришел к выводу, что никуда не пойду, если буду продолжать использовать очень старые советы и подсказки. Я попросил помощи в группах, командах (из googlemail, которые отказались от всех моих электронных писем, утверждая, что я отправлял им вирус) и Hexchat (на самом деле, я знаю, что сообщество из #linuxmint хочет помочь, но у них нет НИКАКОГО КЛЮЧЕВОГО, что они говоря о). Таким образом, я провел дальнейшие исследования самостоятельно и, после бесчисленных часов, нескольких документов и большого разочарования, я подключил несколько точек, и это мое решение: ядро ​​linux делает ужасную работу по увеличению частоты процессора, когда мой ноутбук работает от батареи, Он не будет делать то, что должен. Позволь мне показать тебе:

Используемые инструменты: Монитор масштабирования частоты процессора [апплет панели Mate] CPUFrequtils, libcpufreq0 Помните, что это шаги частоты AMD A12: 1,4 ГГц, 1,8 ГГц, 2,3 ГГц и 2,7 ГГц

Мы уже знаем ondemand и энергосберегающий процессор. Но если я хочу, чтобы игра на Linux и ноутбуке разряжалась, "производительность" должна максимально использовать все возможности для запуска тяжелых приложений или игр. В противном случае, нет никаких причин для его существования. Но все, что он делает, это сидит на 1,8 ГГц, не более или менее. Жалкий. В этот момент я был уверен, что инструменты, которые я использовал, не будут работать по-другому, поэтому я сосредоточился на ограничениях BIOS. Это может быть так. Это то, что я придумал в качестве обходного пути:

sudo nano /sys/module/processor/parameters/ignore_ppc

Это в основном игнорирует ограничения BIOS и позволяет ядру масштабировать частоту процессора выше, чем 1,8 ГГц. Я изменил его с 0 (по умолчанию) на 1. После выбора "производительности" в апплете панели "Частота процессора" он появился. Но я не был убежден. Так я и сделал

xrandr --setprovideroffloadsink 0x44 0x79

Для того, чтобы Xrandr перенес графическое задание в мой dGPU. А потом:

DRI_PRIME=1 glmark2

Проверь это:

// протестировано с регулятором производительности, работающим от батареи, после установки ignore_ppc в 1 rodolfo@rodolfo-Aspire-A515-41G:~$ DRI_PRIME=1 glmark2 ============================================================== glmark2 2014.03+git20150611.fa71af2d ======================================================= Информация OpenGL GL_VENDOR: X.Org GL_RENDERER: Radeon 500 Series (POLARIS12 / DRM 3.23.0 / 4.15.0-38-generic, LLVM 6.0.0) GL_VERSION: 3.0 Mesa 18.0.5 ============================================================= [build] use-vbo=false: FPS: 447 FrameTime: 2,237 мс [build] use-vbo=true: FPS: 504 FrameTime: 1,984 мс [texture] текстура-фильтр = ближайший: FPS: 477 FrameTime: 2,096 мс [texture] texture-filter= линейный: FPS: 480 FrameTime: 2,083 мс [текстура] текстура-фильтр =mipmap: FPS: 487 FrameTime: 2,053 мс [затенение] shading=gouraud: FPS: 498 FrameTime: 2,008 мс [shading] shading=blinn-phong-inf: FPS: 495 фреймов: 2,020 мс [затенение] затенение = фонг: FPS: 493 фреймов: 2,028 мс [затенение] затенение = чел: FPS: 485 фреймов eTime: 2,062 мс [bump] bump-render=high-poly: FPS: 465 FrameTime: 2,151 мс [bump] bump-render=normals: FPS: 502 FrameTime: 1,992 мс [bump] bump-render = высота: FPS: 501 FrameTime: 1,996 мс [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 464 FrameTime: 2,155 мс [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 354 FrameTime: 2,825 мс [пульсар] light=false:quads=5: текстура =false: FPS: 491 FrameTime: 2.037 мс [рабочий стол] blur-radius=5: эффект = размытие: пасы = 1: разделяемый = истина:windows=4: FPS: 346 FrameTime: 2,890 мс [desktop] эффект = тень: windows=4: FPS: 453 FrameTime: 2,20 мс [буфер] столбцы =200:interleave=false: обновление-дисперсия = 0,9: обновление-фракция = 0,5: метод обновления = карта: FPS: 224 FrameTime: 4,464 мс [буфер] столбцы =200:interleave=false: обновление- дисперсия = 0,9: фракция обновления = 0,5: метод обновления = субданные: FPS: 251 время кадра: 3,984 мс [буфер] столбцы =200:interleave=true: дисперсия обновления = 0,9: фракция обновления = 0,5: метод обновления = карта: FPS: 301 FrameTime: 3.322 мс [идеи] скорость = продолжительность: FPS: 484 FrameTime: 2,066 мс [медуза]: FPS: 449 фреймов: 2,227 мс [ландшафт]: FPS: 120 фреймов: 8,333 мс [тень]: FPS: 472 фреймов: 2,119 мс [преломлять]: FPS: 247 фреймов: 4,049 мс [условные ] фрагментов-шагов = 0: вершин-шагов =0: FPS: 491 FrameTime: 2,037 мс [условные условия] фрагмента-шаги = 5: вершины-шаги =0: FPS: 482 FrameTime: 2,075 мс [условные] фрагмент-шаги =0:vertex-steps=5: FPS: 475 FrameTime: 2,105 мс [функция] сложность фрагмента = низкая: фрагмент-шаги =5: FPS: 473 FrameTime: 2,114 мс [функция] фрагмент-сложность = средняя: фрагмент-шаги =5: FPS: 480 FrameTime: 2,083 мс [loop] фрагмент-петля = ложь: фрагменты-шаги = 5: шаги вершины =5: FPS: 482 FrameTime: 2,075 мс [петля] фрагмент-шаги = 5: фрагмент-униформа = ложь:vertex-steps=5: FPS: 479 FrameTime: 2,088 мс [loop] фрагмент-шаги = 5: фрагмент-равномерный =true:vertex-steps=5: FPS: 483 FrameTime: 2,070 мс ======== ====================================================== glmark2 Оценка: 434

Теперь давайте сравним это со следующим результатом:

// протестировано с регулятором производительности, работающим от батареи, без изменений ignore_ppc rodolfo@rodolfo-Aspire-A515-41G:~$ DRI_PRIME=1 glmark2 ============================================================== glmark2 2014.03 + git20150611.fa71af2d ====== ======================================================= OpenGL Информация GL_VENDOR: X.Org GL_RENDERER: Radeon 500 Series (универсальный POLARIS12 / DRM 3.23.0 / 4.15.0-38, LLVM 6.0.0) GL_VERSION: 3.0 Mesa 18.0.5 =========== ================================================== [build] use-vbo=false: FPS: 443 FrameTime: 2,257 мс [build] use-vbo=true: FPS: 492 FrameTime: 2,033 мс [текстура] текстура-фильтр = ближайший: FPS: 482 FrameTime: 2,075 мс [текстура] текстура-фильтр = линейный: FPS: 484 FrameTime: 2,066 мс [текстура] texture-filter=mipmap: FPS: 482 FrameTime: 2,075 мс [shading] shading=gouraud: FPS: 487 FrameTime: 2.053 мс [shading] shading=blinn-phong-inf: FPS: 489 FrameTime: 2,045 мс [затенение] затенение = фонг: FPS: 482 FrameTime: 2,075 мс [затенение] затенение = чел: FPS: 483 FrameTime: 2,070 мс [bump] bump-render=high-poly: FPS: 455 FrameTime: 2,198 мс [bump] bump-render=normals: FPS: 495 FrameTime: 2,020 мс [bump] bump-render = высота: FPS: 494 FrameTime: 2,024 мс [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 460 FrameTime: 2,174 мс [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 354 FrameTime: 2,825 мсек [pulsar] light=false:quads=5:texture=false: FPS: 485 FrameTime: 2.062 мс [рабочий стол] blur-radius=5: эффект = размытие: пасы = 1: разделяемый = истина:windows=4: FPS: 346 FrameTime: 2,890 мс [desktop] эффект = тень: windows=4: FPS: 455 FrameTime: 2,198 мс [буфер] столбцы =200:interleave=false: обновление-дисперсия = 0,9: обновление-фракция = 0,5: обновление-метод = карта: FPS: 212 FrameTime: 4,717 мс [буфер] столбцы =200:interleave=false: обновление-дисперсия = 0,9: фракция обновления = 0,5: метод обновления = субданные: FPS: 247 Время кадра: 4,049 мс [буфер] столбцы = 200: перемежение = true: дисперсия обновления = 0,9: фракция обновления = 0,5: метод обновления = карта: FPS: 298 FrameTime: 3,356 мс [идеи] скорость = длительность: FPS: 485 FrameTime: 2. 062 мс [медуза]: FPS: 447 мс: 2,237 мс [ландшафт]: FPS: 119 фрейм: 8,403 мс [тень]: FPS: 474 фрейм: 2,110 мс [преломить]: FPS: 247 фрейм: 4,049 мс [условные условия] фрагмент -steps=0:vertex-steps=0: FPS: 489 FrameTime: 2,045 мс [условные значения] фрагмент-шаги =5:vertex-steps=0: FPS: 480 FrameTime: 2,083 мс [условные] фрагмент-шаги = 0: вершина -steps=5: FPS: 487 FrameTime: 2,053 мс [функция] сложность фрагмента = низкая: фрагмент-шаги =5: FPS: 482 FrameTime: 2,075 мс [функция] сложность фрагмента = средняя: фрагмент-шаги =5: FPS: 366 FrameTime: 2,732 мс [loop] фрагмент-петля = false: фрагменты-шаги = 5: шаги вершины =5: FPS: 477 FrameTime: 2,096 мс [петля] фрагмента-шаги = 5: фрагмент-униформа = ложь: вершина -steps=5: FPS: 478 FrameTime: 2,092 мс [loop] фрагмент-шаги = 5: фрагмент-равномерное = true: шаги вершины =5: FPS: 482 FrameTime: 2,075 мс ========== =================================================== glmark2 Оценка: 428

Короче говоря, вся эта дополнительная головная боль - разница в производительности всего на 6 баллов. Даже если это того стоило, по меньшей мере смешно, как много в этом кошмарном Linux Mint 19 заставляет вас переживать только потому, что вы хотите, чтобы ваш ноутбук работал так, как должен, когда он разряжается. Как вы думаете, ваш дистрибутив отличается? Бьюсь об заклад, это не так. Теперь очень легко выйти и сказать своим друзьям и интернету "О, Linux лучше, чем Windows", но на самом деле это не так. Этот выпуск с ноутбуками был там в течение многих лет! Я видел это сам: темы с 2013, 2012, 2010, вплоть до 2007 года! Многие дистрибутивы приходили и уходили, и они не касаются этого, потому что они просто не хотят это исправлять. И ДАЖЕ, ЕСЛИ ОНИ СДЕЛАЛИ, это абсурдно: почему они хотят, чтобы больше людей использовали дистрибутивы Linux, если нет графического интерфейса для работы с системными файлами и атрибутами? Вы знаете, что дистрибутивам Linux предстоит пройти долгий путь, если сравнивать их с мобильным телефоном: вы можете играть на своем мобильном телефоне, пока батарея не разрядится. Это не заставит вас иметь дело с cpupower, cpufrequency, cpufreq, с чем угодно. Также не будет Windows, поэтому мне все равно придется загружаться на этой машине, если я хочу играть. В Windows вы всего в нескольких кликах. "Там я хочу MAX Performance, когда он на батарее". Готово. Это делает работу.

"О, но почему вы жалуетесь на Linux, разве вы не получили то, что ожидали?" Нет! Мой ноутбук ломает эти результаты, когда он заряжается! Другими словами, после всего этого времени все, что я получил, было ложным решением. Это просто говорит о том, что вы увеличили частоту процессора, а не общую производительность системы. Вот о чем я говорю:

// Ноутбук заряжается, регулятор производительности, никаких изменений в ignore_ppc rodolfo @ rodolfo-Aspire-A515-41G: ~ $ DRI_PRIME = 1 glmark2 =================== =========================================== glmark2 2014.03 + git20150611.fa71af2d ======== ===================================================== Информация OpenGL GL_VENDOR: X.Org GL_RENDERER: серия Radeon 500 (универсальный POLARIS12 / DRM 3.23.0 / 4.15.0-38, LLVM 6.0.0) GL_VERSION: 3.0 Mesa 18.0.5 ============= ================================================ [build] use-vbo=false: FPS: 595 FrameTime: 1.681 мс [build] use-vbo=true: FPS: 668 FrameTime: 1.497 мс [texture] текстура-фильтр = ближайший: FPS: 649 FrameTime: 1.541 мс [texture] texture-filter=linear: FPS: 651 FrameTime: 1.536 мс [текстура] texture-filter=mipmap: FPS: 649 FrameTime: 1.541 мс [shading] shading=gouraud: FPS: 665 FrameTime: 1.504 мс [shading] shading=blinn-phong-inf: FPS: 665 FrameTime: 1,504 мс [затенение] затенение = фонг: FPS: 666 FrameTime: 1,502 мс [затенение] затенение = чел: FPS: 666 FrameTime: 1,502 мс [bump] bump-render=high-poly: FPS: 672 FrameTime: 1,488 мс [bump] bump-render=normals: FPS: 672 FrameTime: 1,488 мс [bump] bump-render = высота: FPS: 666 FrameTime: 1,502 мс [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 661 FrameTime: 1,513 мс [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 651 FrameTime: 1,536 мс [пульсар] light=false:quads=5: текстура =false: FPS: 637 FrameTime: 1,570 мс [рабочий стол] blur-radius=5: эффект = размытие: проходы = 1: разделимый = истина:windows=4: FPS: 617 FrameTime: 1,621 мс [рабочий стол] эффект = тень:windows=4: FPS: 634 FrameTime: 1,577 мс [буфер] столбцы =200:interleave=false: обновление-дисперсия = 0,9: обновление-фракция = 0,5: обновление-метод = карта: FPS: 239 FrameTime: 4,184 мс [буфер] столбцы =200:interleave=false: обновление-дисперсия = 0,9: фракция обновления = 0,5: метод обновления = субданные: FPS: 265 Время кадра: 3,774 мс [буфер] столбцы =200:interleave=true: дисперсия обновления = 0,9: фракция обновления = 0,5: метод обновления = карта: FPS: 294 FrameTime: 3.401 мс [идеи] скорость = продолжительность: FPS: 587 FrameTime: 1.704 мс [jellyfish]: FPS: 613 FrameTime: 1,631 мс [местность]: FPS: 411 FrameTime: 2,433 мс [тень]: FPS: 661 FrameTime: 1,513 мс [refract]: FPS: 552 FrameTime: 1,812 мс [условные условия] фрагмент-шаги =0:vertex-steps=0: FPS: 646 FrameTime: 1,548 мс [условные условия] фрагмент-шагов =5:vertex-steps=0: FPS: 633 FrameTime: 1,580 мс [условные] фрагмент-шагов =0:vertex-steps=5: FPS: 644 FrameTime: 1,563 мс [функция] сложность фрагмента = низкая: фрагменты шагов =5: FPS: 627 фрейм: 1,595 мс [функция] сложность фрагмента = среда: фрагменты шагов =5: FPS: 629 FrameTime: 1,590 мс [петля] фрагмент-петля = ложь: фрагмент-шаги = 5: шаги вершины = 5: FPS: 635 FrameTime: 1,575 мс [петля] фрагмент-шаги = 5: фрагмент-равномерное = ложь: вершина-шаги =5: FPS: 629 FrameTime: 1,590 мс [loop] фрагмент-шаги = 5: фрагмент-равномерное = true: вершинные шаги =5: FPS: 627 FrameTime: 1,595 мс ============= ================================================= glmark2 Оценка: 599

В заключение, я НЕ рекомендую использовать Linux на вашем ноутбуке, если вы хотите играть на нем. Это гарантированный фрустрацией опыт. И это не я говорю из моего разочарования, это правда. Возможно, вернитесь в 2037 году и посмотрите, разработают ли они графический интерфейс для работы с cpupower, cpufreq, общей производительностью системы и т. Д. Но я в этом очень сомневаюсь.

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