From mboxrd@z Thu Jan 1 00:00:00 1970 From: Egbert Eich Subject: Re: i915 irq storm mitigation in 3.10 Date: Tue, 23 Jul 2013 13:26:30 +0200 Message-ID: <20974.26726.659962.223064@linux-qknr.site> References: <2b828191fde71b2243f883e2dbb28d6d@hz6.de> <20130708200316.GG18285@phenom.ffwll.local> <20972.59257.635588.597578@linux-qknr.site> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTP id 26171E5EB5 for ; Tue, 23 Jul 2013 04:26:36 -0700 (PDT) In-Reply-To: jn@hz6.de wrote on Monday, 22 July 2013 at 21:28:33 +0200 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: Jan Niggemann Cc: Egbert Eich , intel-gfx List-Id: intel-gfx@lists.freedesktop.org Hi Jan - Jan Niggemann writes: > > As to the log: I messed up the kernel parameters this morning... was > out of coffee this morning and my 1,5y daughter played around me :-) > > Here's my kernel log with drm.debug and printk.time enabled: > Uncompressed (22M): http://files.hz6.de/kern_20130722.log > bzip2'd (some 600 KB): http://files.hz6.de/kern_20130722.log.bz2 I've looked at the logs a bit more. Here's a patch adding some more debug information. Would you please apply this to your 3.10 kernel and generate a log file the same way as you did before. The driver will be even more chatty - but I don't expect any problems from this. Cheers, Egbert. diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index e43d809..46bb77c 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -919,6 +919,11 @@ 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++) { + if (IS_G4X(dev) && (hpd[i] & hotplug_trigger) && + dev_priv->hpd_stats[i].hpd_mark != HPD_ENABLED) + DRM_DEBUG_KMS("Received HPD intterupt although disabled\n", + I915_READ(PORT_HOTPLUG_EN)); + if (!(hpd[i] & hotplug_trigger) || dev_priv->hpd_stats[i].hpd_mark != HPD_ENABLED) continue; @@ -929,6 +934,8 @@ 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 - jiffies: %d\n", i, + dev_priv->hpd_stats[i].hpd_last_jiffies); } 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 +943,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); } }