AGESA 1.0.04B & Ryzen 3900X boost in Linux

I recently upgraded to a 3900X from a 2700. I ran the 2700 overclocked to 4GHz 24/7 so no boost. With BIOS reset to default for the 3900X on 1.0.0.3ABB, would idle around 2GHz and boost to 4.5GHz under low load, and hold 4.2GHz under all core load but having BIOS issues and sometimes it wouldn’t boot so I went ahead and updated to AGESA 1.0.0.4B. Fixed my weird boot problems, but now the dang cpu holds 2GHz, until I load up at least 12 threads or more. IIRC AMD optimized the boost behavior in 1.0.0.4? Anyone have a similar experience?

I’m monitoring cpu frequency with
watch -n1 “lscpu | grep MHz | awk ‘{print $1}’”;

Could it just be an error in reporting?

There’s a ton of quirks that vary from board to board on boost behavior even within the same manufacturer. Sometimes you just have to get in bios and tweak.

Yeah I figured I’d have to go ahead and start tweaking things in bios. Just rather let the cpu handle it though, seeing as the boost behavior on Ryzen 3000 is supposed to be pretty good at getting the most performance possible given temps, voltage, load. Definitely behaves different under agesa 1.0.0.4b

turn off PBO and see what the cpu does on its own.

Just another data point … Asrock Taichi X470 on Manjaro my 3900X would run hot, and could never run memory at rated 3200mhz until I upgraded UEFI bios to 1.0.0.3ABB. CPU started to cool down, and XMP 2.0 hit all the memory specs 3200mhz 14-14-14-14-31

Since then, I replaced with 3950X and upped bios to 1.0.0.4B

Now, running all cores at 50% cycles crunching numbers on BOINC 24x7 I see voltages 1.22 - 1.44v and frequencies from 2.5 - 4.1Ghz while it cracks. I have learned to trust AGESA to run the chip and just let it go.

I run PBO off because I am not chasing top performance, I am chasing many cores. Temps stay consistently under 70, btw.

I actually get better boosts with PBO off on my board.

Hey guys, I feel kind of dumb, I just realized that maybe the following command:
watch -n0.5 "lscpu | grep MHz | awk '{print $1}'";
may only be reporting frequency of core 1 (or whatever single core it wants). I installed NMON and sure enough, it looks like the above string only reports CPU1. When looking at frequency of each core, they’re bouncing all over the place, but generally boosting nicely with demand. Anywhere from 1.8GHz to 4.5Ghz under light load. 4.2GHz all core! Now with -100mV offset I’m still getting ~4050MHz all core (and about 4.4GHz single) but now temps max out around 63-64C with a smallish Scythe Mugen 5 Rev.B cooler with a Noctua NF-A12x25 fan!

So the solution here is make sure you’re using the right tool to monitor things before you assume you have a problem. Use NMON.

Previously I was running an R7- 2700, it just so happens that core 1 was the best core (according to Ryzen Master) so it was often loaded and running the fastest, thus reporting the highest clocks according to the above command. Not sure which core(s) is my golden core on my 3900X but at any rate I’m happy I found NMON.