Powercap (intel-rapl) - Изменение долгосрочного лимита мощности

Powercap (intel-rapl) - Изменение долгосрочного лимита мощности

Я ищу разъяснения по поводу того, как использовать rapl-set или powercap-set для изменения долгосрочного ограничения мощности на моем ноутбуке Intel N4200 под управлением Ubuntu 20.04.

Во-первых, я знаю, что моя BIOS позволяет изменять долгосрочное ограничение (до предустановленного максимума), поскольку у меня были хорошие результаты с ThrottleStop в Windows.

Мои ограничения по умолчанию:

powercap-info -p intel-rapl         
Zone 0
  name: package-0
  enabled: 0
  max_energy_range_uj: 262143328850
  energy_uj: 1431662228
  Constraint 0
    name: long_term
    power_limit_uw: 3999744
    time_window_us: 27983872
    max_power_uw: 5999616
  Constraint 1
    name: short_term
    power_limit_uw: 5999616
    time_window_us: 976
    max_power_uw: 0
  Zone 0:0
    name: core
    enabled: 0
    max_energy_range_uj: 262143328850
    energy_uj: 975192877
  Zone 0:1
    name: uncore
    enabled: 0
    max_energy_range_uj: 262143328850
    energy_uj: 308897463
  Zone 0:2
    name: dram
    enabled: 0
    max_energy_range_uj: 262143328850
    energy_uj: 410797898
    Constraint 0
      name: long_term
      power_limit_uw: 0
      time_window_us: 976

Итак, я смотрю на Зону 0, Ограничение 0. Вы можете видеть, что она установлена ​​на 4w в долгосрочной перспективе с краткосрочным пределом 6w. Чего я хотел бы добиться, так это сделать долгосрочное ограничение равным краткосрочному ограничению, что повторило бы то, чего я добился с ThrottleStop в Windows.

С этой целью я попробовал следующие способы, которые, по-видимому, дают один и тот же эффект:

cd /sys/class/powercap/intel-rapl/intel-rapl:0 && cat constraint_0_max_power_uw | tee constraint_0_power_limit_uw
rapl-set -p 0 -c 0 -l 5999616 -e 1
powercap-set -p intel-rapl -z 0 -c 0 -l 5999616 -e 1

Любой из этих вариантов, по-видимому, устанавливает требуемое ограничение:

Zone 0
  name: package-0
  enabled: 1
  max_energy_range_uj: 262143328850
  energy_uj: 4600742311
  Constraint 0
    name: long_term
    power_limit_uw: 5999616
    time_window_us: 27983872
    max_power_uw: 5999616

При любом из этих методов ошибок не возникает, и соответствующие файлы успешно обновляются. Однако новый предел мощности не соблюдается. Пожалуйста, посмотрите прикрепленный скриншот s-tui, который иллюстрирует падение часов и предела мощности независимо от настроек.

Регулятор ЦП установлен на «производительность», а отключенный TLP отключен.

Я что-то упускаю? Я предполагаю, что соответствующий драйвер/модуль загружается, поскольку файлы присутствуют и не возникает никаких ошибок, но мне кажется, что я могу упустить что-то подобное.

Любая помощь/предложения будут высоко оценены.Кто-нибудь вообще видел, как это работает на Linux?

скриншот s-tui

решение1

Я не использую rapl-set или powercap-set для ограничения мощности. Что я использую в общем, так это

    echo 5999616 | sudo tee constraint_0_power_limit_uw

У меня это всегда работает.

решение2

Ограничения мощности также контролируются хостбриджем mmio регистром PACKAGE_RAPL_LIMIT_0_0_0_MCHBAR_PCU. Вы можете использоватьsetPL.shскрипт для установки ограничений мощности, который обрабатывает этот регистр mmio.

$ sudo setPL.sh 6 6

Связанный контент