* [PATCH 1/2] drm/scheduler: fix drm_sched_job_add_implicit_dependencies
@ 2021-11-16 9:25 Christian König
2021-11-16 9:25 ` [PATCH 2/2] drm/sched: fix dropping the last fence ref Christian König
0 siblings, 1 reply; 5+ messages in thread
From: Christian König @ 2021-11-16 9:25 UTC (permalink / raw)
To: dri-devel, robdclark, daniel, frattaroli.nicolas, y.oudjana
Trivial fix since we now need to grab a reference to the fence we have
added. Previously the dma_resv function where doing that for us.
Signed-off-by: Christian König <christian.koenig@amd.com>
Fixes: 9c2ba265352a ("drm/scheduler: use new iterator in drm_sched_job_add_implicit_dependencies v2")
Link: https://patchwork.freedesktop.org/patch/msgid/20211019112706.27769-1-christian.koenig@amd.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reported-by: Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
References: https://lore.kernel.org/dri-devel/2023306.UmlnhvANQh@archbook/
Tested-by: Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
Tested-by: Yassine Oudjana <y.oudjana@protonmail.com>
---
drivers/gpu/drm/scheduler/sched_main.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index 5bc5f775abe1..94fe51b3caa2 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -707,6 +707,9 @@ int drm_sched_job_add_implicit_dependencies(struct drm_sched_job *job,
ret = drm_sched_job_add_dependency(job, fence);
if (ret)
return ret;
+
+ /* Make sure to grab an additional ref on the added fence */
+ dma_fence_get(fence);
}
return 0;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 2/2] drm/sched: fix dropping the last fence ref 2021-11-16 9:25 [PATCH 1/2] drm/scheduler: fix drm_sched_job_add_implicit_dependencies Christian König @ 2021-11-16 9:25 ` Christian König 2021-11-16 16:37 ` Daniel Vetter 0 siblings, 1 reply; 5+ messages in thread From: Christian König @ 2021-11-16 9:25 UTC (permalink / raw) To: dri-devel, robdclark, daniel, frattaroli.nicolas, y.oudjana We need to grab another ref before trying to add the fence to the sched job and not after. Signed-off-by: Christian König <christian.koenig@amd.com> --- drivers/gpu/drm/scheduler/sched_main.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c index 94fe51b3caa2..400d201c3c28 100644 --- a/drivers/gpu/drm/scheduler/sched_main.c +++ b/drivers/gpu/drm/scheduler/sched_main.c @@ -704,12 +704,14 @@ int drm_sched_job_add_implicit_dependencies(struct drm_sched_job *job, int ret; dma_resv_for_each_fence(&cursor, obj->resv, write, fence) { - ret = drm_sched_job_add_dependency(job, fence); - if (ret) - return ret; - /* Make sure to grab an additional ref on the added fence */ dma_fence_get(fence); + + ret = drm_sched_job_add_dependency(job, fence); + if (ret) { + dma_fence_put(fence); + return ret; + } } return 0; } -- 2.25.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] drm/sched: fix dropping the last fence ref 2021-11-16 9:25 ` [PATCH 2/2] drm/sched: fix dropping the last fence ref Christian König @ 2021-11-16 16:37 ` Daniel Vetter 2021-11-16 18:07 ` Rob Clark 0 siblings, 1 reply; 5+ messages in thread From: Daniel Vetter @ 2021-11-16 16:37 UTC (permalink / raw) To: Christian König; +Cc: frattaroli.nicolas, dri-devel, y.oudjana On Tue, Nov 16, 2021 at 10:25:19AM +0100, Christian König wrote: > We need to grab another ref before trying to add the fence to the sched > job and not after. > > Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> I wondered first why this goes boom, but then I realized that in some cases add_dependency() drops the reference of the passed-in fence. Please also add the Fixes: line like in the previous patch. Cheers, Daniel > --- > drivers/gpu/drm/scheduler/sched_main.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c > index 94fe51b3caa2..400d201c3c28 100644 > --- a/drivers/gpu/drm/scheduler/sched_main.c > +++ b/drivers/gpu/drm/scheduler/sched_main.c > @@ -704,12 +704,14 @@ int drm_sched_job_add_implicit_dependencies(struct drm_sched_job *job, > int ret; > > dma_resv_for_each_fence(&cursor, obj->resv, write, fence) { > - ret = drm_sched_job_add_dependency(job, fence); > - if (ret) > - return ret; > - > /* Make sure to grab an additional ref on the added fence */ > dma_fence_get(fence); > + > + ret = drm_sched_job_add_dependency(job, fence); > + if (ret) { > + dma_fence_put(fence); > + return ret; > + } > } > return 0; > } > -- > 2.25.1 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] drm/sched: fix dropping the last fence ref 2021-11-16 16:37 ` Daniel Vetter @ 2021-11-16 18:07 ` Rob Clark 2021-11-17 6:17 ` Christian König 0 siblings, 1 reply; 5+ messages in thread From: Rob Clark @ 2021-11-16 18:07 UTC (permalink / raw) To: Daniel Vetter Cc: frattaroli.nicolas, Christian König, Yassine Oudjana, dri-devel On Tue, Nov 16, 2021 at 8:37 AM Daniel Vetter <daniel@ffwll.ch> wrote: > > On Tue, Nov 16, 2021 at 10:25:19AM +0100, Christian König wrote: > > We need to grab another ref before trying to add the fence to the sched > > job and not after. > > > > Signed-off-by: Christian König <christian.koenig@amd.com> > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > > I wondered first why this goes boom, but then I realized that in some > cases add_dependency() drops the reference of the passed-in fence. > > Please also add the Fixes: line like in the previous patch. oh, I sent https://patchwork.freedesktop.org/patch/463329/ before I saw this.. it already has the fixes tag, and IMO a better description, so I think you can just pick that one instead BR, -R > Cheers, Daniel > > > --- > > drivers/gpu/drm/scheduler/sched_main.c | 10 ++++++---- > > 1 file changed, 6 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c > > index 94fe51b3caa2..400d201c3c28 100644 > > --- a/drivers/gpu/drm/scheduler/sched_main.c > > +++ b/drivers/gpu/drm/scheduler/sched_main.c > > @@ -704,12 +704,14 @@ int drm_sched_job_add_implicit_dependencies(struct drm_sched_job *job, > > int ret; > > > > dma_resv_for_each_fence(&cursor, obj->resv, write, fence) { > > - ret = drm_sched_job_add_dependency(job, fence); > > - if (ret) > > - return ret; > > - > > /* Make sure to grab an additional ref on the added fence */ > > dma_fence_get(fence); > > + > > + ret = drm_sched_job_add_dependency(job, fence); > > + if (ret) { > > + dma_fence_put(fence); > > + return ret; > > + } > > } > > return 0; > > } > > -- > > 2.25.1 > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] drm/sched: fix dropping the last fence ref 2021-11-16 18:07 ` Rob Clark @ 2021-11-17 6:17 ` Christian König 0 siblings, 0 replies; 5+ messages in thread From: Christian König @ 2021-11-17 6:17 UTC (permalink / raw) To: Rob Clark, Daniel Vetter; +Cc: frattaroli.nicolas, Yassine Oudjana, dri-devel Am 16.11.21 um 19:07 schrieb Rob Clark: > On Tue, Nov 16, 2021 at 8:37 AM Daniel Vetter <daniel@ffwll.ch> wrote: >> On Tue, Nov 16, 2021 at 10:25:19AM +0100, Christian König wrote: >>> We need to grab another ref before trying to add the fence to the sched >>> job and not after. >>> >>> Signed-off-by: Christian König <christian.koenig@amd.com> >> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> >> >> I wondered first why this goes boom, but then I realized that in some >> cases add_dependency() drops the reference of the passed-in fence. >> >> Please also add the Fixes: line like in the previous patch. > oh, I sent https://patchwork.freedesktop.org/patch/463329/ before I > saw this.. it already has the fixes tag, and IMO a better description, > so I think you can just pick that one instead Yeah, agree. You also have the missing Fixes line already. Going to add Daniels rb to your patch as well since it is technically the same. Thanks, Christian. > > BR, > -R > >> Cheers, Daniel >> >>> --- >>> drivers/gpu/drm/scheduler/sched_main.c | 10 ++++++---- >>> 1 file changed, 6 insertions(+), 4 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c >>> index 94fe51b3caa2..400d201c3c28 100644 >>> --- a/drivers/gpu/drm/scheduler/sched_main.c >>> +++ b/drivers/gpu/drm/scheduler/sched_main.c >>> @@ -704,12 +704,14 @@ int drm_sched_job_add_implicit_dependencies(struct drm_sched_job *job, >>> int ret; >>> >>> dma_resv_for_each_fence(&cursor, obj->resv, write, fence) { >>> - ret = drm_sched_job_add_dependency(job, fence); >>> - if (ret) >>> - return ret; >>> - >>> /* Make sure to grab an additional ref on the added fence */ >>> dma_fence_get(fence); >>> + >>> + ret = drm_sched_job_add_dependency(job, fence); >>> + if (ret) { >>> + dma_fence_put(fence); >>> + return ret; >>> + } >>> } >>> return 0; >>> } >>> -- >>> 2.25.1 >>> >> -- >> Daniel Vetter >> Software Engineer, Intel Corporation >> http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-11-17 6:17 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-11-16 9:25 [PATCH 1/2] drm/scheduler: fix drm_sched_job_add_implicit_dependencies Christian König 2021-11-16 9:25 ` [PATCH 2/2] drm/sched: fix dropping the last fence ref Christian König 2021-11-16 16:37 ` Daniel Vetter 2021-11-16 18:07 ` Rob Clark 2021-11-17 6:17 ` Christian König
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox