deadlock in active_purge() vs msm_job_run()
[ 7372.794761] task:kswapd0 state:D stack: 0 pid: 161 ppid: 2 flags:0x00000008
[ 7372.794793] Call trace:
[ 7372.794801] __switch_to+0xbc/0x12c
[ 7372.794817] __schedule+0x4b0/0x718
[ 7372.794825] schedule+0xa8/0xf8
[ 7372.794833] schedule_timeout+0x90/0xf4
[ 7372.794841] dma_fence_default_wait+0x108/0x1ec
[ 7372.794855] dma_fence_wait_timeout+0x54/0x1a0
[ 7372.794864] dma_resv_wait_timeout+0x60/0x138
[ 7372.794872] active_purge+0x30/0x5c
[ 7372.794884] drm_gem_lru_scan+0x110/0x268
[ 7372.794898] msm_gem_shrinker_scan+0x160/0x250
[ 7372.794908] do_shrink_slab+0x1a8/0x354
[ 7372.794917] shrink_slab+0x94/0x11c
[ 7372.794926] shrink_node+0x5c8/0x8ac
[ 7372.794935] balance_pgdat+0x310/0x570
[ 7372.794944] kswapd+0xfc/0x1e4
[ 7372.794952] kthread+0x134/0x300
[ 7372.794963] ret_from_fork+0x10/0x20
vs.
[ 7372.795217] task:ring0 state:D stack: 0 pid: 254 ppid: 2 flags:0x00000008
[ 7372.795228] Call trace:
[ 7372.795234] __switch_to+0xbc/0x12c
[ 7372.795244] __schedule+0x4b0/0x718
[ 7372.795252] schedule+0xa8/0xf8
[ 7372.795261] schedule_preempt_disabled+0x2c/0x48
[ 7372.795269] __ww_mutex_lock+0x474/0x8b0
[ 7372.795278] __ww_mutex_lock_slowpath+0x20/0x2c
[ 7372.795286] ww_mutex_lock+0x54/0xc0
[ 7372.795294] msm_job_run+0x60/0x114
[ 7372.795304] drm_sched_main+0x170/0x434
[ 7372.795316] kthread+0x134/0x300
[ 7372.795325] ret_from_fork+0x10/0x20