From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 2/2] drm/i915: Filter out spurious execlists context-switch interrupts Date: Fri, 20 Oct 2017 16:21:08 +0300 Message-ID: <87sheegdkr.fsf@gaia.fi.intel.com> References: <20171020095950.25714-1-chris@chris-wilson.co.uk> <20171020095950.25714-2-chris@chris-wilson.co.uk> 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 ESMTPS id D5EAC6EC4E for ; Fri, 20 Oct 2017 13:21:21 +0000 (UTC) In-Reply-To: <20171020095950.25714-2-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gQmFjayBp biBjb21taXQgYTRiMmIwMTUyM2E4ICgiZHJtL2k5MTU6IERvbid0IG1hcmsgYW4gZXhlY2xpc3Rz Cj4gY29udGV4dC1zd2l0Y2ggd2hlbiBpZGxlIikgd2Ugbm90aWNlZCB0aGUgcHJlc2VuY2Ugb2Yg bGF0ZQo+IGNvbnRleHQtc3dpdGNoIGludGVycnVwdHMuIFdlIHdlcmUgYWJsZSB0byBmaWx0ZXIg dGhvc2Ugb3V0IGJ5IGxvb2tpbmcKPiBhdCB3aGV0aGVyIHRoZSBFTFNQIHJlbWFpbmVkIGFjdGl2 ZSwgYnV0IGluIGNvbW1pdCBiZWVjZWM5MDE3OTAKPiAoImRybS9pOTE1L2V4ZWNsaXN0czogUHJl ZW1wdGlvbiEiKSB0aGF0IGJlY2FtZSBwcm9ibGVtYXRpYyBhcyB3ZSBub3cKPiBhbnRpY2lwYXRl IHJlY2VpdmluZyBhIGNvbnRleHQtc3dpdGNoIGV2ZW50IGZvciBwcmVlbXB0aW9uIHdoaWxlIEVM U1AKPiBtYXkgYmUgZW1wdHkuIFRvIHJlc3RvcmUgdGhlIHNwdXJpb3VzIGludGVycnVwdCBzdXBw cmVzc2lvbiwgYWRkIGEKClRoaXMgY29uZnVzZXMgbWUsIGhvdyBjYW4gd2UgcHJlZW1wdCBzb21l dGhpbmcgdGhhdCB3YXMgbmV2ZXIgc3VibWl0dGVkLgpDb3VsZCB5b3UgZWxhYm9yYXRlPwoKVGhh bmtzLAotTWlrYQoKPiBjb3VudGVyIGZvciB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIHBlbmRpbmcg Y29udGV4dC1zd2l0Y2hlcyBhbmQgc2tpcCBpZgo+IHdlIGRvIG5vdCBuZWVkIHRvIGhhbmRsZSB0 aGlzIGludGVycnVwdCB0byBtYWtlIGZvcndhcmQgcHJvZ3Jlc3MuCj4KPiBGaXhlczogYmVlY2Vj OTAxNzkwICgiZHJtL2k5MTUvZXhlY2xpc3RzOiBQcmVlbXB0aW9uISIpCj4gU2lnbmVkLW9mZi1i eTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IE1pY2hhbCBX aW5pYXJza2kgPG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPgo+IENjOiBUdnJ0a28gVXJzdWxp biA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IENjOiBBcmthZGl1c3ogSGlsZXIgPGFya2Fk aXVzei5oaWxlckBpbnRlbC5jb20+Cj4gQ2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFA aW50ZWwuY29tPgo+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5p bnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Np b24uYyB8IDExICsrKysrKy0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMg ICAgICAgICAgICB8ICA2ICsrKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdp bmVfY3MuYyAgICAgfCAgNSArKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YyAgICAgICAgICAgfCAyMSArKysrKysrKysrKysrKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICAgIHwgIDcgKysrKysrKwo+ICA1IGZpbGVzIGNoYW5n ZWQsIDM3IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IGluZGV4IGEyZTgxMTRiNzM5ZC4uYzIyZDBh MDc0NjdjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1p c3Npb24uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24u Ywo+IEBAIC01NTAsMTEgKzU1MCw5IEBAIHN0YXRpYyB2b2lkIHBvcnRfYXNzaWduKHN0cnVjdCBl eGVjbGlzdF9wb3J0ICpwb3J0LAo+ICAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJx KQo+ICB7Cj4gIAlHRU1fQlVHX09OKHJxID09IHBvcnRfcmVxdWVzdChwb3J0KSk7Cj4gKwlHRU1f QlVHX09OKHBvcnRfaXNzZXQocG9ydCkpOwo+ICAKPiAtCWlmIChwb3J0X2lzc2V0KHBvcnQpKQo+ IC0JCWk5MTVfZ2VtX3JlcXVlc3RfcHV0KHBvcnRfcmVxdWVzdChwb3J0KSk7Cj4gLQo+IC0JcG9y dF9zZXQocG9ydCwgcG9ydF9wYWNrKGk5MTVfZ2VtX3JlcXVlc3RfZ2V0KHJxKSwgcG9ydF9jb3Vu dChwb3J0KSkpOwo+ICsJcG9ydF9zZXQocG9ydCwgaTkxNV9nZW1fcmVxdWVzdF9nZXQocnEpKTsK PiAgCW5lc3RlZF9lbmFibGVfc2lnbmFsaW5nKHJxKTsKPiAgfQo+ICAKPiBAQCAtNTg2LDggKzU4 NCwxMCBAQCBzdGF0aWMgdm9pZCBpOTE1X2d1Y19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiAgCQkJCQlnb3RvIGRvbmU7Cj4gIAkJCQl9Cj4gIAo+IC0JCQkJaWYgKHN1 Ym1pdCkKPiArCQkJCWlmIChzdWJtaXQpIHsKPiAgCQkJCQlwb3J0X2Fzc2lnbihwb3J0LCBsYXN0 KTsKPiArCQkJCQlleGVjbGlzdHMtPmFjdGl2ZSsrOwo+ICsJCQkJfQo+ICAJCQkJcG9ydCsrOwo+ ICAJCQl9Cj4gIAo+IEBAIC02MTAsNiArNjEwLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9ndWNfZGVx dWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAlleGVjbGlzdHMtPmZpcnN0 ID0gcmI7Cj4gIAlpZiAoc3VibWl0KSB7Cj4gIAkJcG9ydF9hc3NpZ24ocG9ydCwgbGFzdCk7Cj4g KwkJZXhlY2xpc3RzLT5hY3RpdmUrKzsKPiAgCQlpOTE1X2d1Y19zdWJtaXQoZW5naW5lKTsKPiAg CX0KPiAgCXNwaW5fdW5sb2NrX2lycSgmZW5naW5lLT50aW1lbGluZS0+bG9jayk7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2lycS5jCj4gaW5kZXggYjEyOTZhNTVjMWU0Li5mODIwNTg0MTg2OGIgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBAQCAtMTM4OCw4ICsxMzg4LDEwIEBAIGdlbjhfY3Nf aXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgaWlyLCBpbnQg dGVzdF9zaGlmdCkKPiAgCWJvb2wgdGFza2xldCA9IGZhbHNlOwo+ICAKPiAgCWlmIChpaXIgJiAo R1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IHRlc3Rfc2hpZnQpKSB7Cj4gLQkJX19zZXRf Yml0KEVOR0lORV9JUlFfRVhFQ0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpOwo+IC0JCXRhc2ts ZXQgPSB0cnVlOwo+ICsJCWlmIChSRUFEX09OQ0UoZW5naW5lLT5leGVjbGlzdHMuYWN0aXZlKSkg ewo+ICsJCQlfX3NldF9iaXQoRU5HSU5FX0lSUV9FWEVDTElTVCwgJmVuZ2luZS0+aXJxX3Bvc3Rl ZCk7Cj4gKwkJCXRhc2tsZXQgPSB0cnVlOwo+ICsJCX0KPiAgCX0KPiAgCj4gIAlpZiAoaWlyICYg KEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCB0ZXN0X3NoaWZ0KSkgewo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gaW5kZXggYTQ3YTljNmJlYTUyLi44YWVjYmMzMjE3 ODYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+IEBAIC0xNTQ4 LDggKzE1NDgsOCBAQCBib29sIGludGVsX2VuZ2luZV9pc19pZGxlKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKPiAgCWlmICh0ZXN0X2JpdChFTkdJTkVfSVJRX0VYRUNMSVNULCAmZW5n aW5lLT5pcnFfcG9zdGVkKSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+IC0JLyogQm90aCBwb3J0 cyBkcmFpbmVkLCBubyBtb3JlIEVMU1Agc3VibWlzc2lvbj8gKi8KPiAtCWlmIChwb3J0X3JlcXVl c3QoJmVuZ2luZS0+ZXhlY2xpc3RzLnBvcnRbMF0pKQo+ICsJLyogV2FpdGluZyB0byBkcmFpbiBF TFNQPyAqLwo+ICsJaWYgKFJFQURfT05DRShlbmdpbmUtPmV4ZWNsaXN0cy5hY3RpdmUpKQo+ICAJ CXJldHVybiBmYWxzZTsKPiAgCj4gIAkvKiBFTFNQIGlzIGVtcHR5LCBidXQgdGhlcmUgYXJlIHJl YWR5IHJlcXVlc3RzPyAqLwo+IEBAIC0xNzQ5LDYgKzE3NDksNyBAQCB2b2lkIGludGVsX2VuZ2lu ZV9kdW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgc3RydWN0IGRybV9wcmludGVy ICptKQo+ICAJCQkJCSAgIGlkeCk7Cj4gIAkJCX0KPiAgCQl9Cj4gKwkJZHJtX3ByaW50ZihtLCAi XHRcdEVMU1AgYWN0aXZlICVkXG4iLCBleGVjbGlzdHMtPmFjdGl2ZSk7Cj4gIAkJcmN1X3JlYWRf dW5sb2NrKCk7Cj4gIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPiA2KSB7Cj4gIAkJ ZHJtX3ByaW50ZihtLCAiXHRQUF9ESVJfQkFTRTogMHglMDh4XG4iLAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCj4gaW5kZXggN2Y0NWRkN2RjM2U1Li44YTQ3YjgyMTFjNzQgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC00ODIsMTUgKzQ4MiwyMyBAQCBzdGF0aWMgYm9vbCBj YW5fbWVyZ2VfY3R4KGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpwcmV2LAo+ICAJcmV0 dXJuIHRydWU7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIHBvcnRfYXNzaWduKHN0cnVjdCBleGVj bGlzdF9wb3J0ICpwb3J0LAo+ICtzdGF0aWMgYm9vbCBwb3J0X2Fzc2lnbihzdHJ1Y3QgZXhlY2xp c3RfcG9ydCAqcG9ydCwKPiAgCQkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKPiAg ewo+ICsJYm9vbCB3YXNfaWRsZTsKPiArCj4gIAlHRU1fQlVHX09OKHJxID09IHBvcnRfcmVxdWVz dChwb3J0KSk7Cj4gIAo+IC0JaWYgKHBvcnRfaXNzZXQocG9ydCkpCj4gKwlpZiAocG9ydF9pc3Nl dChwb3J0KSkgewo+ICAJCWk5MTVfZ2VtX3JlcXVlc3RfcHV0KHBvcnRfcmVxdWVzdChwb3J0KSk7 Cj4gKwkJd2FzX2lkbGUgPSBmYWxzZTsKPiArCX0gZWxzZSB7Cj4gKwkJd2FzX2lkbGUgPSB0cnVl Owo+ICsJfQo+ICAKPiAgCXBvcnRfc2V0KHBvcnQsIHBvcnRfcGFjayhpOTE1X2dlbV9yZXF1ZXN0 X2dldChycSksIHBvcnRfY291bnQocG9ydCkpKTsKPiArCj4gKwlyZXR1cm4gd2FzX2lkbGU7Cj4g IH0KPiAgCj4gIHN0YXRpYyB2b2lkIGluamVjdF9wcmVlbXB0X2NvbnRleHQoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQo+IEBAIC02NTcsNyArNjY1LDcgQEAgc3RhdGljIHZvaWQgZXhl Y2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJCQkJR0VN X0JVR19PTihsYXN0LT5jdHggPT0gcnEtPmN0eCk7Cj4gIAo+ICAJCQkJaWYgKHN1Ym1pdCkKPiAt CQkJCQlwb3J0X2Fzc2lnbihwb3J0LCBsYXN0KTsKPiArCQkJCQlleGVjbGlzdHMtPmFjdGl2ZSAr PSBwb3J0X2Fzc2lnbihwb3J0LCBsYXN0KTsKPiAgCQkJCXBvcnQrKzsKPiAgCj4gIAkJCQlHRU1f QlVHX09OKHBvcnRfaXNzZXQocG9ydCkpOwo+IEBAIC02NzksNyArNjg3LDcgQEAgc3RhdGljIHZv aWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICBk b25lOgo+ICAJZXhlY2xpc3RzLT5maXJzdCA9IHJiOwo+ICAJaWYgKHN1Ym1pdCkKPiAtCQlwb3J0 X2Fzc2lnbihwb3J0LCBsYXN0KTsKPiArCQlleGVjbGlzdHMtPmFjdGl2ZSArPSBwb3J0X2Fzc2ln bihwb3J0LCBsYXN0KTsKPiAgdW5sb2NrOgo+ICAJc3Bpbl91bmxvY2tfaXJxKCZlbmdpbmUtPnRp bWVsaW5lLT5sb2NrKTsKPiAgCj4gQEAgLTY5NiwxMCArNzA0LDEyIEBAIGV4ZWNsaXN0X2NhbmNl bF9wb3J0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMp Cj4gIAl3aGlsZSAobnVtX3BvcnRzLS0gJiYgcG9ydF9pc3NldChwb3J0KSkgewo+ICAJCXN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEgPSBwb3J0X3JlcXVlc3QocG9ydCk7Cj4gIAo+ICsJ CUdFTV9CVUdfT04oIWV4ZWNsaXN0cy0+YWN0aXZlKTsKPiAgCQlleGVjbGlzdHNfY29udGV4dF9z dGF0dXNfY2hhbmdlKHJxLCBJTlRFTF9DT05URVhUX1NDSEVEVUxFX1BSRUVNUFRFRCk7Cj4gIAkJ aTkxNV9nZW1fcmVxdWVzdF9wdXQocnEpOwo+ICAKPiAgCQltZW1zZXQocG9ydCwgMCwgc2l6ZW9m KCpwb3J0KSk7Cj4gKwkJZXhlY2xpc3RzLT5hY3RpdmUtLTsKPiAgCQlwb3J0Kys7Cj4gIAl9Cj4g IH0KPiBAQCAtODYzLDYgKzg3Myw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2xyY19pcnFfaGFuZGxl cih1bnNpZ25lZCBsb25nIGRhdGEpCj4gIAo+ICAJCQkJR0VNX0JVR19PTighZXhlY2xpc3RzLT5w cmVlbXB0KTsKPiAgCQkJCWV4ZWNsaXN0cy0+cHJlZW1wdCA9IGZhbHNlOwo+ICsJCQkJZXhlY2xp c3RzLT5hY3RpdmUtLTsKPiArCQkJCUdFTV9CVUdfT04oZXhlY2xpc3RzLT5hY3RpdmUpOwo+ICAJ CQkJY29udGludWU7Cj4gIAkJCX0KPiAgCj4gQEAgLTE0NjEsNiArMTQ3Myw3IEBAIHN0YXRpYyBp bnQgZ2VuOF9pbml0X2NvbW1vbl9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK PiAgCWNsZWFyX2JpdChFTkdJTkVfSVJRX0VYRUNMSVNULCAmZW5naW5lLT5pcnFfcG9zdGVkKTsK PiAgCWV4ZWNsaXN0cy0+Y3NiX2hlYWQgPSAtMTsKPiAgCWV4ZWNsaXN0cy0+cHJlZW1wdCA9IGZh bHNlOwo+ICsJZXhlY2xpc3RzLT5hY3RpdmUgPSAwOwo+ICAKPiAgCS8qIEFmdGVyIGEgR1BVIHJl c2V0LCB3ZSBtYXkgaGF2ZSByZXF1ZXN0cyB0byByZXBsYXkgKi8KPiAgCWlmICghaTkxNV9tb2Rw YXJhbXMuZW5hYmxlX2d1Y19zdWJtaXNzaW9uICYmIGV4ZWNsaXN0cy0+Zmlyc3QpCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IDE3MTg2ZjA2NzQwOC4uNTg4 ZjVmZTlkMmI3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ IEBAIC0yNDUsNiArMjQ1LDExIEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzIHsKPiAg CSAqLwo+ICAJYm9vbCBwcmVlbXB0Owo+ICAKPiArCS8qKgo+ICsJICogQGFjdGl2ZTogY291bnQg b2YgdGhlIG51bWJlciBvZiBvdXRzdGFuZGluZyBDU0IgZXZlbnRzCj4gKwkgKi8KPiArCXVuc2ln bmVkIGludCBhY3RpdmU7Cj4gKwo+ICAJLyoqCj4gIAkgKiBAcG9ydF9tYXNrOiBudW1iZXIgb2Yg ZXhlY2xpc3QgcG9ydHMgLSAxCj4gIAkgKi8KPiBAQCAtNTM4LDkgKzU0MywxMSBAQCBleGVjbGlz dHNfcG9ydF9jb21wbGV0ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4 ZWNsaXN0cywKPiAgCWNvbnN0IHVuc2lnbmVkIGludCBtID0gZXhlY2xpc3RzLT5wb3J0X21hc2s7 Cj4gIAo+ICAJR0VNX0JVR19PTihwb3J0X2luZGV4KHBvcnQsIGV4ZWNsaXN0cykgIT0gMCk7Cj4g KwlHRU1fQlVHX09OKCFleGVjbGlzdHMtPmFjdGl2ZSk7Cj4gIAo+ICAJbWVtbW92ZShwb3J0LCBw b3J0ICsgMSwgbSAqIHNpemVvZihzdHJ1Y3QgZXhlY2xpc3RfcG9ydCkpOwo+ICAJbWVtc2V0KHBv cnQgKyBtLCAwLCBzaXplb2Yoc3RydWN0IGV4ZWNsaXN0X3BvcnQpKTsKPiArCWV4ZWNsaXN0cy0+ YWN0aXZlLS07Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50Cj4gLS0gCj4g Mi4xNS4wLnJjMQo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=