[Intel-gfx] [PATCH V2] drm/i915: Add messages useful for HPD storm detection debugging (v2)
For HPD storm detection we now mask out individual interrupt source bits. We have already seen a case where HPD interrupt enable bits were assigned to the wrong pins. To track these conditions more easily add some debugging messages. v2: Spelling fixes as suggested by Jani Nikula jani.nik...@linux.intel.com Signed-off-by: Egbert Eich e...@suse.de --- drivers/gpu/drm/i915/i915_irq.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index ee3e49c..6a1c207 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -919,6 +919,10 @@ static inline void intel_hpd_irq_handler(struct drm_device *dev, spin_lock(dev_priv-irq_lock); for (i = 1; i HPD_NUM_PINS; i++) { + WARN(((hpd[i] hotplug_trigger) + dev_priv-hpd_stats[i].hpd_mark != HPD_ENABLED), +Received HPD interrupt although disabled\n); + if (!(hpd[i] hotplug_trigger) || dev_priv-hpd_stats[i].hpd_mark != HPD_ENABLED) continue; @@ -929,6 +933,7 @@ static inline void intel_hpd_irq_handler(struct drm_device *dev, + msecs_to_jiffies(HPD_STORM_DETECT_PERIOD))) { dev_priv-hpd_stats[i].hpd_last_jiffies = jiffies; dev_priv-hpd_stats[i].hpd_cnt = 0; + DRM_DEBUG_KMS(Received HPD interrupt on PIN %d - cnt: 0\n, i); } else if (dev_priv-hpd_stats[i].hpd_cnt HPD_STORM_THRESHOLD) { dev_priv-hpd_stats[i].hpd_mark = HPD_MARK_DISABLED; dev_priv-hpd_event_bits = ~(1 i); @@ -936,6 +941,8 @@ static inline void intel_hpd_irq_handler(struct drm_device *dev, storm_detected = true; } else { dev_priv-hpd_stats[i].hpd_cnt++; + DRM_DEBUG_KMS(Received HPD interrupt on PIN %d - cnt: %d\n, i, + dev_priv-hpd_stats[i].hpd_cnt); } } -- 1.8.1.4 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH V2] drm/i915: Add messages useful for HPD storm detection debugging (v2)
On Fri, 26 Jul 2013, Egbert Eich e...@suse.de wrote: For HPD storm detection we now mask out individual interrupt source bits. We have already seen a case where HPD interrupt enable bits were assigned to the wrong pins. To track these conditions more easily add some debugging messages. v2: Spelling fixes as suggested by Jani Nikula jani.nik...@linux.intel.com Reviewed-by: Jani Nikula jani.nik...@intel.com Signed-off-by: Egbert Eich e...@suse.de --- drivers/gpu/drm/i915/i915_irq.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index ee3e49c..6a1c207 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -919,6 +919,10 @@ static inline void intel_hpd_irq_handler(struct drm_device *dev, spin_lock(dev_priv-irq_lock); for (i = 1; i HPD_NUM_PINS; i++) { + WARN(((hpd[i] hotplug_trigger) + dev_priv-hpd_stats[i].hpd_mark != HPD_ENABLED), + Received HPD interrupt although disabled\n); + if (!(hpd[i] hotplug_trigger) || dev_priv-hpd_stats[i].hpd_mark != HPD_ENABLED) continue; @@ -929,6 +933,7 @@ static inline void intel_hpd_irq_handler(struct drm_device *dev, + msecs_to_jiffies(HPD_STORM_DETECT_PERIOD))) { dev_priv-hpd_stats[i].hpd_last_jiffies = jiffies; dev_priv-hpd_stats[i].hpd_cnt = 0; + DRM_DEBUG_KMS(Received HPD interrupt on PIN %d - cnt: 0\n, i); } else if (dev_priv-hpd_stats[i].hpd_cnt HPD_STORM_THRESHOLD) { dev_priv-hpd_stats[i].hpd_mark = HPD_MARK_DISABLED; dev_priv-hpd_event_bits = ~(1 i); @@ -936,6 +941,8 @@ static inline void intel_hpd_irq_handler(struct drm_device *dev, storm_detected = true; } else { dev_priv-hpd_stats[i].hpd_cnt++; + DRM_DEBUG_KMS(Received HPD interrupt on PIN %d - cnt: %d\n, i, + dev_priv-hpd_stats[i].hpd_cnt); } } -- 1.8.1.4 -- Jani Nikula, Intel Open Source Technology Center ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH V2] drm/i915: Add messages useful for HPD storm detection debugging (v2)
On Fri, Jul 26, 2013 at 03:23:54PM +0300, Jani Nikula wrote: On Fri, 26 Jul 2013, Egbert Eich e...@suse.de wrote: For HPD storm detection we now mask out individual interrupt source bits. We have already seen a case where HPD interrupt enable bits were assigned to the wrong pins. To track these conditions more easily add some debugging messages. v2: Spelling fixes as suggested by Jani Nikula jani.nik...@linux.intel.com Reviewed-by: Jani Nikula jani.nik...@intel.com Queued for -next, thanks for the patch. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx