Powercap (intel-rapl) - 更改長期功率限制

Powercap (intel-rapl) - 更改長期功率限制

我正在尋找有關如何使用 rapl-set 或 powercap-set 來更改運行 Ubuntu 20.04 的 Intel N4200 筆記型電腦的長期功率限制的說明。

首先,我知道我的 BIOS 允許修改長期約束(最高可達預設最大值),因為我在 Windows 上使用 ThrottleStop 取得了良好的效果。

我的預設約束:

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。我想要實現的是使長期約束等於短期約束,這將複製我在 Windows 上使用 ThrottleStop 實現的效果。

為此,我嘗試了以下方法,這些方法似乎都做了同樣的事情:

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 螢幕截圖,該螢幕截圖說明了無論設定如何,時鐘和功率限制都會下降。

CPU 調速器設定為“效能”,並已停用禁用的 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

相關內容