From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Make RPS EI/thresholds multiple of 25 on SNB Date: Wed, 20 Apr 2016 18:09:34 +0300 Message-ID: <20160420150934.GE4329@intel.com> References: <1461159836-9108-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id F2A4B6EA31 for ; Wed, 20 Apr 2016 15:10:36 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1461159836-9108-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Akash Goel , stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBcHIgMjAsIDIwMTYgYXQgMDQ6NDM6NTZQTSArMDMwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KClRoZSBwYXRjaCBzdWJqZWN0IHNob3VsZCBwcm9iYWJseSBy ZWFkCiJkcm0vaTkxNTogTWFrZSBSUFMgRUkvdGhyZXNob2xkcyBtdWx0aXBsZSBvZiAyNSBvbiBT TkItQkRXIgpzaW5jZSBpdCBkb2VzIGNoYW5nZSBtb3JlIHRoYW4gU05CLiBJJ2xsIGZpeCB0aGF0 IHVwIHdoZW4vaWYgSSBwdXNoLgoKPiAKPiBTb21laG93IG15IFNOQiBHVDEgKERlbGwgWFBTIDgz MDApIGdldHMgdmVyeSB1bmhhcHB5IGFyb3VuZAo+IEdQVSBoYW5ncyBpZiB0aGUgUlBTIEVJL3Ro cmVzaG9sZHMgYXJlbid0IHN1aXRhYmx5IGFsaWduZWQuCj4gSXQgc2VlbXMgbGlrZSBzY2hlZHVs aW5nL3RpbWVyIGludGVydXB0cyBzdG9wIHdvcmtpbmcgc29tZWhvdwo+IGFuZCB0aGluZ3MgZ2V0 IHN0dWNrIGVnLiBpbiB1c2xlZXBfcmFuZ2UoKS4KPiAKPiBJIGJpc2VjdGVkIHRoZSBwcm9ibGVt IGRvd24gdG8KPiBjb21taXQgOGE1ODY0Mzc3YjEyICgiZHJtL2k5MTUvc2tsOiBSZXN0cnVjdHVy ZWQgdGhlIGdlbjZfc2V0X3Jwc190aHJlc2hvbGRzIGZ1bmN0aW9uIikKPiBJIG9ic2VydmVkIHRo YXQgYmVmb3JlIGFsbCB0aGUgdmFsdWVzIHdlcmUgYXQgbGVhc3QgbXVsdGlwbGVzIG9mIDI1LAo+ IGJ1dCBhZnRlcndhcmRzIHRoZXkgYXJlIG5vdC4gQW5kIHJvdW5kaW5nIHRoaW5ncyB1cCB0byB0 aGUgbmV4dCBtdWx0aXBsZQo+IG9mIDI1IGRvZXMgc2VlbSB0byBoZWxwLCBzbyBsZXRzJyBkbyB0 aGF0LiBJIGFsc28gdHJpZWQgcm91bmR1cCguLi4sIDUpCj4gYnV0IHRoYXQgd2Fzbid0IHN1ZmZp Y2llbnQuIEFsc28gSSBoYXZlIG5vIGlkZWEgaWYgd2UgbWlnaHQgbmVlZCB0aGlzIHNvcnQgb2YK PiB0aGluZyBvbiBnZW45KyBhcyB3ZWxsLgo+IAo+IFRoZXNlIGFyZSB0aGUgb3JpZ2luYWwgRUkv dGhyZXNob2xkczoKPiAgTE9XX1BPV0VSCj4gICBHRU42X1JQX1VQX0VJICAgICAgICAgIDEyNTAw Cj4gICBHRU42X1JQX1VQX1RIUkVTSE9MRCAgIDExODAwCj4gICBHRU42X1JQX0RPV05fRUkgICAg ICAgIDI1MDAwCj4gICBHRU42X1JQX0RPV05fVEhSRVNIT0xEIDIxMjUwCj4gIEJFVFdFRU4KPiAg IEdFTjZfUlBfVVBfRUkgICAgICAgICAgMTAyNTAKPiAgIEdFTjZfUlBfVVBfVEhSRVNIT0xEICAg IDkyMjUKPiAgIEdFTjZfUlBfRE9XTl9FSSAgICAgICAgMjUwMDAKPiAgIEdFTjZfUlBfRE9XTl9U SFJFU0hPTEQgMTg3NTAKPiAgSElHSF9QT1dFUgo+ICAgR0VONl9SUF9VUF9FSSAgICAgICAgICAg ODAwMAo+ICAgR0VONl9SUF9VUF9USFJFU0hPTEQgICAgNjgwMAo+ICAgR0VONl9SUF9ET1dOX0VJ ICAgICAgICAyNTAwMAo+ICAgR0VONl9SUF9ET1dOX1RIUkVTSE9MRCAxNTAwMAo+IAo+IFRoZXNl IGFyZSBhZnRlciA4YTU4NjQzNzdiMTI6Cj4gIExPV19QT1dFUgo+ICAgR0VONl9SUF9VUF9FSSAg ICAgICAgICAxMjUwMAo+ICAgR0VONl9SUF9VUF9USFJFU0hPTEQgICAxMTg3NQo+ICAgR0VONl9S UF9ET1dOX0VJICAgICAgICAyNTAwMAo+ICAgR0VONl9SUF9ET1dOX1RIUkVTSE9MRCAyMTI1MAo+ ICBCRVRXRUVOCj4gICBHRU42X1JQX1VQX0VJICAgICAgICAgIDEwMTU2Cj4gICBHRU42X1JQX1VQ X1RIUkVTSE9MRCAgICA5MTQwCj4gICBHRU42X1JQX0RPV05fRUkgICAgICAgIDI1MDAwCj4gICBH RU42X1JQX0RPV05fVEhSRVNIT0xEIDE4NzUwCj4gIEhJR0hfUE9XRVIKPiAgIEdFTjZfUlBfVVBf RUkgICAgICAgICAgIDc4MTIKPiAgIEdFTjZfUlBfVVBfVEhSRVNIT0xEICAgIDY2NDAKPiAgIEdF TjZfUlBfRE9XTl9FSSAgICAgICAgMjUwMDAKPiAgIEdFTjZfUlBfRE9XTl9USFJFU0hPTEQgMTUw MDAKPiAKPiBBbmQgdGhlc2UgYXJlIHdoYXQgd2UgaGF2ZSBhZnRlciB0aGlzIHBhdGNoOgo+ICBM T1dfUE9XRVIKPiAgIEdFTjZfUlBfVVBfRUkgICAgICAgICAgMTI1MDAKPiAgIEdFTjZfUlBfVVBf VEhSRVNIT0xEICAgMTE4NzUKPiAgIEdFTjZfUlBfRE9XTl9FSSAgICAgICAgMjUwMDAKPiAgIEdF TjZfUlBfRE9XTl9USFJFU0hPTEQgMjEyNTAKPiAgQkVUV0VFTgo+ICAgR0VONl9SUF9VUF9FSSAg ICAgICAgICAxMDE3NQo+ICAgR0VONl9SUF9VUF9USFJFU0hPTEQgICAgOTE1MAo+ICAgR0VONl9S UF9ET1dOX0VJICAgICAgICAyNTAwMAo+ICAgR0VONl9SUF9ET1dOX1RIUkVTSE9MRCAxODc1MAo+ ICBISUdIX1BPV0VSCj4gICBHRU42X1JQX1VQX0VJICAgICAgICAgICA3ODI1Cj4gICBHRU42X1JQ X1VQX1RIUkVTSE9MRCAgICA2NjUwCj4gICBHRU42X1JQX0RPV05fRUkgICAgICAgIDI1MDAwCj4g ICBHRU42X1JQX0RPV05fVEhSRVNIT0xEIDE1MDAwCj4gCj4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5l bC5vcmcKPiBDYzogQWthc2ggR29lbCA8YWthc2guZ29lbEBpbnRlbC5jb20+Cj4gQ2M6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IFRlc3RjYXNlOiBpZ3Qva21zX3Bp cGVfY3JjX2Jhc2ljL2hhbmctcmVhZC1jcmMtcGlwZS1CCj4gRml4ZXM6IDhhNTg2NDM3N2IxMiAo ImRybS9pOTE1L3NrbDogUmVzdHJ1Y3R1cmVkIHRoZSBnZW42X3NldF9ycHNfdGhyZXNob2xkcyBm dW5jdGlvbiIpCj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCB8IDkgKysrKysrKystCj4gIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCBjMjFiNzFjODZhNmIu LjA4ZjAxZjQ0NzBjZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC0yOTQ4LDcg KzI5NDgsMTQgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gICNkZWZpbmUgR0VONl9S UF9TVEFURV9DQVAJX01NSU8oTUNIQkFSX01JUlJPUl9CQVNFX1NOQiArIDB4NTk5OCkKPiAgI2Rl ZmluZSBCWFRfUlBfU1RBVEVfQ0FQICAgICAgICBfTU1JTygweDEzODE3MCkKPiAgCj4gLSNkZWZp bmUgSU5URVJWQUxfMV8yOF9VUyh1cykJKCgodXMpICogMTAwKSA+PiA3KQo+ICsvKgo+ICsgKiBN YWtlIHRoZXNlIGEgbXVsdGlwbGUgb2YgbWFnaWMgMjUgdG8gYXZvaWQgU05CIChlZy4gRGVsbCBY UFMKPiArICogODMwMCkgZnJlZXppbmcgdXAgYXJvdW5kIEdQVSBoYW5ncy4gTG9va3MgYXMgaWYg ZXZlbgo+ICsgKiBzY2hlZHVsaW5nL3RpbWVyIGludGVycnVwdHMgc3RhcnQgbWlzYmVoYXZpbmcg aWYgdGhlIFJQUwo+ICsgKiBFSS90aHJlc2hvbGRzIGFyZSAiYmFkIiwgbGVhZGluZyB0byBhIHZl cnkgc2x1Z2dpc2ggb3IgZXZlbgo+ICsgKiBmcm96ZW4gbWFjaGluZS4KPiArICovCj4gKyNkZWZp bmUgSU5URVJWQUxfMV8yOF9VUyh1cykJcm91bmR1cCgoKHVzKSAqIDEwMCkgPj4gNywgMjUpCj4g ICNkZWZpbmUgSU5URVJWQUxfMV8zM19VUyh1cykJKCgodXMpICogMykgICA+PiAyKQo+ICAjZGVm aW5lIElOVEVSVkFMXzBfODMzX1VTKHVzKQkoKCh1cykgKiA2KSAvIDUpCj4gICNkZWZpbmUgR1Rf SU5URVJWQUxfRlJPTV9VUyhkZXZfcHJpdiwgdXMpIChJU19HRU45KGRldl9wcml2KSA/IFwKPiAt LSAKPiAyLjcuNAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com ([192.55.52.115]:34940 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750749AbcDTPMr (ORCPT ); Wed, 20 Apr 2016 11:12:47 -0400 Date: Wed, 20 Apr 2016 18:09:34 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: intel-gfx@lists.freedesktop.org Cc: stable@vger.kernel.org, Akash Goel , Chris Wilson Subject: Re: [PATCH] drm/i915: Make RPS EI/thresholds multiple of 25 on SNB Message-ID: <20160420150934.GE4329@intel.com> References: <1461159836-9108-1-git-send-email-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1461159836-9108-1-git-send-email-ville.syrjala@linux.intel.com> Sender: stable-owner@vger.kernel.org List-ID: On Wed, Apr 20, 2016 at 04:43:56PM +0300, ville.syrjala@linux.intel.com wrote: > From: Ville Syrj�l� The patch subject should probably read "drm/i915: Make RPS EI/thresholds multiple of 25 on SNB-BDW" since it does change more than SNB. I'll fix that up when/if I push. > > Somehow my SNB GT1 (Dell XPS 8300) gets very unhappy around > GPU hangs if the RPS EI/thresholds aren't suitably aligned. > It seems like scheduling/timer interupts stop working somehow > and things get stuck eg. in usleep_range(). > > I bisected the problem down to > commit 8a5864377b12 ("drm/i915/skl: Restructured the gen6_set_rps_thresholds function") > I observed that before all the values were at least multiples of 25, > but afterwards they are not. And rounding things up to the next multiple > of 25 does seem to help, so lets' do that. I also tried roundup(..., 5) > but that wasn't sufficient. Also I have no idea if we might need this sort of > thing on gen9+ as well. > > These are the original EI/thresholds: > LOW_POWER > GEN6_RP_UP_EI 12500 > GEN6_RP_UP_THRESHOLD 11800 > GEN6_RP_DOWN_EI 25000 > GEN6_RP_DOWN_THRESHOLD 21250 > BETWEEN > GEN6_RP_UP_EI 10250 > GEN6_RP_UP_THRESHOLD 9225 > GEN6_RP_DOWN_EI 25000 > GEN6_RP_DOWN_THRESHOLD 18750 > HIGH_POWER > GEN6_RP_UP_EI 8000 > GEN6_RP_UP_THRESHOLD 6800 > GEN6_RP_DOWN_EI 25000 > GEN6_RP_DOWN_THRESHOLD 15000 > > These are after 8a5864377b12: > LOW_POWER > GEN6_RP_UP_EI 12500 > GEN6_RP_UP_THRESHOLD 11875 > GEN6_RP_DOWN_EI 25000 > GEN6_RP_DOWN_THRESHOLD 21250 > BETWEEN > GEN6_RP_UP_EI 10156 > GEN6_RP_UP_THRESHOLD 9140 > GEN6_RP_DOWN_EI 25000 > GEN6_RP_DOWN_THRESHOLD 18750 > HIGH_POWER > GEN6_RP_UP_EI 7812 > GEN6_RP_UP_THRESHOLD 6640 > GEN6_RP_DOWN_EI 25000 > GEN6_RP_DOWN_THRESHOLD 15000 > > And these are what we have after this patch: > LOW_POWER > GEN6_RP_UP_EI 12500 > GEN6_RP_UP_THRESHOLD 11875 > GEN6_RP_DOWN_EI 25000 > GEN6_RP_DOWN_THRESHOLD 21250 > BETWEEN > GEN6_RP_UP_EI 10175 > GEN6_RP_UP_THRESHOLD 9150 > GEN6_RP_DOWN_EI 25000 > GEN6_RP_DOWN_THRESHOLD 18750 > HIGH_POWER > GEN6_RP_UP_EI 7825 > GEN6_RP_UP_THRESHOLD 6650 > GEN6_RP_DOWN_EI 25000 > GEN6_RP_DOWN_THRESHOLD 15000 > > Cc: stable@vger.kernel.org > Cc: Akash Goel > Cc: Chris Wilson > Testcase: igt/kms_pipe_crc_basic/hang-read-crc-pipe-B > Fixes: 8a5864377b12 ("drm/i915/skl: Restructured the gen6_set_rps_thresholds function") > Signed-off-by: Ville Syrj�l� > --- > drivers/gpu/drm/i915/i915_reg.h | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index c21b71c86a6b..08f01f4470cd 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -2948,7 +2948,14 @@ enum skl_disp_power_wells { > #define GEN6_RP_STATE_CAP _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5998) > #define BXT_RP_STATE_CAP _MMIO(0x138170) > > -#define INTERVAL_1_28_US(us) (((us) * 100) >> 7) > +/* > + * Make these a multiple of magic 25 to avoid SNB (eg. Dell XPS > + * 8300) freezing up around GPU hangs. Looks as if even > + * scheduling/timer interrupts start misbehaving if the RPS > + * EI/thresholds are "bad", leading to a very sluggish or even > + * frozen machine. > + */ > +#define INTERVAL_1_28_US(us) roundup(((us) * 100) >> 7, 25) > #define INTERVAL_1_33_US(us) (((us) * 3) >> 2) > #define INTERVAL_0_833_US(us) (((us) * 6) / 5) > #define GT_INTERVAL_FROM_US(dev_priv, us) (IS_GEN9(dev_priv) ? \ > -- > 2.7.4 -- Ville Syrj�l� Intel OTC