From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 09/13] drm/i915: Add a tracepoint for using a semaphore Date: Wed, 25 Sep 2013 12:34:37 +0300 Message-ID: <20130925093437.GL4531@intel.com> References: <1379968410-14428-1-git-send-email-rodrigo.vivi@gmail.com> <1379968410-14428-10-git-send-email-rodrigo.vivi@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by gabe.freedesktop.org (Postfix) with ESMTP id F3680E5C79 for ; Wed, 25 Sep 2013 02:34:41 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1379968410-14428-10-git-send-email-rodrigo.vivi@gmail.com> 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: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Mon, Sep 23, 2013 at 05:33:26PM -0300, Rodrigo Vivi wrote: > From: Chris Wilson > = > So that we can find the callers who introduce a ring stall. A single > ring stall is not too unwelcome, the right issue becomes when they start > to interlock and prevent any concurrent work. That, however, is a little > tricker to detect with a mere tracepoint! > = > v2: Rebrand it as a ring event, rather than an object event. > = > Signed-off-by: Chris Wilson > Signed-off-by: Rodrigo Vivi Just wondering if we would want to see the seqno(s) in the trace as well? But anyway, the patch looks fine. Reviewed-by: Ville Syrj=E4l=E4 > --- > drivers/gpu/drm/i915/i915_gem.c | 2 ++ > drivers/gpu/drm/i915/i915_trace.h | 19 +++++++++++++++++++ > 2 files changed, 21 insertions(+) > = > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_= gem.c > index d68cc5c..4a16491 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -2614,6 +2614,8 @@ i915_gem_object_sync(struct drm_i915_gem_object *ob= j, > if (ret) > return ret; > = > + trace_i915_gem_ring_sync_to(from, to); > + > ret =3D to->sync_to(to, from, seqno); > if (!ret) > /* We use last_read_seqno because sync_to() > diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i91= 5_trace.h > index 5c8e36a..48e8f07 100644 > --- a/drivers/gpu/drm/i915/i915_trace.h > +++ b/drivers/gpu/drm/i915/i915_trace.h > @@ -233,6 +233,25 @@ TRACE_EVENT(i915_gem_evict_everything, > TP_printk("dev=3D%d", __entry->dev) > ); > = > +TRACE_EVENT(i915_gem_ring_sync_to, > + TP_PROTO(struct intel_ring_buffer *from, struct intel_ring_buffer *= to), > + TP_ARGS(from, to), > + > + TP_STRUCT__entry( > + __field(u32, dev) > + __field(u32, sync_from) > + __field(u32, sync_to) > + ), > + > + TP_fast_assign( > + __entry->dev =3D from->dev->primary->index; > + __entry->sync_from =3D from->id; > + __entry->sync_to =3D to->id; > + ), > + > + TP_printk("dev=3D%u, sync-from=3D%u, sync-to=3D%u", __entry->dev, _= _entry->sync_from, __entry->sync_to) > +); > + > TRACE_EVENT(i915_gem_ring_dispatch, > TP_PROTO(struct intel_ring_buffer *ring, u32 flags), > TP_ARGS(ring, flags), > -- = > 1.8.1.4 > = > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- = Ville Syrj=E4l=E4 Intel OTC