Ryzen Desktop Fan Bug

Hey guys,

In Windows, there’s a fun bug with Ryzen CPUs (I know it at least affects the 3000 series), where the CPU fan spins up all over the place, regardless of BIOS configured fan curves. A known workaround for this is to set the minimum and maximum CPU performance as 99% in WIndows’ power management settings.

Once I finally found this out a year or so ago, I was relieved to not have the fans spinning up all the time. I’m now trialling switching to Linux full-time as I’m sick of dealing with Windows’ “quirks”; however, I’m unsure of how to remedy the issue here. Any input would be greatly appreciated!

3 Likes

Does this workaround actually make your CPU permanently rev at 99% or is there a second bug in the governor that makes everything work fine?

Does your motherboard have software that lets you set the fan curve while the computer is running? I think MSI and Asus have this. Maybe this would stick better inside of Windows.

Fan control might do the trick if your motherboard doesn’t have that:

Nope, it works fine. You can read more about the technical details here: https://www.reddit.com/r/Amd/comments/cbls9g/the_final_word_on_idle_voltages_for_3rd_gen_ryzen

The Ryzen CPU depends heavily on a low-power state called cc6 sleep. In this sleep state, core clockspeeds and voltages are basically nil as the core is sleeping and gated. It is not possible to report out the state of the core in this sleep state without waking the core, probing the status, and killing the power savings of cc6. Therefore, MOST tools can only show you the last clock and voltage of the core before the core went to cc6. So if you were at
full 4.5GHz+ boost @ 1.48V, then the core went to sleep, many tools might show the core(s) stuck at that value. The tool just doesn’t know any better.

As I understand it, cc6 sleep faltering is what causes the issue I’m experiencing.

As mentioned in my opener, sadly configuring the fan curve within the BIOS doesn’t impact this issue.

1 Like

I just thought that Windows was overriding the fan curve. So, I thought that setting it from within the OS might work.

1 Like

Maybe “fan smoothing” works? That should delay speedups/slowdowns a bit – which should prevent it from jumping around. It should be separate from the curve.