Linux 如何更改Haswell CPU的RAPL功率限制?

Linux 如何更改Haswell CPU的RAPL功率限制?,linux,x86,hardware,intel,power-management,Linux,X86,Hardware,Intel,Power Management,我正在尝试更改系统RAPL寄存器中定义的功率限制。这是一个Haswell CPU 我尝试了两种方法: 使用MSR注册表项: 我尝试使用rdmsr(作为root)命令读取定义了功率限制的0x610 regsiter的内容。然后我使用wrmsr命令对其进行写入。我尝试将该寄存器的第一位从1更改为0,以解锁功率限制 rdmsr-p0 0x610返回:8042828a001a8208 wrmsr-执行P00x610 0x0042828a001a8208时没有任何错误消息 然后我使用:rdmsr-p00x

我正在尝试更改系统RAPL寄存器中定义的功率限制。这是一个Haswell CPU

我尝试了两种方法:

  • 使用MSR注册表项: 我尝试使用rdmsr(作为root)命令读取定义了功率限制的0x610 regsiter的内容。然后我使用wrmsr命令对其进行写入。我尝试将该寄存器的第一位从1更改为0,以解锁功率限制
  • rdmsr-p0 0x610返回:8042828a001a8208

    wrmsr-执行P00x610 0x0042828a001a8208时没有任何错误消息

    然后我使用:rdmsr-p00x610再次读取寄存器 它打印:8042828a001a8208

    如您所见,我正在尝试将第一个六位从8更改为0。其余的都一样。但这不会改变这一点

  • 我尝试更改电源限制的另一种方法是编辑系统powercap文件。我迁移到目录/sys/class/powercap/intel-rapl/intel-rapl:0
  • 这里有两个文件:

    -rwxr-xr-x 1根根根4.0K 11月21日15:45约束\u 0\u功率\u限制\u uw和

    -rw-r--r--1根根根4.0K 11月21日15:42约束\u 1\u功率\u极限\u uw

    如您所见,我已更改了第一个文件的权限。第一个值为65000000,第二个值为81250000。我尝试将第一个的值更改为(比如)62000000,但是当我尝试保存它时,文件抛出了一个FSync失败(E667)错误。我使用“set nofsync”命令取消设置Fsync,但它会抛出文件系统已满错误(E514)。我减少了文件消耗,甚至重新启动了系统,但随后它抛出了E509

    我做错了什么?我需要操纵RAPL功率限制来调节系统的TDP。有没有其他方法可以改变RAPL限制?
    请引导我。提前谢谢

    MSR 0x610的某些位64是一个
    位(请参阅英特尔SDM,第3卷,第14.9.3节,
    MSR\u PKG\u功率限制
    )。一旦锁定位设置好,就无法解除锁定,这就是它的全部用途。设置好后,你就不能玩剩下的寄存器了。如果它是由BIOS设置的,您将需要做大量的工作来允许自己修改该寄存器,这需要修改BIOS设置或完全刷新它。MSR 0x610的某些位64是一个
    位(请参阅英特尔SDM,第3卷,第14.9.3节,
    MSR\u PKG\u POWER\u LIMIT
    )。一旦锁定位设置好,就无法解除锁定,这就是它的全部用途。设置好后,你就不能玩剩下的寄存器了。如果它是由BIOS设置的,您将不得不做大量的工作来允许自己摆弄该寄存器,需要摆弄BIOS设置或完全重新刷新它。