* [PATCH] drm/msm: skip re-emitting IBs for unusable VMs
@ 2025-08-13 13:04 Antonino Maniscalco
2025-08-18 12:10 ` Akhil P Oommen
0 siblings, 1 reply; 4+ messages in thread
From: Antonino Maniscalco @ 2025-08-13 13:04 UTC (permalink / raw)
To: Rob Clark, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Jessica Zhang, Marijn Suijten, David Airlie,
Simona Vetter
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel,
Antonino Maniscalco
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>
---
drivers/gpu/drm/msm/msm_gpu.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c
index c317b25a8162edba0d594f61427eac4440871b73..e6cd85c810bd2314c8bba53644a622464713b7f2 100644
--- a/drivers/gpu/drm/msm/msm_gpu.c
+++ b/drivers/gpu/drm/msm/msm_gpu.c
@@ -553,8 +553,15 @@ static void recover_worker(struct kthread_work *work)
unsigned long flags;
spin_lock_irqsave(&ring->submit_lock, flags);
- list_for_each_entry(submit, &ring->submits, node)
+ list_for_each_entry(submit, &ring->submits, node) {
+ /*
+ * If the submit uses an unusable vm make sure
+ * we don't actually run it
+ */
+ if (to_msm_vm(submit->vm)->unusable)
+ submit->nr_cmds = 0;
gpu->funcs->submit(gpu, submit);
+ }
spin_unlock_irqrestore(&ring->submit_lock, flags);
}
}
---
base-commit: 8290d37ad2b087bbcfe65fa5bcaf260e184b250a
change-id: 20250813-unusable_fix_b4-10bde6f3b756
Best regards,
--
Antonino Maniscalco <antomani103@gmail.com>
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/msm: skip re-emitting IBs for unusable VMs
2025-08-13 13:04 [PATCH] drm/msm: skip re-emitting IBs for unusable VMs Antonino Maniscalco
@ 2025-08-18 12:10 ` Akhil P Oommen
2025-08-18 13:18 ` Rob Clark
0 siblings, 1 reply; 4+ messages in thread
From: Akhil P Oommen @ 2025-08-18 12:10 UTC (permalink / raw)
To: Antonino Maniscalco, Rob Clark, Sean Paul, Konrad Dybcio,
Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang, Marijn Suijten,
David Airlie, Simona Vetter
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel
On 8/13/2025 6:34 PM, Antonino Maniscalco wrote:
> 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>
> ---
> drivers/gpu/drm/msm/msm_gpu.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c
> index c317b25a8162edba0d594f61427eac4440871b73..e6cd85c810bd2314c8bba53644a622464713b7f2 100644
> --- a/drivers/gpu/drm/msm/msm_gpu.c
> +++ b/drivers/gpu/drm/msm/msm_gpu.c
> @@ -553,8 +553,15 @@ static void recover_worker(struct kthread_work *work)
> unsigned long flags;
>
> spin_lock_irqsave(&ring->submit_lock, flags);
> - list_for_each_entry(submit, &ring->submits, node)
> + list_for_each_entry(submit, &ring->submits, node) {
> + /*
> + * If the submit uses an unusable vm make sure
> + * we don't actually run it
> + */
> + if (to_msm_vm(submit->vm)->unusable)
> + submit->nr_cmds = 0;
Just curious, why not just retire this submit here?
-Akhil
> gpu->funcs->submit(gpu, submit);
> + }
> spin_unlock_irqrestore(&ring->submit_lock, flags);
> }
> }
>
> ---
> base-commit: 8290d37ad2b087bbcfe65fa5bcaf260e184b250a
> change-id: 20250813-unusable_fix_b4-10bde6f3b756
>
> Best regards,
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/msm: skip re-emitting IBs for unusable VMs
2025-08-18 12:10 ` Akhil P Oommen
@ 2025-08-18 13:18 ` Rob Clark
2025-08-18 14:06 ` Akhil P Oommen
0 siblings, 1 reply; 4+ messages in thread
From: Rob Clark @ 2025-08-18 13:18 UTC (permalink / raw)
To: Akhil P Oommen
Cc: Antonino Maniscalco, Sean Paul, Konrad Dybcio, Dmitry Baryshkov,
Abhinav Kumar, Jessica Zhang, Marijn Suijten, David Airlie,
Simona Vetter, linux-arm-msm, dri-devel, freedreno, linux-kernel
On Mon, Aug 18, 2025 at 5:10 AM Akhil P Oommen <akhilpo@oss.qualcomm.com> wrote:
>
> On 8/13/2025 6:34 PM, Antonino Maniscalco wrote:
> > 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>
> > ---
> > drivers/gpu/drm/msm/msm_gpu.c | 9 ++++++++-
> > 1 file changed, 8 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c
> > index c317b25a8162edba0d594f61427eac4440871b73..e6cd85c810bd2314c8bba53644a622464713b7f2 100644
> > --- a/drivers/gpu/drm/msm/msm_gpu.c
> > +++ b/drivers/gpu/drm/msm/msm_gpu.c
> > @@ -553,8 +553,15 @@ static void recover_worker(struct kthread_work *work)
> > unsigned long flags;
> >
> > spin_lock_irqsave(&ring->submit_lock, flags);
> > - list_for_each_entry(submit, &ring->submits, node)
> > + list_for_each_entry(submit, &ring->submits, node) {
> > + /*
> > + * If the submit uses an unusable vm make sure
> > + * we don't actually run it
> > + */
> > + if (to_msm_vm(submit->vm)->unusable)
> > + submit->nr_cmds = 0;
>
> Just curious, why not just retire this submit here?
Because then you'd end up with submits retiring out of order (ie.
fences on the same timeline signaling out of order)
BR,
-R
> -Akhil
>
> > gpu->funcs->submit(gpu, submit);
> > + }
> > spin_unlock_irqrestore(&ring->submit_lock, flags);
> > }
> > }
> >
> > ---
> > base-commit: 8290d37ad2b087bbcfe65fa5bcaf260e184b250a
> > change-id: 20250813-unusable_fix_b4-10bde6f3b756
> >
> > Best regards,
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/msm: skip re-emitting IBs for unusable VMs
2025-08-18 13:18 ` Rob Clark
@ 2025-08-18 14:06 ` Akhil P Oommen
0 siblings, 0 replies; 4+ messages in thread
From: Akhil P Oommen @ 2025-08-18 14:06 UTC (permalink / raw)
To: rob.clark, Antonino Maniscalco
Cc: Sean Paul, Konrad Dybcio, Dmitry Baryshkov, Abhinav Kumar,
Jessica Zhang, Marijn Suijten, David Airlie, Simona Vetter,
linux-arm-msm, dri-devel, freedreno, linux-kernel
On 8/18/2025 6:48 PM, Rob Clark wrote:
> On Mon, Aug 18, 2025 at 5:10 AM Akhil P Oommen <akhilpo@oss.qualcomm.com> wrote:
>>
>> On 8/13/2025 6:34 PM, Antonino Maniscalco wrote:
>>> 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>
>>> ---
>>> drivers/gpu/drm/msm/msm_gpu.c | 9 ++++++++-
>>> 1 file changed, 8 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c
>>> index c317b25a8162edba0d594f61427eac4440871b73..e6cd85c810bd2314c8bba53644a622464713b7f2 100644
>>> --- a/drivers/gpu/drm/msm/msm_gpu.c
>>> +++ b/drivers/gpu/drm/msm/msm_gpu.c
>>> @@ -553,8 +553,15 @@ static void recover_worker(struct kthread_work *work)
>>> unsigned long flags;
>>>
>>> spin_lock_irqsave(&ring->submit_lock, flags);
>>> - list_for_each_entry(submit, &ring->submits, node)
>>> + list_for_each_entry(submit, &ring->submits, node) {
>>> + /*
>>> + * If the submit uses an unusable vm make sure
>>> + * we don't actually run it
>>> + */
>>> + if (to_msm_vm(submit->vm)->unusable)
>>> + submit->nr_cmds = 0;
>>
>> Just curious, why not just retire this submit here?
>
> Because then you'd end up with submits retiring out of order (ie.
> fences on the same timeline signaling out of order)
Yeah, that makes sense.
Reviewed-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
-Akhil
>
> BR,
> -R
>
>> -Akhil
>>
>>> gpu->funcs->submit(gpu, submit);
>>> + }
>>> spin_unlock_irqrestore(&ring->submit_lock, flags);
>>> }
>>> }
>>>
>>> ---
>>> base-commit: 8290d37ad2b087bbcfe65fa5bcaf260e184b250a
>>> change-id: 20250813-unusable_fix_b4-10bde6f3b756
>>>
>>> Best regards,
>>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-08-18 14:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-13 13:04 [PATCH] drm/msm: skip re-emitting IBs for unusable VMs Antonino Maniscalco
2025-08-18 12:10 ` Akhil P Oommen
2025-08-18 13:18 ` Rob Clark
2025-08-18 14:06 ` Akhil P Oommen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).