From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/5] drm/i915: make waiting trace events more useful Date: Wed, 2 May 2012 23:12:36 +0200 Message-ID: <20120502211236.GC4101@phenom.ffwll.local> References: <1335738156-27706-3-git-send-email-ben@bwidawsk.net> <1335836423-1164-1-git-send-email-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-wg0-f43.google.com (mail-wg0-f43.google.com [74.125.82.43]) by gabe.freedesktop.org (Postfix) with ESMTP id ECE5E9E9B4 for ; Wed, 2 May 2012 14:11:31 -0700 (PDT) Received: by wgbdr1 with SMTP id dr1so858788wgb.12 for ; Wed, 02 May 2012 14:11:31 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1335836423-1164-1-git-send-email-ben@bwidawsk.net> 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: Ben Widawsky Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Mon, Apr 30, 2012 at 06:40:23PM -0700, Ben Widawsky wrote: > v2: Don't do a trace event per loop. (Chris) > Only get blocking/non-blocking info (Chris) > > Signed-off-by: Ben Widawsky > --- > drivers/gpu/drm/i915/i915_trace.h | 22 ++++++++++++++++++++-- > 1 file changed, 20 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h > index dac7bba..efdf322 100644 > --- a/drivers/gpu/drm/i915/i915_trace.h > +++ b/drivers/gpu/drm/i915/i915_trace.h > @@ -311,9 +311,27 @@ DEFINE_EVENT(i915_gem_request, i915_gem_request_retire, > TP_ARGS(ring, seqno) > ); > > -DEFINE_EVENT(i915_gem_request, i915_gem_request_wait_begin, > +TRACE_EVENT(i915_gem_request_wait_begin, > TP_PROTO(struct intel_ring_buffer *ring, u32 seqno), > - TP_ARGS(ring, seqno) > + TP_ARGS(ring, seqno), > + > + TP_STRUCT__entry( > + __field(u32, dev) > + __field(u32, ring) > + __field(u32, seqno) > + __field(bool, blocking) > + ), > + > + TP_fast_assign( > + __entry->dev = ring->dev->primary->index; > + __entry->ring = ring->id; > + __entry->seqno = seqno; > + __entry->blocking = mutex_is_locked(&ring->dev->struct_mutex); For consistency I guess we can ditch the dev parameter (and even then, the ring would uniquely identify the device). Also, I guess you need to explicitly pass in blocking, because mutex_is_locked is rather racy - someone else could hold the mutex while we're waiting in a non-blocking fashion. -Daniel > + ), > + > + TP_printk("dev=%u, ring=%u, seqno=%u, blocking=%s", > + __entry->dev, __entry->ring, __entry->seqno, > + __entry->blocking ? "yes" : "no") > ); > > DEFINE_EVENT(i915_gem_request, i915_gem_request_wait_end, > -- > 1.7.10 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Mail: daniel@ffwll.ch Mobile: +41 (0)79 365 57 48