From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 3/4] drm/i915: Cleanup handling of last_fenced_seqno Date: Sat, 19 Mar 2011 23:55:11 +0100 Message-ID: <20110319225510.GD16343@viiv.ffwll.ch> References: <1300487719-26578-1-git-send-email-chris@chris-wilson.co.uk> <1300487719-26578-4-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail.ffwll.ch (cable-static-216-94.intergga.ch [87.102.216.94]) by gabe.freedesktop.org (Postfix) with ESMTP id B18AC9E77E for ; Sat, 19 Mar 2011 15:55:25 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1300487719-26578-4-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Chris Wilson Cc: Andy Whitcroft , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org A few nitpicks below. > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 5201f82..2dbf8f7 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -2461,13 +2461,15 @@ i915_gem_object_flush_fence(struct drm_i915_gem_object *obj, > obj->fenced_gpu_access = false; > } > > + if (obj->last_fenced_seqno && > + ring_passed_seqno(obj->ring, obj->last_fenced_seqno)) > + obj->last_fenced_seqno = 0; This only avoids running the request retiring logic. Without this there are a few more things to simplify, I think: > if (obj->last_fenced_seqno && pipelined != obj->ring) { > - if (!ring_passed_seqno(obj->ring, obj->last_fenced_seqno)) { > - ret = i915_wait_request(obj->ring, > - obj->last_fenced_seqno); > - if (ret) > - return ret; > - } > + ret = i915_wait_request(obj->ring, > + obj->last_fenced_seqno); > + if (ret) > + return ret; > > obj->last_fenced_seqno = 0; Can't we move that (and the other copies) to move_off_active? > @@ -2648,15 +2650,18 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj, > old->last_fenced_seqno); > } Above here is the imo unnecessary clause mentioned in a previous patch. > > + obj->last_fenced_seqno = old->last_fenced_seqno; > drm_gem_object_unreference(&old->base); > - } else if (obj->last_fenced_seqno == 0) > - pipelined = NULL; > + } > > reg->obj = obj; > list_move_tail(®->lru_list, &dev_priv->mm.fence_list); > obj->fence_reg = reg - dev_priv->fence_regs; > > update: > + if (obj->last_fenced_seqno == 0) > + pipelined = NULL; > + > reg->setup_seqno = > pipelined ? i915_gem_next_request_seqno(pipelined) : 0; > reg->setup_ring = pipelined; -- Daniel Vetter Mail: daniel@ffwll.ch Mobile: +41 (0)79 365 57 48