[op6-enchilada] Graphic interface slows down when waking up the screen (affects 6.16 and dates back at least to 6.12)
Hi, when pressing power button to wake up the screen of enchilada (only the screen, device is not suspended), we hit a WARN in the kernel and graphics slows down to an unusable state, so that a reboot is needed.
This was reported both for
- Mobian: qcom-linux#17
- pmOS: pmaports#3885
Symptoms in the journal are the same:
kernel gets in WARN on dpu_core_irq_register_callback
set 26 14:02:38 mobian systemd-logind[671]: Power key pressed short.
set 26 14:02:39 mobian kernel: ------------[ cut here ]------------
set 26 14:02:39 mobian kernel: WARNING: CPU: 7 PID: 1551 at drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c:575 dpu_core_irq_register_callback+0x184/0x1ec [msm]
set 26 14:02:39 mobian kernel: Modules linked in: uinput rfcomm algif_hash algif_skcipher xt_CHECKSUM bnep xt_tcpudp nft_chain_nat xt_MASQUERADE nf_nat snd_soc_wcd934x snd_soc_wcd_mbhc snd_soc_wcd_classh gpio_wcd934x nf_conntrack q6voice_dai nf_defrag_ipv6 nf_defrag_ipv4 q6asm_dai q6voice q6routing q6mvm nft_compat q6cvp q6cvs q6afe_dai q6voice_common q6asm q6adm wcd934x q6afe snd_q6dsp_common nf_tables regmap_slimbus q6core venus_dec venus_enc videobuf2_dma_contig hci_uart ath10k_snoc btqca btbcm ath10k_core ath bluetooth qcom_camss venus_core videobuf2_dma_sg mac80211 imx376 snd_soc_sdm845 ecdh_generic imx371 videobuf2_memops v4l2_mem2mem videobuf2_v4l2 snd_soc_rt5663 nxp_nci_i2c lc898217xc v4l2_fwnode v4l2_cci libarc4 ecc snd_soc_qcom_sdw nxp_nci nci videobuf2_common v4l2_async leds_qcom_lpg qcom_spmi_haptics snd_soc_max98927 snd_soc_qcom_common leds_qcom_flash videodev rmi_i2c led_class_multicolor qcom_spmi_rradc ff_memless snd_soc_rl6231 nfc rmi_core mc cfg80211 ipa rfkill fastrpc slim_qcom_ngd_ctrl joydev fuse dm_mod nfnetlink
set 26 14:02:39 mobian kernel: zram ip_tables x_tables panel_samsung_sofef00 qcom_smbx msm drm_exec bq27xxx_battery_i2c gpu_sched bq27xxx_battery drm_display_helper qcom_stats drm_dp_aux_bus dispcc_sdm845 reset_qcom_pdc camcc_sdm845 rpmsg_ctrl
set 26 14:02:39 mobian kernel: CPU: 7 UID: 1000 PID: 1551 Comm: kwin_wayland Not tainted 6.16-sdm845 #6.16.8-1 PREEMPT
set 26 14:02:39 mobian kernel: Hardware name: OnePlus 6 (DT)
set 26 14:02:39 mobian kernel: pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
set 26 14:02:39 mobian kernel: pc : dpu_core_irq_register_callback+0x184/0x1ec [msm]
set 26 14:02:39 mobian kernel: lr : dpu_core_irq_register_callback+0x40/0x1ec [msm]
set 26 14:02:39 mobian kernel: sp : ffff80008b4538c0
set 26 14:02:39 mobian kernel: x29: ffff80008b4538c0 x28: 0000000000000001 x27: ffff0000809922d8
set 26 14:02:39 mobian kernel: x26: ffffa28adccfb818 x25: ffffa28aeac80460 x24: 0000000000000028
set 26 14:02:39 mobian kernel: x23: 0000000000000000 x22: ffff00008b96bc80 x21: ffffa28adcc9116c
set 26 14:02:39 mobian kernel: x20: ffff000086f0f080 x19: 0000000000000008 x18: 0000000000000000
set 26 14:02:39 mobian kernel: x17: 000000040044ffff x16: ffffa28aea87dbf8 x15: 00000000000004dc
set 26 14:02:39 mobian kernel: x14: 00000000000008e8 x13: 000000000000090c x12: 0000000000000914
set 26 14:02:39 mobian kernel: x11: 0000000000000040 x10: ffffa28aeb211148 x9 : ffffa28aeb211140
set 26 14:02:39 mobian kernel: x8 : ffffa28aeb48f000 x7 : 0000000000000000 x6 : 0000000000000000
set 26 14:02:39 mobian kernel: x5 : 0000000000000000 x4 : ffff00008e028140 x3 : ffff00008b96bc80
set 26 14:02:39 mobian kernel: x2 : 0000000000000001 x1 : ffff00008e028080 x0 : ffffa28adcc9116c
set 26 14:02:39 mobian kernel: Call trace:
set 26 14:02:39 mobian kernel: dpu_core_irq_register_callback+0x184/0x1ec [msm] (P)
set 26 14:02:39 mobian kernel: dpu_encoder_phys_cmd_irq_enable+0x2c/0x98 [msm]
set 26 14:02:39 mobian kernel: _dpu_encoder_irq_enable+0x58/0xb0 [msm]
set 26 14:02:39 mobian kernel: dpu_encoder_resource_control+0x1e8/0x4b8 [msm]
set 26 14:02:39 mobian kernel: dpu_encoder_virt_atomic_enable+0xb0/0x16c [msm]
set 26 14:02:39 mobian kernel: drm_atomic_helper_commit_modeset_enables+0x17c/0x274
set 26 14:02:39 mobian kernel: msm_atomic_commit_tail+0x1a8/0x54c [msm]
set 26 14:02:39 mobian kernel: commit_tail+0xa4/0x18c
set 26 14:02:39 mobian kernel: drm_atomic_helper_commit+0x164/0x178
set 26 14:02:39 mobian kernel: drm_atomic_commit+0x88/0xc4
set 26 14:02:39 mobian kernel: drm_mode_atomic_ioctl+0xa2c/0xc94
set 26 14:02:39 mobian kernel: drm_ioctl_kernel+0xbc/0x12c
set 26 14:02:39 mobian kernel: drm_ioctl+0x20c/0x4dc
set 26 14:02:39 mobian kernel: __arm64_sys_ioctl+0xac/0x104
set 26 14:02:39 mobian kernel: invoke_syscall+0x48/0x110
set 26 14:02:39 mobian kernel: el0_svc_common.constprop.0+0x40/0xe0
set 26 14:02:39 mobian kernel: do_el0_svc+0x1c/0x28
set 26 14:02:39 mobian kernel: el0_svc+0x34/0x108
set 26 14:02:39 mobian kernel: el0t_64_sync_handler+0x10c/0x138
set 26 14:02:39 mobian kernel: el0t_64_sync+0x198/0x19c
set 26 14:02:39 mobian kernel: ---[ end trace 0000000000000000 ]---
set 26 14:02:39 mobian kernel: ------------[ cut here ]------------
set 26 14:02:39 mobian kernel: WARNING: CPU: 7 PID: 1551 at drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c:575 dpu_core_irq_register_callback+0x184/0x1ec [msm]
set 26 14:02:39 mobian kernel: Modules linked in: uinput rfcomm algif_hash algif_skcipher xt_CHECKSUM bnep xt_tcpudp nft_chain_nat xt_MASQUERADE nf_nat snd_soc_wcd934x snd_soc_wcd_mbhc snd_soc_wcd_classh gpio_wcd934x nf_conntrack q6voice_dai nf_defrag_ipv6 nf_defrag_ipv4 q6asm_dai q6voice q6routing q6mvm nft_compat q6cvp q6cvs q6afe_dai q6voice_common q6asm q6adm wcd934x q6afe snd_q6dsp_common nf_tables regmap_slimbus q6core venus_dec venus_enc videobuf2_dma_contig hci_uart ath10k_snoc btqca btbcm ath10k_core ath bluetooth qcom_camss venus_core videobuf2_dma_sg mac80211 imx376 snd_soc_sdm845 ecdh_generic imx371 videobuf2_memops v4l2_mem2mem videobuf2_v4l2 snd_soc_rt5663 nxp_nci_i2c lc898217xc v4l2_fwnode v4l2_cci libarc4 ecc snd_soc_qcom_sdw nxp_nci nci videobuf2_common v4l2_async leds_qcom_lpg qcom_spmi_haptics snd_soc_max98927 snd_soc_qcom_common leds_qcom_flash videodev rmi_i2c led_class_multicolor qcom_spmi_rradc ff_memless snd_soc_rl6231 nfc rmi_core mc cfg80211 ipa rfkill fastrpc slim_qcom_ngd_ctrl joydev fuse dm_mod nfnetlink
set 26 14:02:39 mobian kernel: zram ip_tables x_tables panel_samsung_sofef00 qcom_smbx msm drm_exec bq27xxx_battery_i2c gpu_sched bq27xxx_battery drm_display_helper qcom_stats drm_dp_aux_bus dispcc_sdm845 reset_qcom_pdc camcc_sdm845 rpmsg_ctrl
set 26 14:02:39 mobian kernel: CPU: 7 UID: 1000 PID: 1551 Comm: kwin_wayland Tainted: G W 6.16-sdm845 #6.16.8-1 PREEMPT
set 26 14:02:39 mobian kernel: Tainted: [W]=WARN
set 26 14:02:39 mobian kernel: Hardware name: OnePlus 6 (DT)
set 26 14:02:39 mobian kernel: pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
set 26 14:02:39 mobian kernel: pc : dpu_core_irq_register_callback+0x184/0x1ec [msm]
set 26 14:02:39 mobian kernel: lr : dpu_core_irq_register_callback+0x40/0x1ec [msm]
set 26 14:02:39 mobian kernel: sp : ffff80008b4538c0
set 26 14:02:39 mobian kernel: x29: ffff80008b4538c0 x28: 0000000000000001 x27: ffff0000809922d8
set 26 14:02:39 mobian kernel: x26: ffffa28adccfb818 x25: ffffa28aeac80460 x24: 0000000000000028
set 26 14:02:39 mobian kernel: x23: 0000000000000000 x22: ffff00008b96bc80 x21: ffffa28adcc90f10
set 26 14:02:39 mobian kernel: x20: ffff000086f0f080 x19: 000000000000002b x18: 0000000000000000
set 26 14:02:39 mobian kernel: x17: 000000040044ffff x16: ffffa28aea87dbf8 x15: 00000000000004dc
set 26 14:02:39 mobian kernel: x14: ffff00009bfdeb00 x13: 0000000000000000 x12: ffffa28aeb1f9fb8
set 26 14:02:39 mobian kernel: x11: 00000000000000c0 x10: 0000000000000b00 x9 : ffff80008b4537f0
set 26 14:02:39 mobian kernel: x8 : ffffa28aeb48f000 x7 : 0000000000000001 x6 : ffffa28adcd22220
set 26 14:02:39 mobian kernel: x5 : 0000000000000000 x4 : ffff00008e028488 x3 : ffff00008b96bc80
set 26 14:02:39 mobian kernel: x2 : 0000000000000001 x1 : ffff00008e028080 x0 : ffffa28adcc90f10
set 26 14:02:39 mobian kernel: Call trace:
set 26 14:02:39 mobian kernel: dpu_core_irq_register_callback+0x184/0x1ec [msm] (P)
set 26 14:02:39 mobian kernel: dpu_encoder_phys_cmd_irq_enable+0x88/0x98 [msm]
set 26 14:02:39 mobian kernel: _dpu_encoder_irq_enable+0x58/0xb0 [msm]
set 26 14:02:39 mobian kernel: dpu_encoder_resource_control+0x1e8/0x4b8 [msm]
set 26 14:02:39 mobian kernel: dpu_encoder_virt_atomic_enable+0xb0/0x16c [msm]
set 26 14:02:39 mobian kernel: drm_atomic_helper_commit_modeset_enables+0x17c/0x274
set 26 14:02:39 mobian kernel: msm_atomic_commit_tail+0x1a8/0x54c [msm]
set 26 14:02:39 mobian kernel: commit_tail+0xa4/0x18c
set 26 14:02:39 mobian kernel: drm_atomic_helper_commit+0x164/0x178
set 26 14:02:39 mobian kernel: drm_atomic_commit+0x88/0xc4
set 26 14:02:39 mobian kernel: drm_mode_atomic_ioctl+0xa2c/0xc94
set 26 14:02:39 mobian kernel: drm_ioctl_kernel+0xbc/0x12c
set 26 14:02:39 mobian kernel: drm_ioctl+0x20c/0x4dc
set 26 14:02:39 mobian kernel: __arm64_sys_ioctl+0xac/0x104
set 26 14:02:39 mobian kernel: invoke_syscall+0x48/0x110
set 26 14:02:39 mobian kernel: el0_svc_common.constprop.0+0x40/0xe0
set 26 14:02:39 mobian kernel: do_el0_svc+0x1c/0x28
set 26 14:02:39 mobian kernel: el0_svc+0x34/0x108
set 26 14:02:39 mobian kernel: el0t_64_sync_handler+0x10c/0x138
set 26 14:02:39 mobian kernel: el0t_64_sync+0x198/0x19c
set 26 14:02:39 mobian kernel: ---[ end trace 0000000000000000 ]---
set 26 14:02:39 mobian kernel: q6asm-dai remoteproc-adsp:glink-edge:apr:service@7:dais: command[0x10bdb] not expecting rsp
set 26 14:02:39 mobian kernel: wcd934x_slim_irq_handler: 35 callbacks suppressed
set 26 14:02:39 mobian kernel: wcd934x-codec wcd934x-codec.1.auto: Port Closed TX port 6, value 4
set 26 14:02:39 mobian kernel: q6asm-dai remoteproc-adsp:glink-edge:apr:service@7:dais: command[0x10bdb] not expecting rsp
set 26 14:02:39 mobian kernel: wcd934x-codec wcd934x-codec.1.auto: Port Closed TX port 7, value 4
set 26 14:02:39 mobian kernel: [drm:_dpu_encoder_phys_cmd_wait_for_ctl_start:665] [dpu error]enc33 intf1 ctl start interrupt wait failed
set 26 14:02:39 mobian kernel: [drm:dpu_kms_wait_for_commit_done:524] [dpu error]wait for commit done returned -22
set 26 14:02:39 mobian kwin_wayland_wrapper[2290]: file:///usr/share/plasma/shells/org.kde.plasma.mobileshell/contents/lockscreen/Keypad.qml:35:9: QML LayoutItemProxy: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
set 26 14:02:39 mobian kwin_wayland_wrapper[2290]: file:///usr/share/plasma/shells/org.kde.plasma.mobileshell/contents/lockscreen/Keypad.qml:35:9: QML LayoutItemProxy: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
set 26 14:02:39 mobian kwin_wayland_wrapper[2290]: file:///usr/share/plasma/shells/org.kde.plasma.mobileshell/contents/lockscreen/Keypad.qml:80:9: QML LayoutItemProxy: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
set 26 14:02:39 mobian kernel: [drm:_dpu_encoder_phys_cmd_wait_for_ctl_start:665] [dpu error]enc33 intf1 ctl start interrupt wait failed
set 26 14:02:39 mobian kernel: [drm:dpu_kms_wait_for_commit_done:524] [dpu error]wait for commit done returned -22
and the lines
set 26 14:02:39 mobian kernel: [drm:_dpu_encoder_phys_cmd_wait_for_ctl_start:665] [dpu error]enc33 intf1 ctl start interrupt wait failed
set 26 14:02:39 mobian kernel: [drm:dpu_kms_wait_for_commit_done:524] [dpu error]wait for commit done returned -22
repeating over and over.
As a bonus, in the Mobian issue I've tried to take a look at the codepath that ends up crashing. I will try to add some printk to understand better what happens, but feel free to take a second look in the meanwhile!