2022-11-01 21:58:39

by Rob Clark

[permalink] [raw]
Subject: [PATCH] drm/msm: Remove exclusive-fence hack

From: Rob Clark <[email protected]>

The workaround was initially necessary due to dma_resv having only a
single exclusive fence slot, yet whe don't necessarily know what order
the gpu scheduler will schedule jobs. Unfortunately this workaround
also has the result of forcing implicit sync, even when userspace does
not want it.

However, since commit 047a1b877ed4 ("dma-buf & drm/amdgpu: remove
dma_resv workaround") the workaround is no longer needed. So remove
it. This effectively reverts commit f1b3f696a084 ("drm/msm: Don't
break exclusive fence ordering")

Signed-off-by: Rob Clark <[email protected]>
---
drivers/gpu/drm/msm/msm_gem_submit.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c
index 5599d93ec0d2..cc48f73adadf 100644
--- a/drivers/gpu/drm/msm/msm_gem_submit.c
+++ b/drivers/gpu/drm/msm/msm_gem_submit.c
@@ -334,8 +334,7 @@ static int submit_fence_sync(struct msm_gem_submit *submit, bool no_implicit)
if (ret)
return ret;

- /* exclusive fences must be ordered */
- if (no_implicit && !write)
+ if (no_implicit)
continue;

ret = drm_sched_job_add_implicit_dependencies(&submit->base,
--
2.38.1



2022-11-02 11:14:29

by Christian König

[permalink] [raw]
Subject: Re: [PATCH] drm/msm: Remove exclusive-fence hack

Am 01.11.22 um 22:40 schrieb Rob Clark:
> From: Rob Clark <[email protected]>
>
> The workaround was initially necessary due to dma_resv having only a
> single exclusive fence slot, yet whe don't necessarily know what order
> the gpu scheduler will schedule jobs. Unfortunately this workaround
> also has the result of forcing implicit sync, even when userspace does
> not want it.
>
> However, since commit 047a1b877ed4 ("dma-buf & drm/amdgpu: remove
> dma_resv workaround") the workaround is no longer needed. So remove
> it. This effectively reverts commit f1b3f696a084 ("drm/msm: Don't
> break exclusive fence ordering")
>
> Signed-off-by: Rob Clark <[email protected]>

Oh, yes please. I had that on my todo list for after the initial patch
had landed, but couldn't find the time to look into it once more.

There was another case with one of the other ARM drivers which could be
cleaned up now, but I can't find it any more of hand.

Anyway this patch here is Acked-by: Christian König
<[email protected]>.

Regards,
Christian.

> ---
> drivers/gpu/drm/msm/msm_gem_submit.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c
> index 5599d93ec0d2..cc48f73adadf 100644
> --- a/drivers/gpu/drm/msm/msm_gem_submit.c
> +++ b/drivers/gpu/drm/msm/msm_gem_submit.c
> @@ -334,8 +334,7 @@ static int submit_fence_sync(struct msm_gem_submit *submit, bool no_implicit)
> if (ret)
> return ret;
>
> - /* exclusive fences must be ordered */
> - if (no_implicit && !write)
> + if (no_implicit)
> continue;
>
> ret = drm_sched_job_add_implicit_dependencies(&submit->base,


2022-11-02 16:34:55

by Rob Clark

[permalink] [raw]
Subject: Re: [PATCH] drm/msm: Remove exclusive-fence hack

On Wed, Nov 2, 2022 at 3:46 AM Christian König <[email protected]> wrote:
>
> Am 01.11.22 um 22:40 schrieb Rob Clark:
> > From: Rob Clark <[email protected]>
> >
> > The workaround was initially necessary due to dma_resv having only a
> > single exclusive fence slot, yet whe don't necessarily know what order
> > the gpu scheduler will schedule jobs. Unfortunately this workaround
> > also has the result of forcing implicit sync, even when userspace does
> > not want it.
> >
> > However, since commit 047a1b877ed4 ("dma-buf & drm/amdgpu: remove
> > dma_resv workaround") the workaround is no longer needed. So remove
> > it. This effectively reverts commit f1b3f696a084 ("drm/msm: Don't
> > break exclusive fence ordering")
> >
> > Signed-off-by: Rob Clark <[email protected]>
>
> Oh, yes please. I had that on my todo list for after the initial patch
> had landed, but couldn't find the time to look into it once more.
>
> There was another case with one of the other ARM drivers which could be
> cleaned up now, but I can't find it any more of hand.
>
> Anyway this patch here is Acked-by: Christian König
> <[email protected]>.

Thanks.. I had a quick look for the other driver but couldn't spot
anything, so perhaps it has already been fixed?

BR,
-R

>
> Regards,
> Christian.
>
> > ---
> > drivers/gpu/drm/msm/msm_gem_submit.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c
> > index 5599d93ec0d2..cc48f73adadf 100644
> > --- a/drivers/gpu/drm/msm/msm_gem_submit.c
> > +++ b/drivers/gpu/drm/msm/msm_gem_submit.c
> > @@ -334,8 +334,7 @@ static int submit_fence_sync(struct msm_gem_submit *submit, bool no_implicit)
> > if (ret)
> > return ret;
> >
> > - /* exclusive fences must be ordered */
> > - if (no_implicit && !write)
> > + if (no_implicit)
> > continue;
> >
> > ret = drm_sched_job_add_implicit_dependencies(&submit->base,
>