RE: [PATCH] drm/etnaviv: Use dma_resv locking wrappers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>-----Original Message-----
>From: dri-devel <dri-devel-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of
>Daniel Vetter
>Sent: Friday, December 13, 2019 7:09 PM
>To: DRI Development <dri-devel@xxxxxxxxxxxxxxxxxxxxx>
>Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>; etnaviv@xxxxxxxxxxxxxxxxxxxxx;
>Ruhl, Michael J <michael.j.ruhl@xxxxxxxxx>; Russell King
><linux+etnaviv@xxxxxxxxxxxxxxx>; Vetter, Daniel <daniel.vetter@xxxxxxxxx>
>Subject: [PATCH] drm/etnaviv: 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.
>
>v2: Fix the lost _interruptible (Michael)
>
>Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx>
>Cc: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
>Cc: Russell King <linux+etnaviv@xxxxxxxxxxxxxxx>
>Cc: Christian Gmeiner <christian.gmeiner@xxxxxxxxx>
>Cc: etnaviv@xxxxxxxxxxxxxxxxxxxxx
>Cc: "Ruhl, Michael J" <michael.j.ruhl@xxxxxxxxx>
>---
> drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
>diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
>b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
>index aa3e4c3b063a..3b0afa156d92 100644
>--- a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
>+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
>@@ -113,7 +113,7 @@ static void submit_unlock_object(struct
>etnaviv_gem_submit *submit, int i)
> 	if (submit->bos[i].flags & BO_LOCKED) {
> 		struct drm_gem_object *obj = &submit->bos[i].obj->base;
>
>-		ww_mutex_unlock(&obj->resv->lock);
>+		dma_resv_unlock(obj->resv);
> 		submit->bos[i].flags &= ~BO_LOCKED;
> 	}
> }
>@@ -133,8 +133,7 @@ static int submit_lock_objects(struct
>etnaviv_gem_submit *submit,
> 		contended = i;
>
> 		if (!(submit->bos[i].flags & BO_LOCKED)) {
>-			ret = ww_mutex_lock_interruptible(&obj->resv-
>>lock,
>-							  ticket);
>+			ret = dma_resv_lock_interruptible(obj->resv, ticket);

Thanks,

If you need it:

Acked-by: Michael J. Ruhl <michael.j.ruhl@xxxxxxxxx>

m

> 			if (ret == -EALREADY)
> 				DRM_ERROR("BO at index %u already on
>submit list\n",
> 					  i);
>@@ -161,8 +160,7 @@ static int submit_lock_objects(struct
>etnaviv_gem_submit *submit,
> 		obj = &submit->bos[contended].obj->base;
>
> 		/* we lost out in a seqno race, lock and retry.. */
>-		ret = ww_mutex_lock_slow_interruptible(&obj->resv->lock,
>-						       ticket);
>+		ret = dma_resv_lock_slow_interruptible(obj->resv, ticket);
> 		if (!ret) {
> 			submit->bos[contended].flags |= BO_LOCKED;
> 			slow_locked = contended;
>--
>2.24.0
>
>_______________________________________________
>dri-devel mailing list
>dri-devel@xxxxxxxxxxxxxxxxxxxxx
>https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux