Re: [Freedreno] [PATCH 3/4] drm/msm: Use dma_resv locking wrappers
On Fri, Dec 13, 2019 at 12:08 PM Daniel Vetter wrote: > > On Mon, Nov 25, 2019 at 10:43:55AM +0100, Daniel Vetter wrote: > > I'll add more fancy logic to them soon, so everyone really has to use > > them. Plus they already provide some nice additional debug > > infrastructure on top of direct ww_mutex usage for the fences tracked > > by dma_resv. > > > > Signed-off-by: Daniel Vetter > > Cc: Rob Clark > > Cc: Sean Paul > > Cc: linux-arm-...@vger.kernel.org > > Cc: freedreno@lists.freedesktop.org > > Ping for some review/acks. > > Thanks, Daniel > > > --- > > drivers/gpu/drm/msm/msm_gem_submit.c | 10 +- > > 1 file changed, 5 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c > > b/drivers/gpu/drm/msm/msm_gem_submit.c > > index 7d04c47d0023..385d4965a8d0 100644 > > --- a/drivers/gpu/drm/msm/msm_gem_submit.c > > +++ b/drivers/gpu/drm/msm/msm_gem_submit.c > > @@ -157,7 +157,7 @@ static void submit_unlock_unpin_bo(struct > > msm_gem_submit *submit, > > msm_gem_unpin_iova(&msm_obj->base, submit->aspace); > > > > if (submit->bos[i].flags & BO_LOCKED) > > - ww_mutex_unlock(&msm_obj->base.resv->lock); > > + dma_resv_unlock(msm_obj->base.resv); > > > > if (backoff && !(submit->bos[i].flags & BO_VALID)) > > submit->bos[i].iova = 0; > > @@ -180,8 +180,8 @@ static int submit_lock_objects(struct msm_gem_submit > > *submit) > > contended = i; > > > > if (!(submit->bos[i].flags & BO_LOCKED)) { > > - ret = > > ww_mutex_lock_interruptible(&msm_obj->base.resv->lock, > > - &submit->ticket); > > + ret = dma_resv_lock_interruptible(msm_obj->base.resv, > > + &submit->ticket); > > if (ret) > > goto fail; > > submit->bos[i].flags |= BO_LOCKED; > > @@ -202,8 +202,8 @@ static int submit_lock_objects(struct msm_gem_submit > > *submit) > > if (ret == -EDEADLK) { > > struct msm_gem_object *msm_obj = submit->bos[contended].obj; > > /* we lost out in a seqno race, lock and retry.. */ > > - ret = > > ww_mutex_lock_slow_interruptible(&msm_obj->base.resv->lock, > > - &submit->ticket); > > + ret = dma_resv_lock_slow_interruptible(msm_obj->base.resv, > > +&submit->ticket); > > if (!ret) { > > submit->bos[contended].flags |= BO_LOCKED; > > slow_locked = contended; > > -- > > 2.24.0 > > Reviewed-by: Eric Anholt ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno
Re: [Freedreno] [PATCH 3/4] drm/msm: Use dma_resv locking wrappers
On Mon, Nov 25, 2019 at 10:43:55AM +0100, Daniel Vetter wrote: > I'll add more fancy logic to them soon, so everyone really has to use > them. Plus they already provide some nice additional debug > infrastructure on top of direct ww_mutex usage for the fences tracked > by dma_resv. > > Signed-off-by: Daniel Vetter > Cc: Rob Clark > Cc: Sean Paul > Cc: linux-arm-...@vger.kernel.org > Cc: freedreno@lists.freedesktop.org Ping for some review/acks. Thanks, Daniel > --- > drivers/gpu/drm/msm/msm_gem_submit.c | 10 +- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c > b/drivers/gpu/drm/msm/msm_gem_submit.c > index 7d04c47d0023..385d4965a8d0 100644 > --- a/drivers/gpu/drm/msm/msm_gem_submit.c > +++ b/drivers/gpu/drm/msm/msm_gem_submit.c > @@ -157,7 +157,7 @@ static void submit_unlock_unpin_bo(struct msm_gem_submit > *submit, > msm_gem_unpin_iova(&msm_obj->base, submit->aspace); > > if (submit->bos[i].flags & BO_LOCKED) > - ww_mutex_unlock(&msm_obj->base.resv->lock); > + dma_resv_unlock(msm_obj->base.resv); > > if (backoff && !(submit->bos[i].flags & BO_VALID)) > submit->bos[i].iova = 0; > @@ -180,8 +180,8 @@ static int submit_lock_objects(struct msm_gem_submit > *submit) > contended = i; > > if (!(submit->bos[i].flags & BO_LOCKED)) { > - ret = > ww_mutex_lock_interruptible(&msm_obj->base.resv->lock, > - &submit->ticket); > + ret = dma_resv_lock_interruptible(msm_obj->base.resv, > + &submit->ticket); > if (ret) > goto fail; > submit->bos[i].flags |= BO_LOCKED; > @@ -202,8 +202,8 @@ static int submit_lock_objects(struct msm_gem_submit > *submit) > if (ret == -EDEADLK) { > struct msm_gem_object *msm_obj = submit->bos[contended].obj; > /* we lost out in a seqno race, lock and retry.. */ > - ret = > ww_mutex_lock_slow_interruptible(&msm_obj->base.resv->lock, > - &submit->ticket); > + ret = dma_resv_lock_slow_interruptible(msm_obj->base.resv, > +&submit->ticket); > if (!ret) { > submit->bos[contended].flags |= BO_LOCKED; > slow_locked = contended; > -- > 2.24.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno
[Freedreno] [PATCH 3/4] drm/msm: Use dma_resv locking wrappers
I'll add more fancy logic to them soon, so everyone really has to use them. Plus they already provide some nice additional debug infrastructure on top of direct ww_mutex usage for the fences tracked by dma_resv. Signed-off-by: Daniel Vetter Cc: Rob Clark Cc: Sean Paul Cc: linux-arm-...@vger.kernel.org Cc: freedreno@lists.freedesktop.org --- drivers/gpu/drm/msm/msm_gem_submit.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c index 7d04c47d0023..385d4965a8d0 100644 --- a/drivers/gpu/drm/msm/msm_gem_submit.c +++ b/drivers/gpu/drm/msm/msm_gem_submit.c @@ -157,7 +157,7 @@ static void submit_unlock_unpin_bo(struct msm_gem_submit *submit, msm_gem_unpin_iova(&msm_obj->base, submit->aspace); if (submit->bos[i].flags & BO_LOCKED) - ww_mutex_unlock(&msm_obj->base.resv->lock); + dma_resv_unlock(msm_obj->base.resv); if (backoff && !(submit->bos[i].flags & BO_VALID)) submit->bos[i].iova = 0; @@ -180,8 +180,8 @@ static int submit_lock_objects(struct msm_gem_submit *submit) contended = i; if (!(submit->bos[i].flags & BO_LOCKED)) { - ret = ww_mutex_lock_interruptible(&msm_obj->base.resv->lock, - &submit->ticket); + ret = dma_resv_lock_interruptible(msm_obj->base.resv, + &submit->ticket); if (ret) goto fail; submit->bos[i].flags |= BO_LOCKED; @@ -202,8 +202,8 @@ static int submit_lock_objects(struct msm_gem_submit *submit) if (ret == -EDEADLK) { struct msm_gem_object *msm_obj = submit->bos[contended].obj; /* we lost out in a seqno race, lock and retry.. */ - ret = ww_mutex_lock_slow_interruptible(&msm_obj->base.resv->lock, - &submit->ticket); + ret = dma_resv_lock_slow_interruptible(msm_obj->base.resv, + &submit->ticket); if (!ret) { submit->bos[contended].flags |= BO_LOCKED; slow_locked = contended; -- 2.24.0 ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno