drm/i915: Add messages usful for HPD strom detection debugging
Subsystems (2)
PATCH 1/1 drm/i915: Add messages usful for HPD strom detection debugging
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.
--- drivers/gpu/drm/i915/i915_irq.c | 7 +++++++ 1 file changed, 7 insertions(+)
drivers/gpu/drm/i915/i915_irq.c +7 -0
@@ -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 intterupt 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); } }
Signature · 1 line
1.8.1.4
Jani Nikula
maintainerQuoted 4 lines · Egbert Eich
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.
The code seems okay, please spellcheck the subject and debug prints! :)
BR,
Jani.
Quoted 45 lines
Signed-off-by Egbert Eich <[email protected]>--- drivers/gpu/drm/i915/i915_irq.c | 7 +++++++ 1 file changed, 7 insertions(+)drivers/gpu/drm/i915/i915_irq.c +7
-0@@ -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 intterupt 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); } }Signature · 6 lines
1.8.1.4 _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Signature · 1 line
Jani Nikula, Intel Open Source Technology Center
PATCH v2 1/1 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 <[email protected]>
--- drivers/gpu/drm/i915/i915_irq.c | 7 +++++++ 1 file changed, 7 insertions(+)
drivers/gpu/drm/i915/i915_irq.c +7 -0
@@ -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); } }
Signature · 1 line
1.8.1.4
Re: [PATCH V2] drm/i915: Add messages useful for HPD storm detection debugging (v2)
Quoted 6 lines · Egbert Eich
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 <[email protected]>
Quoted 40 lines
Signed-off-by Egbert Eich <[email protected]>--- drivers/gpu/drm/i915/i915_irq.c | 7 +++++++ 1 file changed, 7 insertions(+)drivers/gpu/drm/i915/i915_irq.c +7
-0@@ -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); } }Signature · 1 line
1.8.1.4
Signature · 1 line
Jani Nikula, Intel Open Source Technology Center
Daniel Vetter
AppliedRe: [PATCH V2] drm/i915: Add messages useful for HPD storm detection debugging (v2)
Quoted 9 lines · Jani Nikula
Quoted 6 lines · Egbert Eich
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 <[email protected]>
Reviewed-by Jani Nikula <[email protected]>
Queued for -next, thanks for the patch.
-Daniel
Signature · 3 lines
Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch