From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [KERNEL] Regression bug in drm/i915, Wrong assumption in commit e11aa36 breaks suspend on at least lenovo x61 Date: Thu, 19 Feb 2015 10:47:53 +0000 Message-ID: <54E5BF59.4020208@intel.com> References: <20150211113919.GA5672@ikki.ethgen.ch> <20150216221142.GB14602@ikki.ethgen.ch> <20150217082937.GA27873@ikki.ethgen.ch> <87mw4bw7o7.fsf@intel.com> <1424276692.27236.1.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1424276692.27236.1.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: imre.deak@intel.com, Jani Nikula Cc: Klaus Ethgen , "intel-gfx@lists.freedesktop.org" , linux-kernel@vger.kernel.org, dri-devel List-Id: dri-devel@lists.freedesktop.org T24gMTgvMDIvMTUgMTY6MjQsIEltcmUgRGVhayB3cm90ZToKPiBPbiBrZSwgMjAxNS0wMi0xOCBh dCAxNzozOSArMDIwMCwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4+IE9uIFR1ZSwgMTcgRmViIDIwMTUs IEtsYXVzIEV0aGdlbiA8S2xhdXMrbGttbEBldGhnZW4uZGU+IHdyb3RlOgo+Pj4gQWZ0ZXIgc29s dmluZyAgdGhlIGNvbmZsaWN0cywgSSBhcHBsaWVkIHRoZSByZXZlcnQgKHNlZSBhdHRhY2htZW50 KSB0bwo+Pj4gdjMuMTguNy4gSSB0aGluayBpdCBzaG91bGQgYWxzbyBhcHBseSB0byB0aGUgY3Vy cmVudCBoZWFkLiBXaXRoIHRoYXQKPj4+IHBhdGNoLCBzdXNwZW5kIGlzIHdvcmtpbmcgYWdhaW4g b24gdGhhdCB2ZXJzaW9uLgo+Pj4KPj4+IEhvd2V2ZXIsIEkgaGF2ZSBub3QgdG8gZGVlcCBrbm93 bGVkZ2Ugb2YgdGhhdCBzdWJzeXN0ZW0sIHNvIHBsZWFzZSwKPj4+IHNvbWVvbmUgd2hvIGhhdmUs IGhhdmUgYSBkZWVwZXIgbG9vayBpbnRvIGl0LiBJIGVzcGVjaWFsbHkgZG8gbm90IGtub3cKPj4+ IGlmIHRoZSBsaW5lcyBpbiAuLi4vaW50ZWxfcG0uYyBhcmUgY29ycmVjdCBvciBiZXR0ZXIgbGVh dmluZyB0aGVtIGFzCj4+PiB0aGV5IGFyZSBpbiB2My4xOC43Lgo+Pj4KPj4+IEkgd2FudCB0byBo YXZlIGl0IHdvcmtpbmcgb24gYSB2ZXJzaW9uIHRoYXQgSSBrbm93IGlzIHN0YWJsZSBiZWZvcmUK Pj4+IGFza2luZyB0byBwdWxsIGl0IHRvIGhlYWQuCj4+Cj4+IEhpIEtsYXVzLCB3ZSBmZWFyIHRo aXMgcGF0Y2ggbWF5IGhpZGUgdGhlIGFjdHVhbCBjYXVzZS4gV291bGQgYmUgdXNlZnVsCj4+IHRv IGdldCBhIGJldHRlciBkZXNjcmlwdGlvbiBvZiB3aGF0IGhhcHBlbnMsIGFsb25nIHdpdGggYSBk bWVzZyB3aXRoCj4+IGRybS5kZWJ1Zz0xNCBtb2R1bGUgcGFyYW1ldGVyIHNldC4gVGhpcyBtaWdo dCBjbHV0dGVyIHRoZSBtYWlsaW5nIGxpc3QsCj4+IHdvdWxkIHlvdSBtaW5kIGZpbGluZyBhIGJ1 ZyBhdCBbMV0gYW5kIGF0dGFjaCB0aGUgaW5mbyB0aGVyZT8KPj4KPj4gVGhhbmtzLAo+PiBKYW5p Lgo+Pgo+PiBbMV0gaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9lbnRlcl9idWcuY2dpP3By b2R1Y3Q9RFJJJmNvbXBvbmVudD1EUk0vSW50ZWwKPiAKPiBJbiBhZGRpdGlvbiB0byB0aGUgYWJv dmUgY291bGQgeW91IGFsc28gdHJ5IHRoZSBmb2xsb3dpbmcgcGF0Y2ggYW5kCj4gcHJvdmlkZSBh IGRtZXNnIGxvZyBvbiB0aGUgYnVnemlsbGEgdGlja2V0IC0gYXQgdGhpcyBwb2ludCBvbmx5IHRv IHRyeQo+IHRvIG5hcnJvdyBkb3duIHRoZSBpc3N1ZT86Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jCj4gaW5kZXggZDM1OGNlOC4uMDJjNjVmNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEu Ywo+IEBAIC00NDY2LDYgKzQ0NjYsMTQgQEAgc3RhdGljIGlycXJldHVybl90IGk5NjVfaXJxX2hh bmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQo+ICAJCUk5MTVfRElTUExBWV9QTEFORV9BX0ZMSVBf UEVORElOR19JTlRFUlJVUFQgfAo+ICAJCUk5MTVfRElTUExBWV9QTEFORV9CX0ZMSVBfUEVORElO R19JTlRFUlJVUFQ7Cj4gIAo+ICsJaWYgKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKSB7 Cj4gKwkJaWYgKHByaW50a19yYXRlbGltaXQoKSkKPiArCQkJRFJNX0VSUk9SKCJzcHVyaW91cy9z aGFyZWQgaW50ZXJydXB0IGlpciAlMDh4IGltciAlMDh4IGllciAlMDh4XG4iLAo+ICsJCQkJICBJ OTE1X1JFQUQoSUlSKSwgSTkxNV9SRUFEKElNUiksIEk5MTVfUkVBRChJRVIpKTsKPiArCj4gKwkJ cmV0dXJuIElSUV9OT05FOwo+ICsJfQo+ICsKPiAgCWlpciA9IEk5MTVfUkVBRChJSVIpOwo+ICAK PiAgCWZvciAoOzspIHsKPiBAQCAtNDc2Niw3ICs0Nzc0LDEwIEBAIHZvaWQgaW50ZWxfcnVudGlt ZV9wbV9kaXNhYmxlX2ludGVycnVwdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAo+ICAJ ZGV2LT5kcml2ZXItPmlycV91bmluc3RhbGwoZGV2KTsKPiArCj4gKwlzcGluX2xvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxX2xvY2spOwo+ICAJZGV2X3ByaXYtPnBtLl9pcnFzX2Rpc2FibGVkID0gdHJ1 ZTsKPiArCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiAgfQo+ICAKPiAg LyogUmVzdG9yZSBpbnRlcnJ1cHRzIHNvIHdlIGNhbiByZWNvdmVyIGZyb20gcnVudGltZSBQTS4g Ki8KPiBAQCAtNDc3NCw3ICs0Nzg1LDEwIEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9yZXN0b3Jl X2ludGVycnVwdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCj4gKwlzcGluX2xv Y2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICAJZGV2X3ByaXYtPnBtLl9pcnFzX2Rpc2Fi bGVkID0gZmFsc2U7Cj4gKwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4g Kwo+ICAJZGV2LT5kcml2ZXItPmlycV9wcmVpbnN0YWxsKGRldik7Cj4gIAlkZXYtPmRyaXZlci0+ aXJxX3Bvc3RpbnN0YWxsKGRldik7Cj4gIH0KClN1cmVseSBzdXJyb3VuZGluZyAod2hhdCBvdWdo dCB0byBiZSkgYW4gYXRvbWljIGFzc2lnbm1lbnQgdG8gYSBzaW5nbGUKdmFyaWFibGUgY2Fubm90 IG1ha2UgYSBkaWZmZXJlbmNlPyBVbmxlc3MgaXQncyB0aGUgbWVtb3J5IGJhcnJpZXIKc2VtYW50 aWNzIHRoYXQgaGF2ZSBzb21lIGVmZmVjdD8gSXQgc2VlbXMgdW5saWtlbHkgdGhhdCB0aGUgY29t cGlsZXIgaGFzCmRlZmVycmVkIHRoZSB3cml0ZSB0byB0aGUgdmFyaWFibGUgcGFzdCB0aGUgcHJl L3Bvc3RpbnN0YWxsIGNhbGxzIHRoYXQKYWN0dWFsbHkgZW5hYmxlIHRoZSBoL3cgaW50ZXJydXB0 cywgYnV0IG1heWJlIHdlIHNob3VsZCBhZGQgInZvbGF0aWxlIgpqdXN0IGluIGNhc2U/CgouRGF2 ZS4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752847AbbBSKsE (ORCPT ); Thu, 19 Feb 2015 05:48:04 -0500 Received: from mga01.intel.com ([192.55.52.88]:11387 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752220AbbBSKsA (ORCPT ); Thu, 19 Feb 2015 05:48:00 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,512,1418112000"; d="scan'208";a="456715687" Message-ID: <54E5BF59.4020208@intel.com> Date: Thu, 19 Feb 2015 10:47:53 +0000 From: Dave Gordon Organization: Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: imre.deak@intel.com, Jani Nikula CC: Klaus Ethgen , "intel-gfx@lists.freedesktop.org" , linux-kernel@vger.kernel.org, dri-devel Subject: Re: [Intel-gfx] [KERNEL] Regression bug in drm/i915, Wrong assumption in commit e11aa36 breaks suspend on at least lenovo x61 References: <20150211113919.GA5672@ikki.ethgen.ch> <20150216221142.GB14602@ikki.ethgen.ch> <20150217082937.GA27873@ikki.ethgen.ch> <87mw4bw7o7.fsf@intel.com> <1424276692.27236.1.camel@intel.com> In-Reply-To: <1424276692.27236.1.camel@intel.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 18/02/15 16:24, Imre Deak wrote: > On ke, 2015-02-18 at 17:39 +0200, Jani Nikula wrote: >> On Tue, 17 Feb 2015, Klaus Ethgen wrote: >>> After solving the conflicts, I applied the revert (see attachment) to >>> v3.18.7. I think it should also apply to the current head. With that >>> patch, suspend is working again on that version. >>> >>> However, I have not to deep knowledge of that subsystem, so please, >>> someone who have, have a deeper look into it. I especially do not know >>> if the lines in .../intel_pm.c are correct or better leaving them as >>> they are in v3.18.7. >>> >>> I want to have it working on a version that I know is stable before >>> asking to pull it to head. >> >> Hi Klaus, we fear this patch may hide the actual cause. Would be useful >> to get a better description of what happens, along with a dmesg with >> drm.debug=14 module parameter set. This might clutter the mailing list, >> would you mind filing a bug at [1] and attach the info there? >> >> Thanks, >> Jani. >> >> [1] https://bugs.freedesktop.org/enter_bug.cgi?product=DRI&component=DRM/Intel > > In addition to the above could you also try the following patch and > provide a dmesg log on the bugzilla ticket - at this point only to try > to narrow down the issue?: > > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index d358ce8..02c65f4 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -4466,6 +4466,14 @@ static irqreturn_t i965_irq_handler(int irq, void *arg) > I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT | > I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT; > > + if (!intel_irqs_enabled(dev_priv)) { > + if (printk_ratelimit()) > + DRM_ERROR("spurious/shared interrupt iir %08x imr %08x ier %08x\n", > + I915_READ(IIR), I915_READ(IMR), I915_READ(IER)); > + > + return IRQ_NONE; > + } > + > iir = I915_READ(IIR); > > for (;;) { > @@ -4766,7 +4774,10 @@ void intel_runtime_pm_disable_interrupts(struct drm_device *dev) > struct drm_i915_private *dev_priv = dev->dev_private; > > dev->driver->irq_uninstall(dev); > + > + spin_lock_irq(&dev_priv->irq_lock); > dev_priv->pm._irqs_disabled = true; > + spin_unlock_irq(&dev_priv->irq_lock); > } > > /* Restore interrupts so we can recover from runtime PM. */ > @@ -4774,7 +4785,10 @@ void intel_runtime_pm_restore_interrupts(struct drm_device *dev) > { > struct drm_i915_private *dev_priv = dev->dev_private; > > + spin_lock_irq(&dev_priv->irq_lock); > dev_priv->pm._irqs_disabled = false; > + spin_unlock_irq(&dev_priv->irq_lock); > + > dev->driver->irq_preinstall(dev); > dev->driver->irq_postinstall(dev); > } Surely surrounding (what ought to be) an atomic assignment to a single variable cannot make a difference? Unless it's the memory barrier semantics that have some effect? It seems unlikely that the compiler has deferred the write to the variable past the pre/postinstall calls that actually enable the h/w interrupts, but maybe we should add "volatile" just in case? .Dave.