To avoid the following issue, it requires skipping userq_notify_unmap during gpu reset.
[ 356.185682] CPU: 13 UID: 0 PID: 599 Comm: kworker/13:2 Tainted: G W OE 7.1.0-custom #40 PREEMPT(lazy) [ 356.185690] Tainted: [W]=WARN, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE [ 356.185694] Hardware name: AMD Majolica-RN/Majolica-RN, BIOS RMJ1009A 06/13/2021 [ 356.185699] Workqueue: events amdgpu_mes_userq_notify_unmap_work_handler [amdgpu] [ 356.185952] RIP: 0010:amdgpu_device_skip_hw_access+0x73/0x90 [amdgpu] [ 356.186156] Code: 85 c0 75 2a 8b 05 71 56 d7 dc 85 c0 74 d3 48 8b bb d0 e7 07 00 be ff ff ff ff 48 81 c7 88 00 00 00 e8 f1 50 79 db 85 c0 75 b7 <0f> 0b eb b3 48 8b bb d0 e7 07 00 48 83 c7 18 e8 39 fe 76 da eb a1 [ 356.186161] RSP: 0018:ffffd39142dbfa58 EFLAGS: 00010046 [ 356.186168] RAX: 0000000000000000 RBX: ffff8bfc09d00000 RCX: 0000000000000003 [ 356.186172] RDX: 0000000000000000 RSI: ffff8bfc04e00c88 RDI: ffff8bfc0b93df50 [ 356.186176] RBP: ffffd39142dbfa68 R08: 0000000000000000 R09: 0000000000000000 [ 356.186180] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 [ 356.186184] R13: 0000000000000680 R14: ffff8bfc09d67288 R15: 0000000000000000 [ 356.186188] FS: 0000000000000000(0000) GS:ffff8bffb057d000(0000) knlGS:0000000000000000 [ 356.186192] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 356.186197] CR2: 00007fbd3797c000 CR3: 0000000150642000 CR4: 0000000000350ef0 [ 356.186201] Call Trace: [ 356.186205] <TASK> [ 356.186214] amdgpu_mm_wdoorbell64+0x20/0x70 [amdgpu] [ 356.186425] mes_v11_0_ring_set_wptr+0x71/0x80 [amdgpu] [ 356.186670] amdgpu_ring_commit+0x5b/0xa0 [amdgpu] [ 356.186885] mes_v11_0_submit_pkt_and_poll_completion.constprop.0+0x207/0x4a0 [amdgpu] [ 356.187181] mes_v11_0_misc_op+0x8b/0x240 [amdgpu] [ 356.187462] amdgpu_mes_notify_unmap_queue+0xa3/0x110 [amdgpu] [ 356.187713] amdgpu_mes_userq_notify_unmap_work_handler+0x24/0x70 [amdgpu] [ 356.187954] process_one_work+0x23e/0x6f0 [ 356.187984] worker_thread+0x1c4/0x380 [ 356.187998] kthread+0x10c/0x150 [ 356.188004] ? __pfx_worker_thread+0x10/0x10 [ 356.188010] ? __pfx_kthread+0x10/0x10 [ 356.188021] ret_from_fork+0x314/0x390 [ 356.188027] ? __pfx_kthread+0x10/0x10 [ 356.188036] ret_from_fork_asm+0x1a/0x30 [ 356.188069] </TASK> Signed-off-by: Prike Liang <[email protected]> --- drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c index e0e38d6bcafc..dbf535adb1b7 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c @@ -1192,6 +1192,9 @@ static void amdgpu_mes_userq_notify_unmap_work_handler(struct work_struct *work) userq_notify_unmap_work.work); struct amdgpu_device *adev = mes->adev; + if (amdgpu_in_reset(adev)) + return; + amdgpu_mes_notify_unmap_queue(adev); /* Re-arm if still oversubscribed */ -- 2.34.1
