Okay, found some interesting things about Precision Boost.
Original research, take with a grain of salt.
Initially I thought disabling C-states disables Precision Boost entirely. This is not true, but it does not mean Precision Boost isn’t affected.
Precision Boost is somewhat tied to C-states and allocates boost frequency based on how low the C-state on other cores can get.
Single core performance has to work harder for more power budget if none of the cores can enter C6 C-state. This results in lower boost clocks.
Unfortunately, the 2 less than ideal solutions, globally disabling C-state and using zenstates.py
need you to compensate for available power/voltage for boost by raising it to hit the same boost clocks as before.
Global C-states being off has the most impact, but has the potential to stabilize Live USB/CDs of most Linux distros. If you run a lot of distros, this is what you should choose.
zenstates.py
only disables C6, allowing inactive cores to downclock more to provide more “budget” to the single loaded core.
Of course, since all cores are loaded in a multi-thread workload, C-states don’t do anything for that workload.
It’s still up to AMD to fix C6 issues since Precision Boost relies on it to gain more power budget for higher boost clocks on single core. With the crippled state of C6, you will have to live with lower boost clocks or deal with regular instability.