Message ID | 20191125094356.161941-2-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | consistently use dma_resv locking wrappers | expand |
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@intel.com> > Cc: Lucas Stach <l.stach@pengutronix.de> > Cc: Russell King <linux+etnaviv@armlinux.org.uk> > Cc: Christian Gmeiner <christian.gmeiner@gmail.com> > Cc: etnaviv@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); > 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 >
>-----Original Message----- >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of >Daniel Vetter >Sent: Friday, December 13, 2019 3:08 PM >To: DRI Development <dri-devel@lists.freedesktop.org> >Cc: Daniel Vetter <daniel.vetter@ffwll.ch>; Intel Graphics Development ><intel-gfx@lists.freedesktop.org>; etnaviv@lists.freedesktop.org; Russell >King <linux+etnaviv@armlinux.org.uk>; Vetter, Daniel ><daniel.vetter@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@intel.com> >> Cc: Lucas Stach <l.stach@pengutronix.de> >> Cc: Russell King <linux+etnaviv@armlinux.org.uk> >> Cc: Christian Gmeiner <christian.gmeiner@gmail.com> >> Cc: etnaviv@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@lists.freedesktop.org >https://lists.freedesktop.org/mailman/listinfo/dri-devel
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); 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;
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@intel.com> Cc: Lucas Stach <l.stach@pengutronix.de> Cc: Russell King <linux+etnaviv@armlinux.org.uk> Cc: Christian Gmeiner <christian.gmeiner@gmail.com> Cc: etnaviv@lists.freedesktop.org --- drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)