Clock speeds limited to ~500 MHz

TLDR: When I have a display connected via HDMI to expansion 4 on boot, my clock speeds are limited to ~500MHz

I’ve had a 13" 7840U model running Fedora for a couple of months now and I’ve had a nagging issue that I’ve only just now found the root cause of. Occasionally my machine would become really slow, and using the Vitals extension I could see my clock speeds were never breaking ~500MHz. I tried all available kernels, rebooting, powering down/up, switching power profiles, and was not able to zero in on the root cause. The issue seemed transient, sometimes the machine was fast and sometimes it was slow.

I have two displays connected via different inputs. Using this diagram as reference, expansion 3 is USB-C to connect an ultrawide display which also serves as a dock for other USB devices (mouse, keyboard, webcam). Expansion 4 is HDMI to connect a second external display. As I explained in the TLDR, having the second display connected via this configuration on boot limits my clock speeds. If I boot without the display connected everything runs normally.

I’d seen some other issues on the community forums/other Linux communities that sounded sort of like this, but could not find a solution. I hope this information is able to help someone who might be having the same issue as me.

Does your kernel have this fix?

I’m on 6.6.14-200 so not as far as I can tell

@rickster I’ve had luck getting the CPU un-stuck by resetting the scaling governor via cpupower. The patch Mario linked has solved the problem for me, but until it hits the fedora kernel, cpupower may still be a workaround.

# check current governor
sudo cpupower frequency-info -p
...
The governor "powersave" may decide which speed to use
...

# set the same governor again
sudo cpupower frequency-set -g powersave