[Intel-gfx] [PATCH] drm/i915: add turbo boost trace point
Daniel Vetter
daniel at ffwll.ch
Wed Nov 19 15:00:04 CET 2014
On Tue, Nov 18, 2014 at 01:12:29PM -0800, Jesse Barnes wrote:
> Might be helpful for debugging places where userspace ends up boosting
> or waiting where it doesn't intend to.
Might be feels a bit weak justification for a new tracepoint imo. Please
drum up more support.
> Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
> ---
> drivers/gpu/drm/i915/i915_gem.c | 6 ++++--
> drivers/gpu/drm/i915/i915_trace.h | 15 +++++++++++++++
> drivers/gpu/drm/i915/intel_pm.c | 9 +++++++--
> 3 files changed, 26 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 86cf428..b03cb07 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -4209,8 +4209,10 @@ i915_gem_object_ggtt_unpin(struct drm_i915_gem_object *obj)
> struct i915_vma *vma = i915_gem_obj_to_ggtt(obj);
>
> BUG_ON(!vma);
> - BUG_ON(vma->pin_count == 0);
> - BUG_ON(!i915_gem_obj_ggtt_bound(obj));
> + if (WARN(vma->pin_count == 0, "bad pin count\n"))
> + return;
> + if (WARN(!i915_gem_obj_ggtt_bound(obj), "obj not bound\n"))
> + return;
Separate patch. Can you please split it out with the usual "BUG_ON
considered harmful" commit message?
Thanks, Daniel
>
> if (--vma->pin_count == 0)
> obj->pin_mappable = false;
> diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
> index 751d4ad..d710fe1 100644
> --- a/drivers/gpu/drm/i915/i915_trace.h
> +++ b/drivers/gpu/drm/i915/i915_trace.h
> @@ -691,6 +691,21 @@ TRACE_EVENT(switch_mm,
> __entry->dev, __entry->ring, __entry->to, __entry->vm)
> );
>
> +TRACE_EVENT(turbo_boost,
> + TP_PROTO(u32 freq),
> + TP_ARGS(freq),
> +
> + TP_STRUCT__entry(
> + __field(u32, freq)
> + ),
> +
> + TP_fast_assign(
> + __entry->freq = freq;
> + ),
> +
> + TP_printk("turbo boost to %d MHz", __entry->freq)
> +);
> +
> #endif /* _I915_TRACE_H_ */
>
> /* This part must be outside protection */
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 7558ba2..2944593 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -4483,10 +4483,15 @@ void gen6_rps_boost(struct drm_i915_private *dev_priv)
>
> mutex_lock(&dev_priv->rps.hw_lock);
> if (dev_priv->rps.enabled) {
> - if (IS_VALLEYVIEW(dev))
> + if (IS_VALLEYVIEW(dev)) {
> valleyview_set_rps(dev_priv->dev, dev_priv->rps.max_freq_softlimit);
> - else
> + trace_turbo_boost(vlv_gpu_freq(dev_priv,
> + dev_priv->rps.max_freq_softlimit));
> + } else {
> gen6_set_rps(dev_priv->dev, dev_priv->rps.max_freq_softlimit);
> + trace_turbo_boost(dev_priv->rps.max_freq_softlimit * 50);
> + }
> +
> dev_priv->rps.last_adj = 0;
> }
> mutex_unlock(&dev_priv->rps.hw_lock);
> --
> 1.9.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at 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
More information about the Intel-gfx
mailing list