Closed cyring closed 3 years ago
Going further into the subject; testing with Ryzen 3950X and the following boot options:
modprobe.blacklist=pcspkr,nouveau,k10temp,acpi_cpufreq idle=halt
OSPM
Target plan shows that Cores remain in PB0
with a FID
of 36
Driver development will add PB0
to the enumeration of ratios and see what I can do with it ...
Apply 22
to all Cores
Change Core #1
to 28
Stress Core #0
which results to a ratio of 20
but we also see a ratio of 24
for Core #1
FID of values { 20
, 24
} are not enumerated among the enabled P-States in function Compute_AMD_Zen_Boost()
https://github.com/cyring/CoreFreq/blob/d38ca25c61ecfb2f46d6ff86cd40db7cb72e5077/corefreqk.c#L4470
P-State | FID | P-State | FID |
---|---|---|---|
P0 | 35 | Pb0 | 36 |
P1 | 28 | Pb1 | 24 |
P2 | 22 | Pb2 | 20 |
31:30
29
28:5
4:2
1:0
What we learnt from CoreFreq
Compute_AMD_Zen_Boost
: https://github.com/cyring/CoreFreq/blob/f6ba67a06676e3f83dfc4eeefb8b09683c39fc87/corefreqk.c#L3679PstateEn
36
0xc0010064
28
0xc0010065
22
0xc0010066
--
0xc0010067
--
0xc0010068
--
0xc0010069
--
0xc001006a
--
0xc001006b
CPB = 42
andXFR = 43
are computed ratios (based on the 3600X commercial datasheets)https://github.com/cyring/CoreFreq/blob/f6ba67a06676e3f83dfc4eeefb8b09683c39fc87/corefreqk.h#L2952
If we manage to write in
[NumBoostStates]
the value3
@ PCI register address D18F4x15C we could re-run the functionCompute_AMD_Zen_Boost
and query the remaining Performance Boost P-States, in particular:Pb1 @ MSR 0xc0010065
andPb2 @ MSR 0xc0010066
I mean that rather than computing CPB (
+6
) and XFR (+1
) from Pb0 (36
), we could directly query their exact values from the hardware, respectively Pb1 and Pb2First let's see if we can dump this Core Performance Boost Control Register ?
EDIT: Instructions
If one of those instructions failed, try to read the whole space
Originally posted by @cyring in https://github.com/cyring/CoreFreq/issues/172#issuecomment-617705564