Kworker events_unbound stuck at 100% CPU, laptop slows to 1 FPS

Ubuntu 24.04.1 LTS
Linux 6.8.0-51-generic #52-Ubuntu
BIOS 0.0.3.5
Framework 16 Ryzen 7840HS
No GPU expansion

This issue began happening when I upgraded the BIOS from 0.0.3.3 and the kernel from -49 (stupidly, at the same time). I’d had the laptop for several months before that with no issues.

When using the laptop, suddenly it will get VERY slow, updating the screen only about 1 FPS; I notice first with mouse movements, but also keyboard, or any other interaction. However it isn’t progressive; it goes straight to that speed, and then can be used (barely) for some time without getting worse or freezing completely.

The only obvious hint of what’s going on is that a single kworker process becomes pinned at 100% CPU, working events_unbound.

I believe this is NOT related to these issues:
community.frame.work/t/tracking-kworker-stuck-at-near-100-cpu-usage-with-ubuntu-22-04/23053
community.frame.work/t/tracking-amd-small-group-of-kworkers-keeping-cpu-0-busy-after-suspend-resume-cycle-s/45002/1
Those seem to have to do with USB, power management, and gpe10. Disabling gpe10 did not solve my issue. (sorry for link formatting, forum is limiting my number of links)

Rather, I think I have the same issue described in these tickets:

https://bbs.archlinux.org/viewtopic.php?id=299561

These are related to the amdgpu driver. I have confirmed that when the issue is occurring, cat /sys/kernel/debug/dri/1/amdgpu_gpu_recover fixes it. I have not yet tested the persistent fix mentioned of adding kernel param amdgpu.dcdebugmask=0x10.

As described in those issues, it seems to happen to me when I’m watching/scrubbing videos.

Wanted to share this here in case others are having the same issue, despite this not appearing to be a Framework-specific problem.

4 Likes

I had something similar with Kernel 6.11 which was fixed in 6.12. So I’d recommend opening a bug report at Canonicals bug tracker and tell them when they decide to ship a non-LTS Kernel with an LTS distro, they should better make sure to port back such fixes. Or you find a way to compile 6.12 yourself. I know it’s very easy for Debian, as they hardly ever carry any additional fixes that haevn’t been upstreamed, but I think Ubuntu does carry quite a few. Maybe you find a PPA that you can use in the mean time.

I have this exact issue as well.

Framework 13 AMD Ryzen 7
Ubuntu 24.04.2 LTS
Kernel 6.11.0-17-generic

Not sure when it started, but it’s been there for months. Fortunately, it only happens rarely. However, when it does, I have to reboot to get back to normal.

It has definitely happened a few times, exactly as you described, when watching higher-resolution videos on YouTube. But it also happens without watching videos, as it did just now. I only had WezTerm, Firefox, and WindSurf open, with no media running.

It happened within 30 minutes of returning from a suspended state and adding USB power. I’m not entirely sure, but I feel like I’ve had this thought before—that it occured shortly after resuming, seeing low battery, and plugging in USB-C. Again. Not sure about that part.

After making this post, I did eventually put in the amdgpu.dcdebugmask=0x10 boot option, and I haven’t had the issue again since.

2 Likes

Great. Thanks for writing back. I’ve added the same option now, and i will post here if it happens again. Fingers crossed :slight_smile:

I am having she same issues here in a new Framework machine.

Framework 13 Ryzen
Linux 6.8.0-54-lowlatency #56.1-ubuntu
Ubuntu 24.04.2 LTS
Bios 3.5

Even after the amdgpu.dcdebugmask=0x10 trick, the issue eventually came back. Adding that code, even if it does work, is not really a long term fix anyway, I assume?

It can almost always be reproduced by watching some YouTube videos while typing, but it is still not clear exactly the condition that triggers it.

Has anyone else conclusively solved this? Any ideas how to further troubleshoot?