I am trying to use the RAPL registers, namely MSR_PKG_POWER_LIMIT to regulate power limits on our system. As you must be aware, in order to change the power limits, the lock bit of the MSR_PKG_POWER_LIMIT register must be reset. However, despite our best efforts to RESET it, we have not been able to write to the register. We have tried to so so in three ways:
1. Using the wrmsr command from the terminal and programatically, with root privileges. The command does not return errors but does not reset the bit either.
2. Editing the constarint_uw_0_power_limit file in the /sys/class/powercap/intel-rapl directory. The file, despite being upgraded to write privileges, does not allow changes.
3. We tried to reset the bit by editing the intel_rapl.c file in the intel_rapl module. We try to write to the lock bit of the register (0x610) using the rapl_write_raw_data() function. Despite writing zero to the lock bit, it remains unchanged i.e. set to 1 (Value of the register : 0x8042828a001a8208)
We are using a Haswell Processor and Linux kernel: 4.4.0-51-generic. Your inputs will be highly appreciated. Thanks in advance.