tee:constraint_0_power_limit_uw:无可用数据

tee:constraint_0_power_limit_uw:无可用数据

我正在尝试使用以下方法将约束_0_power_limit 文件中的值替换为新值echo "45000000" | sudo tee constraint_0_power_limit_uw

该文件位于/sys/class/powercap/intel-rapl/intel-rapl:0/

当我使用上述命令时,出现tee: constraint_0_power_limit_uw: No data available错误。

我怎样才能修复这个错误?

答案1

在操作系统(Linux)级别调整 TDP(热设计功率)的能力需要:

  • TDP 可配置的处理器(实际上 TDP 是固定的,但最大功率是可调的)
  • 支持这些功能的 BIOS已将其提供给操作系统

通过查看启用标志来进行检查。两个例子:

doug@s15:~$ cat /sys/class/powercap/intel-rapl/intel-rapl:0/enabled
0

doug@s18:~$ cat /sys/class/powercap/intel-rapl/intel-rapl:0/enabled
1

现在,尝试启用已禁用的那个:

doug@s15:~$ echo 1 | sudo tee /sys/class/powercap/intel-rapl/intel-rapl:0/enabled
1
tee: '/sys/class/powercap/intel-rapl/intel-rapl:0/enabled': Function not implemented

这看起来不太好。因此,让我们检查一下这台计算机上的 dmesg:

doug@s15:~$ dmesg | grep locked
[   21.945790] intel_rapl_common: RAPL package-0 domain package locked by BIOS
[ 5315.714761] powercap intel-rapl:0: package locked by BIOS, monitoring only

因此,请注意是 BIOS 不允许它。在这种情况下,BIOS 根本不支持它,它不仅仅是被禁用。读者会想检查他们的 BIOS 是否有某种启用功能,但我在计算机的 BIOS 中找不到这样的开关。

因此,对于我们知道这行不通的计算机来说:

doug@s15:~$  echo "94500000" | sudo tee /sys/class/powercap/intel-rapl/intel-rapl:0/constraint_0_power_limit_uw
94500000
tee: '/sys/class/powercap/intel-rapl/intel-rapl:0/constraint_0_power_limit_uw': No data available

现在,对于启用为 1 的计算机:

doug@s18:~$ cat /sys/class/powercap/intel-rapl/intel-rapl:0/constraint_0_power_limit_uw
93500000
doug@s18:~$ echo "94500000" | sudo tee /sys/class/powercap/intel-rapl/intel-rapl:0/constraint_0_power_limit_uw
94500000
doug@s18:~$ cat /sys/class/powercap/intel-rapl/intel-rapl:0/constraint_0_power_limit_uw
94500000

注意:在研究这个答案时,我确实找到了用户能够将 1 写入enable0 状态的证词。我认为这表明 BIOS 支持这些功能,但默认为禁用。

相关内容