Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/msm: skip re-emitting IBs for unusable VMs

When a VM is marked as an usuable we disallow new submissions from it,
however submissions that where already scheduled on the ring would still
be re-sent.

Since this can lead to further hangs, avoid emitting the actual IBs.

Fixes: 6a4d287a1ae6 ("drm/msm: Mark VM as unusable on GPU hangs")
Signed-off-by: Antonino Maniscalco <antomani103@gmail.com>
Reviewed-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/668314/
Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>

authored by

Antonino Maniscalco and committed by
Rob Clark
4876b391 1ba9fbe4

+8 -1
+8 -1
drivers/gpu/drm/msm/msm_gpu.c
··· 558 558 unsigned long flags; 559 559 560 560 spin_lock_irqsave(&ring->submit_lock, flags); 561 - list_for_each_entry(submit, &ring->submits, node) 561 + list_for_each_entry(submit, &ring->submits, node) { 562 + /* 563 + * If the submit uses an unusable vm make sure 564 + * we don't actually run it 565 + */ 566 + if (to_msm_vm(submit->vm)->unusable) 567 + submit->nr_cmds = 0; 562 568 gpu->funcs->submit(gpu, submit); 569 + } 563 570 spin_unlock_irqrestore(&ring->submit_lock, flags); 564 571 } 565 572 }