[SOLVED] ASUS Prime x570-pro Clock Behavior

Greetings Humans!

First, the question(s):
Has anyone noticed AMD clock behavior has changed in a recent(*) BIOS update?

Second, the story:
The hardware I’m working with: Ryzen 5800X / ASUS Prime x570-pro / 64Gb (4 sticks) GSkill 3200Mhz / EVGA 3060 / Samsung SSD / 360mm AIO / Fractal Meshify / Debian Linux 11

Because I have an addiction to graphs, the first thing I do with any system is setup graphs. I use prometheus node_exporter on my machine, and a second machine collects the data and puts it into grafana for me. I only keep 30 days, because it’s just my home machines (my 30 days has rolled over so I can’t get old data out - yes i regret this now)

So, here’s the graph that started my problems: (8 days of data)

the min and max are simply the smallest and biggest numbers for a specific polling period, and the average is the average for all cores in the same polling period.

the numbers we’re looking at specifically are the CPU Min-Min numbers, which jumped from 1.8Ghz on the low end to 2.2 Ghz, and the Average for all cores dropped from in the ballpark of 2.5Ghz to around 3.5Ghz. The max-max is nice, but it’s not what I’m here for.

The left side of the graph is on the BIOS that shipped with the board, which I think was 2804 - I didn’t expect trouble, so didn’t really take note. The BIOS update was bought about from half of my RAM disappearing one day watching a youtube video. Machine hard locked and wouldn’t boot with the “B” channels populated. It had been running since new on this configuration. (6-9 months? pandemic timelines are strange)

I ran on 2 sticks for a while because nobody really needs 64Gb of RAM for daily driving. Eventually I had some free time and decided to work out which RAM had died so I could RMA it. I started testing and found that all of it worked fine. While poking around the internet, I found there were quite a few BIOS updates for my board, and a number of them said “RAM compatibility improvements” so I thought “that’s me!” and installed the latest one (4204) - The machine is currently running on all sticks of RAM again. Uptime is currently 18 days, so “pretty stable”.

BUT. The Clocking behavior has changed since the BIOS update. Instead of defaulting to “be clocked down, clock up when you need it” it seems to have changed to “be mildly clocked at all times” - so much so that it does not seem to be able too go below 2.2Ghz anymore, and the average is closer to the max clock than it used to be. The work load hasn’t changed, and the software hasn’t either. (and definitely didn’t change on the reboot for the new BIOS as picture above)

I’ve installed all of the BIOSes the board would let me (I don’t seem to be able to go older than the 3xxx version BIOSes) and fiddled with (nearly) every setting and reset the BIOS multiple times, and nothing makes it be like it used to be.

Why am I chasing low clocks? Because power isn’t free, and I don’t need 8 cores running at 3.5Ghz to play music in spotify! I don’t turn my machine off, it goes to sleep after a while of inactivity. I don’t have speed issues when it was needed, it would happily clock up and stay there running games or compiling or whatever I’m doing at the time. A single-threadded workload would only pull up one core, and leave the rest where they were. Now it seems to be pulling idle cores up as well.

So has anyone else seen this? Is anyone running on an old BIOS and prepared to setup node_exporter and push their numbers into grafana, and share them here?

I’m also fairly deep down the “it’s the BIOS” rabbit-hole, if anyone has any other things to check, that would also be appreciated.

Hey there, welcome to the forums!

Why do you often update your BIOS?

I don’t normally try to fix things that are not broken!

I hadn’t updated the BIOS at all until my RAM started giving me trouble. (even then I thought the RAM issue was hardware failure to start with)

Then I only flashed different versions trying to get back to the original clock behavior, when none of that worked I went back to the latest version, because it seemed like the most logical choice.

1 Like

Did you ever get to the bottom of this?

A very, very latent response, but I’ve finally figured this out!

It wasn’t the BIOS at all, it was the (lack of) amd-pstate driver being enabled in the kernel.

There is a chunk of information here: How To Use The New AMD P-State Driver With Linux 5.17 - Phoronix

The only difference is on kernels > 6.1 instead of the grub arguments they suggest, you just need a amd_pstate=passive on the kernel command line. If you don’t have that, it defaults to off and you’re stuck with the intel-compatible (i’m guessing) apci driver, which bottoms out at 2.2Ghz instead of a low of 500Mhz with amd-pstate.

You also need to enable CPPC in the BIOS (on ASUS, go to BIOS< F9 for search, type CPPC, and set enable on both options)

And finally, a graph:

1 Like

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.