From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 6/6] drm/i915: Convert the register access tracepoint to be conditional Date: Thu, 25 Jul 2013 10:48:21 +0200 Message-ID: <20130725084821.GG5939@phenom.ffwll.local> References: <1374262616-2099-1-git-send-email-chris@chris-wilson.co.uk> <1374262616-2099-6-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-ea0-f178.google.com (mail-ea0-f178.google.com [209.85.215.178]) by gabe.freedesktop.org (Postfix) with ESMTP id 538DEE6EF4 for ; Thu, 25 Jul 2013 01:48:23 -0700 (PDT) Received: by mail-ea0-f178.google.com with SMTP id l15so756055eak.23 for ; Thu, 25 Jul 2013 01:48:22 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1374262616-2099-6-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Fri, Jul 19, 2013 at 08:36:56PM +0100, Chris Wilson wrote: > The TRACE_EVENT_CONDITION is supposed to generate more efficient code > than if (cond) trace(), which is what we are currently using inside the > register access functions. > > v2: Rebase onto uncore > > Signed-off-by: Chris Wilson Ok, merged the remaining patches in this series. The "move functions around" one need a bit of wrestling to fit, but I think I've done it correctly. -Daniel > --- > drivers/gpu/drm/i915/i915_debugfs.c | 2 +- > drivers/gpu/drm/i915/i915_trace.h | 8 +++++--- > drivers/gpu/drm/i915/intel_uncore.c | 4 ++-- > 3 files changed, 8 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c > index 0513743..cc3e74a 100644 > --- a/drivers/gpu/drm/i915/i915_debugfs.c > +++ b/drivers/gpu/drm/i915/i915_debugfs.c > @@ -1004,7 +1004,7 @@ static int gen6_drpc_info(struct seq_file *m) > } > > gt_core_status = readl(dev_priv->regs + GEN6_GT_CORE_STATUS); > - trace_i915_reg_rw(false, GEN6_GT_CORE_STATUS, gt_core_status, 4); > + trace_i915_reg_rw(false, GEN6_GT_CORE_STATUS, gt_core_status, 4, true); > > rpmodectl1 = I915_READ(GEN6_RP_CONTROL); > rcctl1 = I915_READ(GEN6_RC_CONTROL); > diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h > index 7d283b5..2933e2f 100644 > --- a/drivers/gpu/drm/i915/i915_trace.h > +++ b/drivers/gpu/drm/i915/i915_trace.h > @@ -406,10 +406,12 @@ TRACE_EVENT(i915_flip_complete, > TP_printk("plane=%d, obj=%p", __entry->plane, __entry->obj) > ); > > -TRACE_EVENT(i915_reg_rw, > - TP_PROTO(bool write, u32 reg, u64 val, int len), > +TRACE_EVENT_CONDITION(i915_reg_rw, > + TP_PROTO(bool write, u32 reg, u64 val, int len, bool trace), > > - TP_ARGS(write, reg, val, len), > + TP_ARGS(write, reg, val, len, trace), > + > + TP_CONDITION(trace), > > TP_STRUCT__entry( > __field(u64, val) > diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c > index 2c39467..b2703db 100644 > --- a/drivers/gpu/drm/i915/intel_uncore.c > +++ b/drivers/gpu/drm/i915/intel_uncore.c > @@ -361,7 +361,7 @@ u##x i915_read##x(struct drm_i915_private *dev_priv, u32 reg, bool trace) { \ > val = __raw_i915_read##x(dev_priv, reg); \ > } \ > spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags); \ > - if (trace) trace_i915_reg_rw(false, reg, val, sizeof(val)); \ > + trace_i915_reg_rw(false, reg, val, sizeof(val), trace); \ > return val; \ > } > > @@ -375,7 +375,7 @@ __i915_read(64) > void i915_write##x(struct drm_i915_private *dev_priv, u32 reg, u##x val, bool trace) { \ > unsigned long irqflags; \ > u32 __fifo_ret = 0; \ > - if (trace) trace_i915_reg_rw(true, reg, val, sizeof(val)); \ > + trace_i915_reg_rw(true, reg, val, sizeof(val), trace); \ > spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); \ > if (NEEDS_FORCE_WAKE((dev_priv), (reg))) { \ > __fifo_ret = __gen6_gt_wait_for_fifo(dev_priv); \ > -- > 1.8.3.2 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch