[Intel-gfx] [PATCH 1/4] drm/etnaviv: Use dma_resv locking wrappers

Ruhl, Michael J michael.j.ruhl at intel.com
Fri Dec 13 20:52:21 UTC 2019


>-----Original Message-----
>From: dri-devel <dri-devel-bounces at lists.freedesktop.org> On Behalf Of
>Daniel Vetter
>Sent: Friday, December 13, 2019 3:08 PM
>To: DRI Development <dri-devel at lists.freedesktop.org>
>Cc: Daniel Vetter <daniel.vetter at ffwll.ch>; Intel Graphics Development
><intel-gfx at lists.freedesktop.org>; etnaviv at lists.freedesktop.org; Russell
>King <linux+etnaviv at armlinux.org.uk>; Vetter, Daniel
><daniel.vetter at intel.com>
>Subject: Re: [PATCH 1/4] drm/etnaviv: Use dma_resv locking wrappers
>
>On Mon, Nov 25, 2019 at 10:43:53AM +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 <daniel.vetter at intel.com>
>> Cc: Lucas Stach <l.stach at pengutronix.de>
>> Cc: Russell King <linux+etnaviv at armlinux.org.uk>
>> Cc: Christian Gmeiner <christian.gmeiner at gmail.com>
>> Cc: etnaviv at lists.freedesktop.org
>
>Ping for some review/acks.
>
>Thanks, Daniel
>
>> ---
>>  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..947b21868e72 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(obj->resv, ticket);

Should this be dma_resv_lock_interruptible()?

Mike

>>  			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
>>
>
>--
>Daniel Vetter
>Software Engineer, Intel Corporation
>http://blog.ffwll.ch
>_______________________________________________
>dri-devel mailing list
>dri-devel at lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the Intel-gfx mailing list