Closed alsoijw closed 2 years ago
@alsoijw, those AMD processors have a possibility to have at most 8 P-States, however not all of them may be available, it depends on the specific processor itself. It looks like amdctl tool is able to read all of them, no matter if they are valid.
In your example the state 7 is not valid because its Status is 0. I also think that there is a small bug in amdctl. If you execute amdctl -x then it shows the explanation of the fields and for status we have:
Status: If the P-State is enabled (1) or disabled (0).
however this message is wrong. According to the specs for 14H family and 15H family models 60h-6Fh the meaning of this field is:
PstateEn. Read-write. 1=The P-state specified by this MSR is valid. 0=The P-state specified by this MSR is not valid. The purpose of this register is to indicate if the rest of the P-state information in the register is valid after a reset; it controls no hardware.
The status message should be something like:
Status: If the P-State is valid (1) or invalid (0).
I'm not quite sure if amdctl correctly distinguish between non-turbo and turbo P-States. Probably it silently assumes that there is always one turbo state, which may be wrong. Some processors may have 0, 1 or more turbo states. According to specs, the D18F4x15C register contains the number of turbo (or boosted) states but this registers is never read by amdctl.
@alsoijw, I have the feeling that you processor has 7 P-States in total. The first three (with speeds 3600MHz, 3200MHz and 2900Mhz) are the boost states. The other ones are a non-boosted. So the list of pstates is not correct, it should be something like this:
Core 0 | P-State Limits (non-turbo): Highest: 3 ; Lowest 6 | Current P-State: 6
Pstate Status CpuFid CpuDid CpuVid CpuMult CpuFreq CpuVolt IddVal IddDiv CpuCurr CpuPower
0 1 20 0 28 18.00x 3600MHz 1200mV 145 10 14.50A 17.40W Turbo
1 1 16 0 54 16.00x 3200MHz 875mV 107 10 10.70A 9.36W Turbo
2 1 13 0 70 14.50x 2900MHz 675mV 87 10 8.70A 5.87W Turbo
3 1 11 0 78 13.50x 2700MHz 575mV 77 10 7.70A 4.43W
4 1 7 0 96 11.50x 2300MHz 350mV 58 10 5.80A 2.03W
5 1 20 1 110 9.00x 1800MHz 175mV 42 10 4.20A 0.73W
6 1 12 1 118 7.00x 1400MHz 75mV 32 10 3.20A 0.24W
current 1 12 1 118 7.00x 1400MHz 75mV
How to read prom PCI devices, for example D18F4x15C I have described in #16.
I have AMD Quad Core A12-9720P
Minimal supported frequence is 1400000. Max turbo core is 3600000.
But amdctl says that lowest state is 5. But 5 is
I can manually get information about 6 state.
If I continue iterate states I will get
I don't know is it 7 state correct or not.