Corefreq: Strange voltage readings

Created on 6 Dec 2019  路  10Comments  路  Source: cyring/CoreFreq

First, thank you so much for this excellent software. The following issue may not be a real problem, however it seemed sufficiently suspicious to warrant checking.

I'm having strange voltage readings on a fresh Arch Linux install with a Ryzen 3700X CPU in an ASRock 570M Pro motherboard. With no CPU load, corefreq-cli -V reads every core at 0.9 V. At max CPU load (confirmed by both htop and corefreq, achieved by running "stress -c 16 -t 5m"), the voltages rise to 1.1 and go no further.

This seems quite strange in light of the fact that the normal operating range for the 3700X is 0.2 to 1.5 V. Additionally, the BIOS shows a Vcore of 1.456. (Indeed, it was this abnormally high voltage that made me seek out corefreq to figure out whether the reading was legitimate.)

I have disabled Precision Boost Overdrive in the BIOS, but besides that and changing fan settings, the BIOS is at stock settings.

Is corefreq measuring voltage accurately here, and if not, is there a way I can fix it?

Edit: Shortly after writing this, I noticed the same behavior (0.9 V at rest, 1.1 V at full load) appears in your screenshot of the 3600X.

Edit 2: I can make this question more precise. A YouTube user hooked an oscilloscope up to a 3700X to get direct voltage readings; you can find them starting at 7:55 of this video.

There is a single core test followed by an all core test. Indeed, for the all core test he gets voltages between .94 V and 1.14 V, matching exactly what corefreq finds on my system and in the screenshot above. However, he finds, as my BIOS does, a voltage draw of above 1.47 V for the single core boost mode. (Look in the lower right corner for the average voltage. It is a bit blurry, but he also narrates it.)

However, I cannot replicate this measurement using a single core CPU stress test. Corefreq's measurement tops out at 1.1 V still for me. The core is clearly boosting, giving me about 3.33 GHz, so I am not sure why the voltage is this low.

All 10 comments

voltages rise to 1.1

Indeed I need to improve the Vcore: what I'm showing is the Core Voltage ID, the VID included in each P-State register which is then converted to a Vcore value.

These VID, Vcore should match with what you read/set in BIOS

That's unfortunately all published info I've found in the Zen specs.

I'm seeing that other Windows software are showing the real voltage, apparently from an external IC or the SMU but I have not found their registers definition.

FYI, here is the code to:

Thanks to this dump:
https://github.com/InstLatx64/InstLatx64/blob/77fd92f7a4e3e0e127a1dd805e5cd04c8fa6d7da/AuthenticAMD/AuthenticAMD0830F10_K17_CastlePeak_CPUID2.txt#L5611

We could measure the Vcore from register 0xC0010293 which apparently reads at 1.45V

Please dump your Processor with this MSR in 3 cases: Idle, Single Core stressed, All Cores stressed; Turbo CPB enabled off course.

With your results, I'll then try to convert VID to Voltage Core

Edit please try the followings

  1. Replace this line:
    https://github.com/cyring/CoreFreq/blob/69c2cd77a9ae35b88cf0897dfc255812bb382b6f/corefreqk.c#L8308
    With this code:
                RDMSR(PstateDef, MSR_AMD_PSTATE_F17H_BOOST);
  1. Rebuild all
make clean all
  1. Reload all, especially the driver
# rmmod corefreqk.ko
# insmod corefreqk.ko
# corefreqd

_switch to another term_

$ corefreq-cli
  1. Test the 3 cases (idle, single core load, all cores all)
    For each, please screenshot the view Power & Voltage

Thank you for this. It is really wonderful work.

I followed the instructions in your second post and got sensible results. They also match the readings from lm_sensors. Therefore, I believe this issue is resolved.

Please see here for screenshots: https://imgur.com/a/MpF8NBP

Your welcome.
I can barely read digits in screenshots but it looks coherent with other Ryzen in issue #54
I now miss Threadripper, and EPYC results, especially, per cluster results.
Regards

Version 1.70.2 released with the Vcore fixed.

Closing the fixed issue.

Hello,
Among the last changes in issue #195 , an I/O ASM access to the FCH have been added: can you please check if the last _CoreFreq_ version is starting fine ?
Thank you

Yes, I built from source code and it works fine for me. No crashes.

Yes, I built from source code and it works fine for me. No crashes.

Thank you very much.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

thor2002ro picture thor2002ro  路  22Comments

Chlorophytus picture Chlorophytus  路  26Comments

munorc picture munorc  路  32Comments

cyring picture cyring  路  11Comments

uzername123 picture uzername123  路  11Comments