System freezes after display upgrade

Which Linux distro are you using? Omarchy

Which release version? 3,8,4

Which kernel are you using? Linux 7.1.4-arch1-1

Which BIOS version are you using? 3.20

Which Framework Laptop 13 model are you using? AMD Ryzen 7040Series (A5)

Dear community,

around 3 weeks ago, I have upgraded to the fw13 pro screen module on my AMD 7040 series FW13 and ever since I’m experiencing this issue:

Occasionally when I use the media/fn keys to change volume or screen brightness, my system freezes up completely. In this state, the screen simply shows the last output, the audio output sometimes continues playing (sometimes it also stops), the fn+space hotkey still allows me to cycle through keyboard backlight brightness, but otherwise no inputs (like trying to reboot the system via keybindings) work, allowing only for a hard reboot via the power key.

After the reboot, checking error logs with journalctl -k -b -1 -p err shows the following:

Aug 07 07:05:43 fw13 kernel: **BUG: unable to handle page fault for address: 0000000ffffffe07**
Aug 07 07:05:43 fw13 kernel: **#PF: supervisor read access in kernel mode**
Aug 07 07:05:43 fw13 kernel: **#PF: error_code(0x0000) - not-present page**
Aug 07 07:06:09 fw13 kernel: **watchdog: BUG: soft lockup - CPU#2 stuck for 26s! \[Hyprland:1500\]**
Aug 07 07:06:09 fw13 kernel: **CPU#2 Utilization every 4000ms during lockup:**
Aug 07 07:06:09 fw13 kernel: **#1: 100% system,          0% softirq,          1% hardirq,          0% idle**
Aug 07 07:06:09 fw13 kernel: **#2: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:09 fw13 kernel: **#3: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:09 fw13 kernel: **#4: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:09 fw13 kernel: **#5: 100% system,          0% softirq,          1% hardirq,          0% idle**
Aug 07 07:06:09 fw13 kernel: **watchdog: BUG: soft lockup - CPU#7 stuck for 26s! \[kworker/u48:0:62527\]**
Aug 07 07:06:09 fw13 kernel: **CPU#7 Utilization every 4000ms during lockup:**
Aug 07 07:06:09 fw13 kernel: **#1: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:09 fw13 kernel: **#2: 100% system,          0% softirq,          1% hardirq,          0% idle**
Aug 07 07:06:09 fw13 kernel: **#3: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:09 fw13 kernel: **#4: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:09 fw13 kernel: **#5: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:37 fw13 kernel: **watchdog: BUG: soft lockup - CPU#2 stuck for 52s! \[Hyprland:1500\]**
Aug 07 07:06:37 fw13 kernel: **CPU#2 Utilization every 4000ms during lockup:**
Aug 07 07:06:37 fw13 kernel: **#1: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:37 fw13 kernel: **#2: 100% system,          0% softirq,          1% hardirq,          0% idle**
Aug 07 07:06:37 fw13 kernel: **#3: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:37 fw13 kernel: **#4: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:37 fw13 kernel: **#5: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:37 fw13 kernel: **watchdog: BUG: soft lockup - CPU#7 stuck for 52s! \[kworker/u48:0:62527\]**
Aug 07 07:06:37 fw13 kernel: **CPU#7 Utilization every 4000ms during lockup:**
Aug 07 07:06:37 fw13 kernel:  **#1: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:37 fw13 kernel: **#2: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:37 fw13 kernel: **#3: 100% system,          0% softirq,          1% hardirq,          0% idle**
Aug 07 07:06:37 fw13 kernel: **#4: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:37 fw13 kernel: **#5: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:06:43 fw13 kernel: **rcu: INFO: rcu_preempt self-detected stall on CPU**
Aug 07 07:06:43 fw13 kernel: **rcu:         7-....: (59997 ticks this GP) idle=03ec/1/0x4000000000000000 softirq=344015/344015 fqs=15000**
Aug 07 07:06:43 fw13 kernel: **rcu:         (t=60000 jiffies g=2688965 q=10529 ncpus=12)**
Aug 07 07:07:05 fw13 kernel: **watchdog: BUG: soft lockup - CPU#2 stuck for 78s! \[Hyprland:1500\]**
Aug 07 07:07:05 fw13 kernel: **CPU#2 Utilization every 4000ms during lockup:**
Aug 07 07:07:05 fw13 kernel: **#1: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:07:05 fw13 kernel: **#2: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:07:05 fw13 kernel: **#3: 100% system,          0% softirq,          1% hardirq,          0% idle**
Aug 07 07:07:05 fw13 kernel: **#4: 100% system,          0% softirq,          0% hardirq,          0% idle**
Aug 07 07:07:05 fw13 kernel: **#5: 100% system,          0% softirq,          0% hardirq,          0% idle**

My first attempt to fix this issue with google search suggested trying to disable AMD GPU MicroEngine Scheduler and PanelSelfRefresh via modprobe, so I created the file /etc/modprobe.d/amdgpu-psr-fix.conf with content,

options amdgpu dcdebugmask=0x10
options amdgpu mes=0
options amdgpu cwsr_enable=0

and rebuilt the limine MKU via limine-mkinitcpio -P But this doesn’t seem to solve the issue.

I have also updated my firmware to 3.20 as I’ve seen similar issues related to older firmware versions, but this also didn’t do the trick.

Did anyone else encounter this issue and manage to solve it? I’m thankful for any pointers of how I could proceed troubleshooting this issue.

Cheers,

Juraj

just in case someone stumbles across this thread, I have posted this issue on the omarchy github board. I’m trying out the solution suggested there by using this config modification instead of the one I described previously here,

sudo mkdir -p /etc/limine-entry-tool.d
sudo tee /etc/limine-entry-tool.d/amdgpu-psr.conf <<'CONF'
KERNEL_CMDLINE[default]+=" amdgpu.dcdebugmask=0x210"
CONF
sudo limine-mkinitcpio

So far no freezes since yesterday…I hope it lasts.

1 Like