Message ID | 20191214000927.1616384-1-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/etnaviv: Use dma_resv locking wrappers | expand |
>-----Original Message----- >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of >Daniel Vetter >Sent: Friday, December 13, 2019 7:09 PM >To: DRI Development <dri-devel@lists.freedesktop.org> >Cc: Daniel Vetter <daniel.vetter@ffwll.ch>; etnaviv@lists.freedesktop.org; >Ruhl, Michael J <michael.j.ruhl@intel.com>; Russell King ><linux+etnaviv@armlinux.org.uk>; Vetter, Daniel <daniel.vetter@intel.com> >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@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 >Cc: "Ruhl, Michael J" <michael.j.ruhl@intel.com> >--- > 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@intel.com> 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@lists.freedesktop.org >https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Sa, 2019-12-14 at 01:09 +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. > > v2: Fix the lost _interruptible (Michael) > > 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 > Cc: "Ruhl, Michael J" <michael.j.ruhl@intel.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> If you want to stack other stuff on top of this before the next merge window feel free to take it through drm-misc. Otherwise I'm going to pick it up with the next sweep. Regards, Lucas > --- > 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); > 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;
On Mon, Dec 16, 2019 at 04:14:34PM +0100, Lucas Stach wrote: > On Sa, 2019-12-14 at 01:09 +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. > > > > v2: Fix the lost _interruptible (Michael) > > > > 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 > > Cc: "Ruhl, Michael J" <michael.j.ruhl@intel.com> > > Reviewed-by: Lucas Stach <l.stach@pengutronix.de> > > If you want to stack other stuff on top of this before the next merge > window feel free to take it through drm-misc. Otherwise I'm going to > pick it up with the next sweep. I expect a fair amount of stacking in the dma-buf area in the near future , so applied all (except the i915 one, that's already superseeded with i915 specific work) to drm-misc-next. Thanks for review. -Daniel > > Regards, > Lucas > > > --- > > 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); > > 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; >
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); 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. v2: Fix the lost _interruptible (Michael) 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 Cc: "Ruhl, Michael J" <michael.j.ruhl@intel.com> --- drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)