I'm working on a project that requires reading and setting Uncore Frequency on an Intel Skylake Xeon Gold 6126 Server CPU (I will need to do the same for another Haswell based processor). I'm running an Ubuntu with Linux 4.15.0-134.
I've loaded the msr
kernel module.
I am now trying to first read the current Uncore frequency. I am doing the following:
sudo wrmsr 0x700 0x2000000000000000
sudo wrmsr 0x703 0x400000
sudo rdmsr 0x704
I found the above solution on an Intel discussion thread
However, I am now trying to modify the minimum and maximum uncore frequencies. To do that I am first trying to read the minimum frequency (to store it for later reference):
sudo rdmsr 0x620
The above returns 1818. I'm not sure what this number is. The technical document calls the first 7 bits of it a minimum frequency ratio
(which would have a value of 24 in decimal). But I am not sure what this value is. Furthermore, according to the document, bits 8-14 store the maximum frequency ratio
. However, the bits 8-14 turn out to be 24 as well.
Could someone please explain what these values are? And which value are they calculated in respect to?
Also, would changing the uncore frequency simply require writing to the appropriate bits of register at 0x620, like so?
sudo wrmsr 0x620 0x1c18
I would be extremely grateful for any guidance with regards to the aforementioned questions.