Ubuntu Version:
Ubuntu 24.04.2 LTS
Desktop Environment:
GNOME and command line.
Problem Description:
Last night my desktop upgraded from kernel 6.11.0-17 to 6.11.0-19 and introduced this weird behaviour after rebooting.
I have 2 monitors plugged into my GPU (AMD Radeon RX 6900 XT using amdgpu driver). My main monitor is connected with displayport and the secondary monitor using HDMI.
When the HDMI monitor is switched on (either by itself or with the DP monitor as well), the system works fine.
When only the DP monitor is connected: the screen appears fine, but when I move the mouse cursor between windows or gui elements, the screen goes blank/black for 2-5 seconds before coming back.
If I use the terminal mode (ctrl + alt + F2/F3), entering one command works fine, but any command that requires the full screen to be updated (e.g. top
, less
or the command prompt reaching the bottom of the screen and triggering the text to scroll) causes a blank screen for 2-5 seconds.
When it occurs, the following line appears in dmesg. It’s also in /var/log/kern.log.
workqueue: dm_irq_work_func [amdgpu] hogged CPU for >10000us 7 times, consider switching to WQ_UNBOUND
Relevant System Information:
uname -a
output (machine name redacted):
Linux <XXXX> 6.11.0-19-generic #19~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Feb 17 11:51:52 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
lshw
section on display:
*-pci
description: PCI bridge
product: Navi 10 XL Downstream Port of PCI Express Switch
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:02:00.0
version: 00
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress msi normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:33 ioport:f000(size=4096) memory:ece00000-ecffffff ioport:f800000000(size=17448304640)
*-display
description: VGA compatible controller
product: Navi 21 [Radeon RX 6900 XT]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:03:00.0
logical name: /dev/fb0
version: c0
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi vga_controller bus_master cap_list rom fb
configuration: depth=32 driver=amdgpu latency=0 mode=2560x1440 resolution=2560,1440 visual=truecolor xres=2560 yres=1440
resources: iomemory:f80-f7f iomemory:fc0-fbf irq:137 memory:f800000000-fbffffffff memory:fc00000000-fc0fffffff ioport:f000(size=256) memory:ece00000-ecefffff memory:ecf00000-ecf1ffff
*-multimedia
description: Audio device
product: Navi 21/23 HDMI/DP Audio Controller
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0.1
bus info: pci@0000:03:00.1
logical name: card0
logical name: /dev/snd/controlC0
logical name: /dev/snd/hwC0D0
logical name: /dev/snd/pcmC0D10p
logical name: /dev/snd/pcmC0D11p
logical name: /dev/snd/pcmC0D3p
logical name: /dev/snd/pcmC0D7p
logical name: /dev/snd/pcmC0D8p
logical name: /dev/snd/pcmC0D9p
version: 00
width: 32 bits
clock: 33MHz
capabilities: pm pciexpress msi bus_master cap_list
configuration: driver=snd_hda_intel latency=0
resources: irq:133 memory:ecf20000-ecf23fff
*-input:0
product: HDA ATI HDMI HDMI/DP,pcm=3
physical id: 0
logical name: input12
logical name: /dev/input/event12
*-input:1
product: HDA ATI HDMI HDMI/DP,pcm=7
physical id: 1
logical name: input13
logical name: /dev/input/event13
*-input:2
product: HDA ATI HDMI HDMI/DP,pcm=8
physical id: 2
logical name: input14
logical name: /dev/input/event15
*-input:3
product: HDA ATI HDMI HDMI/DP,pcm=9
physical id: 3
logical name: input15
logical name: /dev/input/event16
*-input:4
product: HDA ATI HDMI HDMI/DP,pcm=10
physical id: 4
logical name: input16
logical name: /dev/input/event18
*-input:5
product: HDA ATI HDMI HDMI/DP,pcm=11
physical id: 5
logical name: input17
logical name: /dev/input/event19
dmesg | grep amdgpu
output: (the 4 workqueue errors trigger with the blank screens)
[ 7.332569] [drm] amdgpu kernel modesetting enabled.
[ 7.332588] amdgpu: vga_switcheroo: detected switching method \_SB_.PCI0.GP17.VGA_.ATPX handle
[ 7.332739] amdgpu: ATPX version 1, functions 0x00000001
[ 7.332838] amdgpu: ATPX Hybrid Graphics
[ 7.342922] amdgpu: Virtual CRAT table created for CPU
[ 7.342935] amdgpu: Topology: Add CPU node
[ 7.343013] amdgpu 0000:03:00.0: enabling device (0006 -> 0007)
[ 7.347004] amdgpu 0000:03:00.0: amdgpu: Fetched VBIOS from VFCT
[ 7.347006] amdgpu: ATOM BIOS: 113-EXT60460-X02
[ 7.372575] amdgpu 0000:03:00.0: vgaarb: deactivate vga console
[ 7.372579] amdgpu 0000:03:00.0: amdgpu: Trusted Memory Zone (TMZ) feature disabled as experimental (default)
[ 7.372607] amdgpu 0000:03:00.0: amdgpu: MEM ECC is not presented.
[ 7.372608] amdgpu 0000:03:00.0: amdgpu: SRAM ECC is not presented.
[ 7.372641] amdgpu 0000:03:00.0: amdgpu: VRAM: 16368M 0x0000008000000000 - 0x00000083FEFFFFFF (16368M used)
[ 7.372644] amdgpu 0000:03:00.0: amdgpu: GART: 512M 0x0000000000000000 - 0x000000001FFFFFFF
[ 7.372732] [drm] amdgpu: 16368M of VRAM memory ready
[ 7.372734] [drm] amdgpu: 15615M of GTT memory ready.
[ 9.414762] amdgpu 0000:03:00.0: amdgpu: STB initialized to 2048 entries
[ 9.480949] amdgpu 0000:03:00.0: amdgpu: reserve 0xa00000 from 0x83fd000000 for PSP TMR
[ 9.628761] amdgpu 0000:03:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
[ 9.628782] amdgpu 0000:03:00.0: amdgpu: smu driver if version = 0x00000040, smu fw if version = 0x00000041, smu fw program = 0, version = 0x003a5900 (58.89.0)
[ 9.628785] amdgpu 0000:03:00.0: amdgpu: SMU driver if version not matched
[ 9.628816] amdgpu 0000:03:00.0: amdgpu: use vbios provided pptable
[ 9.702234] amdgpu 0000:03:00.0: amdgpu: SMU is initialized successfully!
[ 9.706458] snd_hda_intel 0000:03:00.1: bound 0000:03:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
[ 9.795478] amdgpu: HMM registered 16368MB device memory
[ 9.796463] kfd kfd: amdgpu: Allocated 3969056 bytes on gart
[ 9.796478] kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
[ 9.796980] amdgpu: Virtual CRAT table created for GPU
[ 9.797226] amdgpu: Topology: Add dGPU node [0x73af:0x1002]
[ 9.797228] kfd kfd: amdgpu: added device 1002:73af
[ 9.797256] amdgpu 0000:03:00.0: amdgpu: SE 4, SH per SE 2, CU per SH 10, active_cu_number 80
[ 9.797260] amdgpu 0000:03:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[ 9.797261] amdgpu 0000:03:00.0: amdgpu: ring gfx_0.1.0 uses VM inv eng 1 on hub 0
[ 9.797263] amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 4 on hub 0
[ 9.797264] amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 5 on hub 0
[ 9.797265] amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 6 on hub 0
[ 9.797266] amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 7 on hub 0
[ 9.797267] amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 8 on hub 0
[ 9.797268] amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 9 on hub 0
[ 9.797270] amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 10 on hub 0
[ 9.797271] amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 11 on hub 0
[ 9.797272] amdgpu 0000:03:00.0: amdgpu: ring kiq_0.2.1.0 uses VM inv eng 12 on hub 0
[ 9.797273] amdgpu 0000:03:00.0: amdgpu: ring sdma0 uses VM inv eng 13 on hub 0
[ 9.797274] amdgpu 0000:03:00.0: amdgpu: ring sdma1 uses VM inv eng 14 on hub 0
[ 9.797275] amdgpu 0000:03:00.0: amdgpu: ring sdma2 uses VM inv eng 15 on hub 0
[ 9.797276] amdgpu 0000:03:00.0: amdgpu: ring sdma3 uses VM inv eng 16 on hub 0
[ 9.797277] amdgpu 0000:03:00.0: amdgpu: ring vcn_dec_0 uses VM inv eng 0 on hub 8
[ 9.797279] amdgpu 0000:03:00.0: amdgpu: ring vcn_enc_0.0 uses VM inv eng 1 on hub 8
[ 9.797280] amdgpu 0000:03:00.0: amdgpu: ring vcn_enc_0.1 uses VM inv eng 4 on hub 8
[ 9.797281] amdgpu 0000:03:00.0: amdgpu: ring vcn_dec_1 uses VM inv eng 5 on hub 8
[ 9.797282] amdgpu 0000:03:00.0: amdgpu: ring vcn_enc_1.0 uses VM inv eng 6 on hub 8
[ 9.797283] amdgpu 0000:03:00.0: amdgpu: ring vcn_enc_1.1 uses VM inv eng 7 on hub 8
[ 9.797284] amdgpu 0000:03:00.0: amdgpu: ring jpeg_dec uses VM inv eng 8 on hub 8
[ 9.799207] amdgpu 0000:03:00.0: amdgpu: Using BOCO for runtime pm
[ 9.800307] [drm] Initialized amdgpu 3.59.0 for 0000:03:00.0 on minor 1
[ 9.809808] fbcon: amdgpudrmfb (fb0) is primary device
[ 9.809811] amdgpu 0000:03:00.0: [drm] fb0: amdgpudrmfb frame buffer device
[ 9.826638] amdgpu 0000:3b:00.0: enabling device (0006 -> 0007)
[ 9.830114] amdgpu 0000:3b:00.0: amdgpu: Fetched VBIOS from VFCT
[ 9.830116] amdgpu: ATOM BIOS: 102-RAPHAEL-006
[ 9.843178] amdgpu 0000:3b:00.0: amdgpu: Trusted Memory Zone (TMZ) feature disabled as experimental (default)
[ 9.843212] amdgpu 0000:3b:00.0: amdgpu: VRAM: 512M 0x000000F400000000 - 0x000000F41FFFFFFF (512M used)
[ 9.843214] amdgpu 0000:3b:00.0: amdgpu: GART: 1024M 0x0000000000000000 - 0x000000003FFFFFFF
[ 9.843273] [drm] amdgpu: 512M of VRAM memory ready
[ 9.843274] [drm] amdgpu: 15615M of GTT memory ready.
[ 9.866619] amdgpu 0000:3b:00.0: amdgpu: reserve 0xa00000 from 0xf41e000000 for PSP TMR
[ 9.959617] amdgpu 0000:3b:00.0: amdgpu: RAS: optional ras ta ucode is not available
[ 9.967413] amdgpu 0000:3b:00.0: amdgpu: RAP: optional rap ta ucode is not available
[ 9.967415] amdgpu 0000:3b:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
[ 9.968755] amdgpu 0000:3b:00.0: amdgpu: SMU is initialized successfully!
[ 9.971721] snd_hda_intel 0000:3b:00.1: bound 0000:3b:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
[ 9.981344] kfd kfd: amdgpu: Allocated 3969056 bytes on gart
[ 9.981352] kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
[ 9.981589] amdgpu: Virtual CRAT table created for GPU
[ 9.981985] amdgpu: Topology: Add dGPU node [0x164e:0x1002]
[ 9.981987] kfd kfd: amdgpu: added device 1002:164e
[ 9.981998] amdgpu 0000:3b:00.0: amdgpu: SE 1, SH per SE 1, CU per SH 2, active_cu_number 2
[ 9.982001] amdgpu 0000:3b:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[ 9.982002] amdgpu 0000:3b:00.0: amdgpu: ring gfx_0.1.0 uses VM inv eng 1 on hub 0
[ 9.982003] amdgpu 0000:3b:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 4 on hub 0
[ 9.982004] amdgpu 0000:3b:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 5 on hub 0
[ 9.982005] amdgpu 0000:3b:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 6 on hub 0
[ 9.982006] amdgpu 0000:3b:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 7 on hub 0
[ 9.982008] amdgpu 0000:3b:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 8 on hub 0
[ 9.982009] amdgpu 0000:3b:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 9 on hub 0
[ 9.982010] amdgpu 0000:3b:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 10 on hub 0
[ 9.982011] amdgpu 0000:3b:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 11 on hub 0
[ 9.982012] amdgpu 0000:3b:00.0: amdgpu: ring kiq_0.2.1.0 uses VM inv eng 12 on hub 0
[ 9.982013] amdgpu 0000:3b:00.0: amdgpu: ring sdma0 uses VM inv eng 13 on hub 0
[ 9.982014] amdgpu 0000:3b:00.0: amdgpu: ring vcn_dec_0 uses VM inv eng 0 on hub 8
[ 9.982015] amdgpu 0000:3b:00.0: amdgpu: ring vcn_enc_0.0 uses VM inv eng 1 on hub 8
[ 9.982016] amdgpu 0000:3b:00.0: amdgpu: ring vcn_enc_0.1 uses VM inv eng 4 on hub 8
[ 9.982017] amdgpu 0000:3b:00.0: amdgpu: ring jpeg_dec uses VM inv eng 5 on hub 8
[ 9.982799] amdgpu 0000:3b:00.0: amdgpu: Runtime PM not available
[ 9.983257] [drm] Initialized amdgpu 3.59.0 for 0000:3b:00.0 on minor 2
[ 9.991118] amdgpu 0000:3b:00.0: [drm] Cannot find any crtc or sizes
[ 1729.543281] workqueue: dm_irq_work_func [amdgpu] hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND
[ 2462.454799] workqueue: dm_irq_work_func [amdgpu] hogged CPU for >10000us 5 times, consider switching to WQ_UNBOUND
[ 2818.272728] workqueue: dm_irq_work_func [amdgpu] hogged CPU for >10000us 7 times, consider switching to WQ_UNBOUND
[ 3708.179862] workqueue: dm_irq_work_func [amdgpu] hogged CPU for >10000us 11 times, consider switching to WQ_UNBOUND
What I’ve Tried:
Connecting a HDMI device resolves the issue, but that’s just a workaround. I’d like not to need my second display on all the time!
Thanks.