From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: drm/i915: WARN_ON_ONCE(!crtc_clock || cdclk < crtc_clock) Date: Tue, 25 Oct 2016 11:37:20 +0300 Message-ID: <87lgxcomdb.fsf@intel.com> References: <1476266167.7439.8.camel@tiscali.nl> <1476270522.2817.12.camel@linux.intel.com> <1476273998.9670.4.camel@tiscali.nl> <1477342074.1872.24.camel@tiscali.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1477342074.1872.24.camel@tiscali.nl> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paul Bolle , Joonas Lahtinen , Daniel Vetter , David Airlie Cc: intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCAyNCBPY3QgMjAxNiwgUGF1bCBCb2xsZSA8cGVib2xsZUB0aXNjYWxpLm5sPiB3cm90 ZToKPiBbRGV0YWlsZWQgcG9zdCwgYnV0IHBsZWFzZSBnaXZlIGl0IGEgcXVpY2sgc2Nhbi5dCgpQ bGVhc2UgZmlsZSB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIGJ1ZyB5b3UgZmlsZWQuIFBsZWFzZSBh dHRhY2ggZG1lc2cKKGFnYWluLCBvbiB0aGUgYnVnKSB3aXRoIGRybS5kZWJ1Zz0xNCBhbmQgcnVu bmluZyB5b3VyIHBhdGNoLgoKQlIsCkphbmkuCgo+Cj4gT24gV2VkLCAyMDE2LTEwLTEyIGF0IDE0 OjA2ICswMjAwLCBQYXVsIEJvbGxlIHdyb3RlOgo+PiBPbiBXZWQsIDIwMTYtMTAtMTIgYXQgMTQ6 MDggKzAzMDAsIEpvb25hcyBMYWh0aW5lbiB3cm90ZToKPj4gPiBCaXNlY3RpbmcgdGhlIG9mZmVu ZGluZyBjb21taXQgYmV0d2VlbiB2NC44IGFuZCB2NC44LjEgd291bGQgYmUgYSBnb29kCj4+ID4g c3RhcnQuCj4+IAo+PiBUaGF0IHdvdWxkIGJlIGJldHdlZW4gdjQuNyBhbmQgdjQuOC4gKEkgZ3Vl c3MgbXkgcmVwb3J0IHdhcwo+PiBhbWJpZ3VvdXMuKQo+PiAKPj4gVGhhdCBtaWdodCB0YWtlIHNv bWUgdGltZS4gQmVjYXVzZSBiaXNlY3RpbmcgYWx3YXlzIHRha2VzIGEgbG9uZyB0aW1lCj4+IGFu ZCBlc3BlY2lhbGx5IHNpbmNlIGhpdHRpbmcgdGhpcyBXQVJOSU5HIHNvbWV0aW1lcyB0YWtlcyBv dmVyIGFuIGhvdXIuCj4+IEFueWhvdywgcGxlYXNlIHByb2QgbWUgaWYgSSBzdGF5IHNpbGVudCBm b3IgdG9vIGxvbmcuCj4KPiAwKSBTbyBJJ3ZlIGxvc3QgbXkgY291cmFnZSB0byBkbyBhIGJpc2Vj dCB3aGVuIG15IGZpcnN0IGF0dGVtcHQgbGFuZGVkCj4gbWUgaW4gdjQuNi1yYzMuIFRoaXMgaXMg YWJvdXQgZm9yIGlzc3VlIHBvcHBpbmcgdXAgYmV0d2VlbiB2NC43IGFuZAo+IHY0LjgtcmMxLgo+ Cj4gMSkgU28gSSB1c2VkIHRoZSBtb3N0IHJlbGlhYmxlIGRlYnVnZ2luZyB0b29sIHRoYXQgSSBh Y3R1YWxseQo+IHVuZGVyc3RhbmQ6IHByaW50aygpOgo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IGluZGV4IGZiY2ZlZDYzYTc2ZS4uNzkxZGU0MTRjZjFlIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xNDc3MSwxMCArMTQ3NzEsMTYgQEAg c2tsX21heF9zY2FsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0Yywgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUKPiAgICAgICAgICAgICAgICAgcmV0dXJuIERSTV9QTEFO RV9IRUxQRVJfTk9fU0NBTElORzsKPiAgCj4gICAgICAgICBjcnRjX2Nsb2NrID0gY3J0Y19zdGF0 ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7Cj4gLSAgICAgICBjZGNsayA9IHRvX2lu dGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKS0+Y2RjbGs7Cj4gKyAgICAg ICBpZiAoV0FSTl9PTl9PTkNFKCFjcnRjX2Nsb2NrKSkKPiArICAgICAgICAgICAgICAgcmV0dXJu IERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORzsKPiAgCj4gLSAgICAgICBpZiAoV0FSTl9PTl9P TkNFKCFjcnRjX2Nsb2NrIHx8IGNkY2xrIDwgY3J0Y19jbG9jaykpCj4gKyAgICAgICBjZGNsayA9 IHRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKS0+Y2RjbGs7Cj4g KyAgICAgICBpZiAoV0FSTl9PTl9PTkNFKGNkY2xrIDwgY3J0Y19jbG9jaykpIHsKPiArICAgICAg ICAgICAgICAgcHJpbnRrKEtFUk5fREVCVUcgImk5MTU6IGNkY2xrIDwgY3J0Y19jbG9jazogJWQg PCAlZFxuIiwgY2RjbGssIGNydGNfY2xvY2spOwo+ICAgICAgICAgICAgICAgICByZXR1cm4gRFJN X1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHByaW50 a19yYXRlbGltaXRlZChLRVJOX0RFQlVHICJpOTE1OiBjZGNsayA+PSBjcnRjX2Nsb2NrOiAlZCA+ PSAlZFxuIiwgY2RjbGssIGNydGNfY2xvY2spOwo+ICAKPiAgICAgICAgIC8qCj4gICAgICAgICAg KiBza2wgbWF4IHNjYWxlIGlzIGxvd2VyIG9mOgo+Cj4gMikgVGhpcyB0YXVnaHQgbWUgdGhhdCBj cnRjX2Nsb2NrIGFsd2F5cyBpcyAzNzMyNTAgb24gbXkgbWFjaGluZS4gY2RjbGsKPiBtb3N0bHkg aXMgNDUwMDAwLCBidXQgZXZlcnkgbm93IGFuZCB0aGVuIGl0IGJyaWVmbHkgaXMgMzM3NTAwLgo+ Cj4gMykgTm93IHRoZSBpbnRlcmVzdGluZyBwYXR0ZXJuIGlzIHRoYXQgY2RjbGsgZHJvcHMgdG8g MzM3NTAwIG9ubHkgYWZ0ZXIKPiB0d28gcXVpY2sgY2FsbHMgb2Ygc2tsX21heF9zY2FsZSgpIHdp dGggY2RjbGsgc2V0IHRvIDQ1MDAwMCwgYW5kIGEKPiByb3VnaGx5IDMwMG1zIHBhdXNlIGJlZm9y ZSB0aGUgdGhpcmQgY2FsbCBvZiB0aGF0IGZ1bmN0aW9uLiBFeGFtcGxlOgo+Cj4gPDc+WzIzNzU4 LjUwMTkzM10gaTkxNTogY2RjbGsgPj0gY3J0Y19jbG9jazogNDUwMDAwID49IDM3MzI1MAo+IDw3 PlsyMzc1OC41MTUyMTFdIGk5MTU6IGNkY2xrID49IGNydGNfY2xvY2s6IDQ1MDAwMCA+PSAzNzMy NTAKPiA8Nz5bMjM3NTguODY5MDU3XSBpOTE1OiBjZGNsayA8IGNydGNfY2xvY2s6IDMzNzUwMCA8 IDM3MzI1MAo+Cj4gVGhpcyBwYXR0ZXJuIG9mIGNkY2xrIGJlaW5nIDMzNzUwMCBhZnRlciByb3Vn aGx5IDMwMG1zwqBpcyBzdXJwcmlzaW5nbHkKPiBzdGFibGUuCj4KPiA0KSBTbyBfcGVyaGFwc18g dGhlcmUncyBzb21lIHJvdWdobHkgMzAwbXMgdGltZW91dCwgc29tZWhvdywgc29tZXdoZXJlLAo+ IHRoYXQgc2V0cyBjZGNsayB0byAzMzc1MDAgYW5kIHRyaWdnZXJzIHRoaXMgaXNzdWUuIElkZWFz Pwo+Cj4gVG8gYmUgY29udGludWVkLAo+Cj4KPiBQYXVsIEJvbGxlCgotLSAKSmFuaSBOaWt1bGEs IEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758504AbcJYIh3 convert rfc822-to-8bit (ORCPT ); Tue, 25 Oct 2016 04:37:29 -0400 Received: from mga05.intel.com ([192.55.52.43]:61161 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758363AbcJYIhZ (ORCPT ); Tue, 25 Oct 2016 04:37:25 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,545,1473145200"; d="scan'208";a="777292230" From: Jani Nikula To: Paul Bolle , Joonas Lahtinen , Daniel Vetter , David Airlie Cc: intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: Re: [Intel-gfx] drm/i915: WARN_ON_ONCE(!crtc_clock || cdclk < crtc_clock) In-Reply-To: <1477342074.1872.24.camel@tiscali.nl> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <1476266167.7439.8.camel@tiscali.nl> <1476270522.2817.12.camel@linux.intel.com> <1476273998.9670.4.camel@tiscali.nl> <1477342074.1872.24.camel@tiscali.nl> Date: Tue, 25 Oct 2016 11:37:20 +0300 Message-ID: <87lgxcomdb.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 24 Oct 2016, Paul Bolle wrote: > [Detailed post, but please give it a quick scan.] Please file the information in the bug you filed. Please attach dmesg (again, on the bug) with drm.debug=14 and running your patch. BR, Jani. > > On Wed, 2016-10-12 at 14:06 +0200, Paul Bolle wrote: >> On Wed, 2016-10-12 at 14:08 +0300, Joonas Lahtinen wrote: >> > Bisecting the offending commit between v4.8 and v4.8.1 would be a good >> > start. >> >> That would be between v4.7 and v4.8. (I guess my report was >> ambiguous.) >> >> That might take some time. Because bisecting always takes a long time >> and especially since hitting this WARNING sometimes takes over an hour. >> Anyhow, please prod me if I stay silent for too long. > > 0) So I've lost my courage to do a bisect when my first attempt landed > me in v4.6-rc3. This is about for issue popping up between v4.7 and > v4.8-rc1. > > 1) So I used the most reliable debugging tool that I actually > understand: printk(): > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index fbcfed63a76e..791de414cf1e 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -14771,10 +14771,16 @@ skl_max_scale(struct intel_crtc *intel_crtc, struct intel_crtc_state *crtc_state > return DRM_PLANE_HELPER_NO_SCALING; > > crtc_clock = crtc_state->base.adjusted_mode.crtc_clock; > - cdclk = to_intel_atomic_state(crtc_state->base.state)->cdclk; > + if (WARN_ON_ONCE(!crtc_clock)) > + return DRM_PLANE_HELPER_NO_SCALING; > > - if (WARN_ON_ONCE(!crtc_clock || cdclk < crtc_clock)) > + cdclk = to_intel_atomic_state(crtc_state->base.state)->cdclk; > + if (WARN_ON_ONCE(cdclk < crtc_clock)) { > + printk(KERN_DEBUG "i915: cdclk < crtc_clock: %d < %d\n", cdclk, crtc_clock); > return DRM_PLANE_HELPER_NO_SCALING; > + } > + > + printk_ratelimited(KERN_DEBUG "i915: cdclk >= crtc_clock: %d >= %d\n", cdclk, crtc_clock); > > /* > * skl max scale is lower of: > > 2) This taught me that crtc_clock always is 373250 on my machine. cdclk > mostly is 450000, but every now and then it briefly is 337500. > > 3) Now the interesting pattern is that cdclk drops to 337500 only after > two quick calls of skl_max_scale() with cdclk set to 450000, and a > roughly 300ms pause before the third call of that function. Example: > > <7>[23758.501933] i915: cdclk >= crtc_clock: 450000 >= 373250 > <7>[23758.515211] i915: cdclk >= crtc_clock: 450000 >= 373250 > <7>[23758.869057] i915: cdclk < crtc_clock: 337500 < 373250 > > This pattern of cdclk being 337500 after roughly 300msĀ is surprisingly > stable. > > 4) So _perhaps_ there's some roughly 300ms timeout, somehow, somewhere, > that sets cdclk to 337500 and triggers this issue. Ideas? > > To be continued, > > > Paul Bolle -- Jani Nikula, Intel Open Source Technology Center