From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 26/27] drm/i915/gt: Refactor mocs loops into single control macro Date: Tue, 12 Nov 2019 19:02:18 +0200 Message-ID: <87y2wlyqn9.fsf@gaia.fi.intel.com> References: <20191112092854.869-1-chris@chris-wilson.co.uk> <20191112092854.869-26-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 696EA6E3A0 for ; Tue, 12 Nov 2019 17:02:31 +0000 (UTC) In-Reply-To: <20191112092854.869-26-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+IHdyaXRlczoKCj4gV2UgcmVw ZWF0ZWRseSAoYW5kIG1vcmUgc28gaW4gZnV0dXJlKSB1c2UgdGhlIHNhbWUgbG9vcGluZyBjb25z dHJ1Y3QKPiBvdmVyIHRoZSBtb2NzIGRlZmluaXRpb24gdGFibGUgdG8gc2V0dXAgdGhlIHJlZ2lz dGVyIHN0YXRlLiBSZWZhY3RvciB0aGUKPiBsb29wIGNvbnN0cnVjdCBpbnRvIGEgcmV1c2FibGUg bWFjcm8uCj4KPiBhZGQvcmVtb3ZlOiAyLzEgZ3Jvdy9zaHJpbms6IDEvMiB1cC9kb3duOiAxMTMv LTMzMCAoLTIxNykKPiBGdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvbGQgICAgIG5ldyAgIGRlbHRhCj4gaW50ZWxfbW9jc19pbml0X2VuZ2luZS5jb2xkICAgICAg ICAgICAgICAgICAgICAtICAgICAgNzEgICAgICs3MQo+IG9mZnNldCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLSAgICAgIDI4ICAgICArMjgKPiBfX2Z1bmNfXyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcyNzMgICAxNzI4NyAgICAgKzE0Cj4gaW50 ZWxfbW9jc19pbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQzICAgICAxMTMgICAg IC0zMAo+IG1vY3NfcmVnaXN0ZXIuaXNyYSAgICAgICAgICAgICAgICAgICAgICAgICAgICA5MSAg ICAgICAtICAgICAtOTEKPiBpbnRlbF9tb2NzX2luaXRfZW5naW5lICAgICAgICAgICAgICAgICAg ICAgICA1MDMgICAgIDI5NCAgICAtMjA5Cj4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24g PGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfbW9jcy5jIHwgMTI4ICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZp bGUgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgODEgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jCj4gaW5kZXggZTZmM2YzNmEzOTg4Li42M2QwZmRmNjcy MTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jCj4gQEAgLTMyOSwyNyAr MzI5LDYgQEAgc3RhdGljIGJvb2wgZ2V0X21vY3Nfc2V0dGluZ3MoY29uc3Qgc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICAKPiAtc3RhdGljIGk5 MTVfcmVnX3QgbW9jc19yZWdpc3Rlcihjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsIGludCBpbmRleCkKPiAtewo+IC0Jc3dpdGNoIChlbmdpbmUtPmlkKSB7Cj4gLQljYXNlIFJD UzA6Cj4gLQkJcmV0dXJuIEdFTjlfR0ZYX01PQ1MoaW5kZXgpOwo+IC0JY2FzZSBWQ1MwOgo+IC0J CXJldHVybiBHRU45X01GWDBfTU9DUyhpbmRleCk7Cj4gLQljYXNlIEJDUzA6Cj4gLQkJcmV0dXJu IEdFTjlfQkxUX01PQ1MoaW5kZXgpOwo+IC0JY2FzZSBWRUNTMDoKPiAtCQlyZXR1cm4gR0VOOV9W RUJPWF9NT0NTKGluZGV4KTsKPiAtCWNhc2UgVkNTMToKPiAtCQlyZXR1cm4gR0VOOV9NRlgxX01P Q1MoaW5kZXgpOwo+IC0JY2FzZSBWQ1MyOgo+IC0JCXJldHVybiBHRU4xMV9NRlgyX01PQ1MoaW5k ZXgpOwo+IC0JZGVmYXVsdDoKPiAtCQlNSVNTSU5HX0NBU0UoZW5naW5lLT5pZCk7Cj4gLQkJcmV0 dXJuIElOVkFMSURfTU1JT19SRUc7Cj4gLQl9Cj4gLX0KPiAtCj4gIC8qCj4gICAqIEdldCBjb250 cm9sX3ZhbHVlIGZyb20gTU9DUyBlbnRyeSB0YWtpbmcgaW50byBhY2NvdW50IHdoZW4gaXQncyBu b3QgdXNlZDoKPiAgICogSTkxNV9NT0NTX1BURSdzIHZhbHVlIGlzIHJldHVybmVkIGluIHRoaXMg Y2FzZS4KPiBAQCAtMzU3LDI5ICszMzYsNDcgQEAgc3RhdGljIGk5MTVfcmVnX3QgbW9jc19yZWdp c3Rlcihjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBpbmRleCkKPiAg c3RhdGljIHUzMiBnZXRfZW50cnlfY29udHJvbChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190 YWJsZSAqdGFibGUsCj4gIAkJCSAgICAgdW5zaWduZWQgaW50IGluZGV4KQo+ICB7Cj4gLQlpZiAo dGFibGUtPnRhYmxlW2luZGV4XS51c2VkKQo+ICsJaWYgKGluZGV4IDwgdGFibGUtPnNpemUgJiYg dGFibGUtPnRhYmxlW2luZGV4XS51c2VkKQo+ICAJCXJldHVybiB0YWJsZS0+dGFibGVbaW5kZXhd LmNvbnRyb2xfdmFsdWU7Cj4gIAo+ICAJcmV0dXJuIHRhYmxlLT50YWJsZVtJOTE1X01PQ1NfUFRF XS5jb250cm9sX3ZhbHVlOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbml0X21vY3NfdGFibGUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+IC0JCQkgICAgY29uc3Qgc3RydWN0IGRy bV9pOTE1X21vY3NfdGFibGUgKnRhYmxlKQo+ICsjZGVmaW5lIGZvcl9lYWNoX21vY3MobW9jcywg dCwgaSkgXAo+ICsJZm9yIChpID0gMDsgXAo+ICsJICAgICBpIDwgdC0+bl9lbnRyaWVzID8gKG1v Y3MgPSBnZXRfZW50cnlfY29udHJvbCh0LCBpKSksIDEgOiAwO1wKPiArCSAgICAgaSsrKQoKY2hl Y2twYXRjaCBtaWdodCBjb21wbGFpbiBhYm91dCBzb21lIHBhcmFtIHJldXNhZ2UuCgo+ICsKPiAr c3RhdGljIHZvaWQgX19pbml0X21vY3NfdGFibGUoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3Jl LAo+ICsJCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAqdGFibGUsCj4g KwkJCSAgICAgIHUzMiBhZGRyKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUg PSBlbmdpbmUtPnVuY29yZTsKPiAtCXUzMiB1bnVzZWRfdmFsdWUgPSB0YWJsZS0+dGFibGVbSTkx NV9NT0NTX1BURV0uY29udHJvbF92YWx1ZTsKPiAgCXVuc2lnbmVkIGludCBpOwo+ICsJdTMyIG1v Y3M7Cj4gKwo+ICsJZm9yX2VhY2hfbW9jcyhtb2NzLCB0YWJsZSwgaSkKPiArCQlpbnRlbF91bmNv cmVfd3JpdGVfZncodW5jb3JlLCBfTU1JTyhhZGRyICsgaSAqIDQpLCBtb2NzKTsKPiArfQo+ICAK PiAtCWZvciAoaSA9IDA7IGkgPCB0YWJsZS0+c2l6ZTsgaSsrKQo+IC0JCWludGVsX3VuY29yZV93 cml0ZV9mdyh1bmNvcmUsCj4gLQkJCQkgICAgICBtb2NzX3JlZ2lzdGVyKGVuZ2luZSwgaSksCj4g LQkJCQkgICAgICBnZXRfZW50cnlfY29udHJvbCh0YWJsZSwgaSkpOwo+ICtzdGF0aWMgdTMyIG1v Y3NfcmVnaXN0ZXIoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICt7Cj4g KwlzdGF0aWMgY29uc3QgdTMyIG9mZnNldFtdID0gewo+ICsJCVtSQ1MwXSAgPSAweDBjODAwLAo+ ICsJCVtWQ1MwXSAgPSAweDBjOTAwLAo+ICsJCVtWQ1MxXSAgPSAweDBjYTAwLAo+ICsJCVtWRUNT MF0gPSAweDBjYjAwLAo+ICsJCVtCQ1MwXSAgPSAweDBjYzAwLAo+ICsJCVtWQ1MyXSAgPSAweDEw MDAwLAoKU29tZW9uZSBtaWdodCBjb21wbGFpbiBhYm91dCB0aGUgbGFjayBvZiBkZWZpbmVzLiBS ZW1vdmUKdGhlIHVudXNlZCBkZWZpbmVzIG9yIGNoYW5nZSB0aGVtIHRvIHdvcmsgd2l0aG91dCBp bmRleC4KCj4gKwl9Owo+ICsKPiArCUdFTV9CVUdfT04oZW5naW5lLT5pZCA+IEFSUkFZX1NJWkUo b2Zmc2V0KSk7CgplbmdpbmUtPmlkID49IEFSUkFZX1NJWkUob2Zmc2V0KTsKCkFsc28gdGhlIGNv bW1lbnRzIHRocm91Z2hvdXQgdGhlIGZpbGUgbmVlZCBtYXNzYWdpbmcKYWZ0ZXIgdGhpcyBjaGFu Z2UuCgpUaGVzZSAzIG1vY3MgcGF0Y2hlcyBsb29rcyBnb29kIG90aGVyd2lzZS4KClBsZWFzZSB1 cGRhdGUgcmVzZW5kIGFzIGEgc2VwYXJhdGUgc2VyaWVzLgoKLU1pa2EKCj4gKwlyZXR1cm4gb2Zm c2V0W2VuZ2luZS0+aWRdOwo+ICt9Cj4gIAo+IC0JLyogQWxsIHJlbWFpbmluZyBlbnRyaWVzIGFy ZSB1bnVzZWQgKi8KPiAtCWZvciAoOyBpIDwgdGFibGUtPm5fZW50cmllczsgaSsrKQo+IC0JCWlu dGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsCj4gLQkJCQkgICAgICBtb2NzX3JlZ2lzdGVyKGVu Z2luZSwgaSksCj4gLQkJCQkgICAgICB1bnVzZWRfdmFsdWUpOwo+ICtzdGF0aWMgdm9pZCBpbml0 X21vY3NfdGFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICsJCQkgICAgY29u c3Qgc3RydWN0IGRybV9pOTE1X21vY3NfdGFibGUgKnRhYmxlKQo+ICt7Cj4gKwlfX2luaXRfbW9j c190YWJsZShlbmdpbmUtPnVuY29yZSwgdGFibGUsIG1vY3NfcmVnaXN0ZXIoZW5naW5lKSk7Cj4g IH0KPiAgCj4gIC8qCj4gQEAgLTM4OSw3ICszODYsNyBAQCBzdGF0aWMgdm9pZCBpbml0X21vY3Nf dGFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICBzdGF0aWMgdTE2IGdldF9l bnRyeV9sM2NjKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSwKPiAgCQkJ ICB1bnNpZ25lZCBpbnQgaW5kZXgpCj4gIHsKPiAtCWlmICh0YWJsZS0+dGFibGVbaW5kZXhdLnVz ZWQpCj4gKwlpZiAoaW5kZXggPCB0YWJsZS0+c2l6ZSAmJiB0YWJsZS0+dGFibGVbaW5kZXhdLnVz ZWQpCj4gIAkJcmV0dXJuIHRhYmxlLT50YWJsZVtpbmRleF0ubDNjY192YWx1ZTsKPiAgCj4gIAly ZXR1cm4gdGFibGUtPnRhYmxlW0k5MTVfTU9DU19QVEVdLmwzY2NfdmFsdWU7Cj4gQEAgLTQwMCwz NyArMzk3LDIzIEBAIHN0YXRpYyBpbmxpbmUgdTMyIGwzY2NfY29tYmluZSh1MTYgbG93LCB1MTYg aGlnaCkKPiAgCXJldHVybiBsb3cgfCAodTMyKWhpZ2ggPDwgMTY7Cj4gIH0KPiAgCj4gKyNkZWZp bmUgZm9yX2VhY2hfbDNjYyhsM2NjLCB0LCBpKSBcCj4gKwlmb3IgKGkgPSAwOyBcCj4gKwkgICAg IGkgPCAodC0+bl9lbnRyaWVzICsgMSkgLyAyID8gXAo+ICsJICAgICAobDNjYyA9IGwzY2NfY29t YmluZShnZXRfZW50cnlfbDNjYyh0LCAyICogaSksIFwKPiArCQkJCSAgZ2V0X2VudHJ5X2wzY2Mo dCwgMiAqIGkgKyAxKSkpLCAxIDogXAo+ICsJICAgICAwOyBcCj4gKwkgICAgIGkrKykKPiArCj4g IHN0YXRpYyB2b2lkIGluaXRfbDNjY190YWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsCj4gIAkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAqdGFibGUpCj4g IHsKPiAgCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGVuZ2luZS0+dW5jb3JlOwo+IC0J dTE2IHVudXNlZF92YWx1ZSA9IHRhYmxlLT50YWJsZVtJOTE1X01PQ1NfUFRFXS5sM2NjX3ZhbHVl Owo+ICAJdW5zaWduZWQgaW50IGk7Cj4gKwl1MzIgbDNjYzsKPiAgCj4gLQlmb3IgKGkgPSAwOyBp IDwgdGFibGUtPnNpemUgLyAyOyBpKyspIHsKPiAtCQl1MTYgbG93ID0gZ2V0X2VudHJ5X2wzY2Mo dGFibGUsIDIgKiBpKTsKPiAtCQl1MTYgaGlnaCA9IGdldF9lbnRyeV9sM2NjKHRhYmxlLCAyICog aSArIDEpOwo+IC0KPiAtCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAo+IC0JCQkJICAgR0VO OV9MTkNGQ01PQ1MoaSksCj4gLQkJCQkgICBsM2NjX2NvbWJpbmUobG93LCBoaWdoKSk7Cj4gLQl9 Cj4gLQo+IC0JLyogT2RkIHRhYmxlIHNpemUgLSAxIGxlZnQgb3ZlciAqLwo+IC0JaWYgKHRhYmxl LT5zaXplICYgMSkgewo+IC0JCXUxNiBsb3cgPSBnZXRfZW50cnlfbDNjYyh0YWJsZSwgMiAqIGkp Owo+IC0KPiAtCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAo+IC0JCQkJICAgR0VOOV9MTkNG Q01PQ1MoaSksCj4gLQkJCQkgICBsM2NjX2NvbWJpbmUobG93LCB1bnVzZWRfdmFsdWUpKTsKPiAt CQlpKys7Cj4gLQl9Cj4gLQo+IC0JLyogQWxsIHJlbWFpbmluZyBlbnRyaWVzIGFyZSBhbHNvIHVu dXNlZCAqLwo+IC0JZm9yICg7IGkgPCB0YWJsZS0+bl9lbnRyaWVzIC8gMjsgaSsrKQo+IC0JCWlu dGVsX3VuY29yZV93cml0ZSh1bmNvcmUsCj4gLQkJCQkgICBHRU45X0xOQ0ZDTU9DUyhpKSwKPiAt CQkJCSAgIGwzY2NfY29tYmluZSh1bnVzZWRfdmFsdWUsIHVudXNlZF92YWx1ZSkpOwo+ICsJZm9y X2VhY2hfbDNjYyhsM2NjLCB0YWJsZSwgaSkKPiArCQlpbnRlbF91bmNvcmVfd3JpdGVfZncodW5j b3JlLCBHRU45X0xOQ0ZDTU9DUyhpKSwgbDNjYyk7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfbW9j c19pbml0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gQEAgLTQ1MSwx MSArNDM0LDkgQEAgdm9pZCBpbnRlbF9tb2NzX2luaXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKPiAgCQlpbml0X2wzY2NfdGFibGUoZW5naW5lLCAmdGFibGUpOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9tb2NzX2luaXRfZ2xvYmFsKHN0cnVjdCBpbnRlbF9n dCAqZ3QpCj4gK3N0YXRpYyB2b2lkIGluaXRfZ2xvYmFsX21vY3Moc3RydWN0IGludGVsX2d0ICpn dCkKPiAgewo+IC0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKPiAg CXN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlIHRhYmxlOwo+IC0JdW5zaWduZWQgaW50IGluZGV4 Owo+ICAKPiAgCS8qCj4gIAkgKiBMTEMgYW5kIGVEUkFNIGNvbnRyb2wgdmFsdWVzIGFyZSBub3Qg YXBwbGljYWJsZSB0byBkZ2Z4Cj4gQEAgLTQ2MywyOSArNDQ0LDE0IEBAIHN0YXRpYyB2b2lkIGlu dGVsX21vY3NfaW5pdF9nbG9iYWwoc3RydWN0IGludGVsX2d0ICpndCkKPiAgCWlmIChJU19ER0ZY KGd0LT5pOTE1KSkKPiAgCQlyZXR1cm47Cj4gIAo+IC0JR0VNX0JVR19PTighSEFTX0dMT0JBTF9N T0NTX1JFR0lTVEVSUyhndC0+aTkxNSkpOwo+IC0KPiAgCWlmICghZ2V0X21vY3Nfc2V0dGluZ3Mo Z3QtPmk5MTUsICZ0YWJsZSkpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWZvciAoaW5kZXggPSAwOyBp bmRleCA8IHRhYmxlLnNpemU7IGluZGV4KyspCj4gLQkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29y ZSwKPiAtCQkJCSAgIEdFTjEyX0dMT0JBTF9NT0NTKGluZGV4KSwKPiAtCQkJCSAgIHRhYmxlLnRh YmxlW2luZGV4XS5jb250cm9sX3ZhbHVlKTsKPiAtCj4gLQkvKgo+IC0JICogT2ssIG5vdyBzZXQg dGhlIHVudXNlZCBlbnRyaWVzIHRvIHRoZSBpbnZhbGlkIGVudHJ5IChpbmRleCAwKS4gVGhlc2UK PiAtCSAqIGVudHJpZXMgYXJlIG9mZmljaWFsbHkgdW5kZWZpbmVkIGFuZCBubyBjb250cmFjdCBm b3IgdGhlIGNvbnRlbnRzIGFuZAo+IC0JICogc2V0dGluZ3MgaXMgZ2l2ZW4gZm9yIHRoZXNlIGVu dHJpZXMuCj4gLQkgKi8KPiAtCWZvciAoOyBpbmRleCA8IHRhYmxlLm5fZW50cmllczsgaW5kZXgr KykKPiAtCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAo+IC0JCQkJICAgR0VOMTJfR0xPQkFM X01PQ1MoaW5kZXgpLAo+IC0JCQkJICAgdGFibGUudGFibGVbSTkxNV9NT0NTX1BURV0uY29udHJv bF92YWx1ZSk7Cj4gKwlfX2luaXRfbW9jc190YWJsZShndC0+dW5jb3JlLCAmdGFibGUsIDB4NDAw MCk7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfbW9jc19pbml0KHN0cnVjdCBpbnRlbF9ndCAqZ3Qp Cj4gIHsKPiAgCWlmIChIQVNfR0xPQkFMX01PQ1NfUkVHSVNURVJTKGd0LT5pOTE1KSkKPiAtCQlp bnRlbF9tb2NzX2luaXRfZ2xvYmFsKGd0KTsKPiArCQlpbml0X2dsb2JhbF9tb2NzKGd0KTsKPiAg fQo+IC0tIAo+IDIuMjQuMAo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E3285C43331 for ; Tue, 12 Nov 2019 17:02:32 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C2BD92196E for ; Tue, 12 Nov 2019 17:02:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C2BD92196E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3E1C36E3A0; Tue, 12 Nov 2019 17:02:32 +0000 (UTC) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 696EA6E3A0 for ; Tue, 12 Nov 2019 17:02:31 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Nov 2019 09:02:31 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,297,1569308400"; d="scan'208";a="404304321" Received: from gaia.fi.intel.com ([10.237.72.192]) by fmsmga005.fm.intel.com with ESMTP; 12 Nov 2019 09:02:29 -0800 Received: by gaia.fi.intel.com (Postfix, from userid 1000) id 97A245C09E7; Tue, 12 Nov 2019 19:02:18 +0200 (EET) From: Mika Kuoppala To: Chris Wilson , intel-gfx@lists.freedesktop.org In-Reply-To: <20191112092854.869-26-chris@chris-wilson.co.uk> References: <20191112092854.869-1-chris@chris-wilson.co.uk> <20191112092854.869-26-chris@chris-wilson.co.uk> Date: Tue, 12 Nov 2019 19:02:18 +0200 Message-ID: <87y2wlyqn9.fsf@gaia.fi.intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH 26/27] drm/i915/gt: Refactor mocs loops into single control macro X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191112170218._sgIKQKRfqnlXve4riCwR7mZ4ex-oopQrZwrprg1ENc@z> Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gV2UgcmVw ZWF0ZWRseSAoYW5kIG1vcmUgc28gaW4gZnV0dXJlKSB1c2UgdGhlIHNhbWUgbG9vcGluZyBjb25z dHJ1Y3QKPiBvdmVyIHRoZSBtb2NzIGRlZmluaXRpb24gdGFibGUgdG8gc2V0dXAgdGhlIHJlZ2lz dGVyIHN0YXRlLiBSZWZhY3RvciB0aGUKPiBsb29wIGNvbnN0cnVjdCBpbnRvIGEgcmV1c2FibGUg bWFjcm8uCj4KPiBhZGQvcmVtb3ZlOiAyLzEgZ3Jvdy9zaHJpbms6IDEvMiB1cC9kb3duOiAxMTMv LTMzMCAoLTIxNykKPiBGdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvbGQgICAgIG5ldyAgIGRlbHRhCj4gaW50ZWxfbW9jc19pbml0X2VuZ2luZS5jb2xkICAgICAg ICAgICAgICAgICAgICAtICAgICAgNzEgICAgICs3MQo+IG9mZnNldCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLSAgICAgIDI4ICAgICArMjgKPiBfX2Z1bmNfXyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcyNzMgICAxNzI4NyAgICAgKzE0Cj4gaW50 ZWxfbW9jc19pbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQzICAgICAxMTMgICAg IC0zMAo+IG1vY3NfcmVnaXN0ZXIuaXNyYSAgICAgICAgICAgICAgICAgICAgICAgICAgICA5MSAg ICAgICAtICAgICAtOTEKPiBpbnRlbF9tb2NzX2luaXRfZW5naW5lICAgICAgICAgICAgICAgICAg ICAgICA1MDMgICAgIDI5NCAgICAtMjA5Cj4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24g PGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfbW9jcy5jIHwgMTI4ICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZp bGUgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgODEgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jCj4gaW5kZXggZTZmM2YzNmEzOTg4Li42M2QwZmRmNjcy MTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jCj4gQEAgLTMyOSwyNyAr MzI5LDYgQEAgc3RhdGljIGJvb2wgZ2V0X21vY3Nfc2V0dGluZ3MoY29uc3Qgc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICAKPiAtc3RhdGljIGk5 MTVfcmVnX3QgbW9jc19yZWdpc3Rlcihjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsIGludCBpbmRleCkKPiAtewo+IC0Jc3dpdGNoIChlbmdpbmUtPmlkKSB7Cj4gLQljYXNlIFJD UzA6Cj4gLQkJcmV0dXJuIEdFTjlfR0ZYX01PQ1MoaW5kZXgpOwo+IC0JY2FzZSBWQ1MwOgo+IC0J CXJldHVybiBHRU45X01GWDBfTU9DUyhpbmRleCk7Cj4gLQljYXNlIEJDUzA6Cj4gLQkJcmV0dXJu IEdFTjlfQkxUX01PQ1MoaW5kZXgpOwo+IC0JY2FzZSBWRUNTMDoKPiAtCQlyZXR1cm4gR0VOOV9W RUJPWF9NT0NTKGluZGV4KTsKPiAtCWNhc2UgVkNTMToKPiAtCQlyZXR1cm4gR0VOOV9NRlgxX01P Q1MoaW5kZXgpOwo+IC0JY2FzZSBWQ1MyOgo+IC0JCXJldHVybiBHRU4xMV9NRlgyX01PQ1MoaW5k ZXgpOwo+IC0JZGVmYXVsdDoKPiAtCQlNSVNTSU5HX0NBU0UoZW5naW5lLT5pZCk7Cj4gLQkJcmV0 dXJuIElOVkFMSURfTU1JT19SRUc7Cj4gLQl9Cj4gLX0KPiAtCj4gIC8qCj4gICAqIEdldCBjb250 cm9sX3ZhbHVlIGZyb20gTU9DUyBlbnRyeSB0YWtpbmcgaW50byBhY2NvdW50IHdoZW4gaXQncyBu b3QgdXNlZDoKPiAgICogSTkxNV9NT0NTX1BURSdzIHZhbHVlIGlzIHJldHVybmVkIGluIHRoaXMg Y2FzZS4KPiBAQCAtMzU3LDI5ICszMzYsNDcgQEAgc3RhdGljIGk5MTVfcmVnX3QgbW9jc19yZWdp c3Rlcihjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBpbmRleCkKPiAg c3RhdGljIHUzMiBnZXRfZW50cnlfY29udHJvbChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190 YWJsZSAqdGFibGUsCj4gIAkJCSAgICAgdW5zaWduZWQgaW50IGluZGV4KQo+ICB7Cj4gLQlpZiAo dGFibGUtPnRhYmxlW2luZGV4XS51c2VkKQo+ICsJaWYgKGluZGV4IDwgdGFibGUtPnNpemUgJiYg dGFibGUtPnRhYmxlW2luZGV4XS51c2VkKQo+ICAJCXJldHVybiB0YWJsZS0+dGFibGVbaW5kZXhd LmNvbnRyb2xfdmFsdWU7Cj4gIAo+ICAJcmV0dXJuIHRhYmxlLT50YWJsZVtJOTE1X01PQ1NfUFRF XS5jb250cm9sX3ZhbHVlOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbml0X21vY3NfdGFibGUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+IC0JCQkgICAgY29uc3Qgc3RydWN0IGRy bV9pOTE1X21vY3NfdGFibGUgKnRhYmxlKQo+ICsjZGVmaW5lIGZvcl9lYWNoX21vY3MobW9jcywg dCwgaSkgXAo+ICsJZm9yIChpID0gMDsgXAo+ICsJICAgICBpIDwgdC0+bl9lbnRyaWVzID8gKG1v Y3MgPSBnZXRfZW50cnlfY29udHJvbCh0LCBpKSksIDEgOiAwO1wKPiArCSAgICAgaSsrKQoKY2hl Y2twYXRjaCBtaWdodCBjb21wbGFpbiBhYm91dCBzb21lIHBhcmFtIHJldXNhZ2UuCgo+ICsKPiAr c3RhdGljIHZvaWQgX19pbml0X21vY3NfdGFibGUoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3Jl LAo+ICsJCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAqdGFibGUsCj4g KwkJCSAgICAgIHUzMiBhZGRyKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUg PSBlbmdpbmUtPnVuY29yZTsKPiAtCXUzMiB1bnVzZWRfdmFsdWUgPSB0YWJsZS0+dGFibGVbSTkx NV9NT0NTX1BURV0uY29udHJvbF92YWx1ZTsKPiAgCXVuc2lnbmVkIGludCBpOwo+ICsJdTMyIG1v Y3M7Cj4gKwo+ICsJZm9yX2VhY2hfbW9jcyhtb2NzLCB0YWJsZSwgaSkKPiArCQlpbnRlbF91bmNv cmVfd3JpdGVfZncodW5jb3JlLCBfTU1JTyhhZGRyICsgaSAqIDQpLCBtb2NzKTsKPiArfQo+ICAK PiAtCWZvciAoaSA9IDA7IGkgPCB0YWJsZS0+c2l6ZTsgaSsrKQo+IC0JCWludGVsX3VuY29yZV93 cml0ZV9mdyh1bmNvcmUsCj4gLQkJCQkgICAgICBtb2NzX3JlZ2lzdGVyKGVuZ2luZSwgaSksCj4g LQkJCQkgICAgICBnZXRfZW50cnlfY29udHJvbCh0YWJsZSwgaSkpOwo+ICtzdGF0aWMgdTMyIG1v Y3NfcmVnaXN0ZXIoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICt7Cj4g KwlzdGF0aWMgY29uc3QgdTMyIG9mZnNldFtdID0gewo+ICsJCVtSQ1MwXSAgPSAweDBjODAwLAo+ ICsJCVtWQ1MwXSAgPSAweDBjOTAwLAo+ICsJCVtWQ1MxXSAgPSAweDBjYTAwLAo+ICsJCVtWRUNT MF0gPSAweDBjYjAwLAo+ICsJCVtCQ1MwXSAgPSAweDBjYzAwLAo+ICsJCVtWQ1MyXSAgPSAweDEw MDAwLAoKU29tZW9uZSBtaWdodCBjb21wbGFpbiBhYm91dCB0aGUgbGFjayBvZiBkZWZpbmVzLiBS ZW1vdmUKdGhlIHVudXNlZCBkZWZpbmVzIG9yIGNoYW5nZSB0aGVtIHRvIHdvcmsgd2l0aG91dCBp bmRleC4KCj4gKwl9Owo+ICsKPiArCUdFTV9CVUdfT04oZW5naW5lLT5pZCA+IEFSUkFZX1NJWkUo b2Zmc2V0KSk7CgplbmdpbmUtPmlkID49IEFSUkFZX1NJWkUob2Zmc2V0KTsKCkFsc28gdGhlIGNv bW1lbnRzIHRocm91Z2hvdXQgdGhlIGZpbGUgbmVlZCBtYXNzYWdpbmcKYWZ0ZXIgdGhpcyBjaGFu Z2UuCgpUaGVzZSAzIG1vY3MgcGF0Y2hlcyBsb29rcyBnb29kIG90aGVyd2lzZS4KClBsZWFzZSB1 cGRhdGUgcmVzZW5kIGFzIGEgc2VwYXJhdGUgc2VyaWVzLgoKLU1pa2EKCj4gKwlyZXR1cm4gb2Zm c2V0W2VuZ2luZS0+aWRdOwo+ICt9Cj4gIAo+IC0JLyogQWxsIHJlbWFpbmluZyBlbnRyaWVzIGFy ZSB1bnVzZWQgKi8KPiAtCWZvciAoOyBpIDwgdGFibGUtPm5fZW50cmllczsgaSsrKQo+IC0JCWlu dGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsCj4gLQkJCQkgICAgICBtb2NzX3JlZ2lzdGVyKGVu Z2luZSwgaSksCj4gLQkJCQkgICAgICB1bnVzZWRfdmFsdWUpOwo+ICtzdGF0aWMgdm9pZCBpbml0 X21vY3NfdGFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICsJCQkgICAgY29u c3Qgc3RydWN0IGRybV9pOTE1X21vY3NfdGFibGUgKnRhYmxlKQo+ICt7Cj4gKwlfX2luaXRfbW9j c190YWJsZShlbmdpbmUtPnVuY29yZSwgdGFibGUsIG1vY3NfcmVnaXN0ZXIoZW5naW5lKSk7Cj4g IH0KPiAgCj4gIC8qCj4gQEAgLTM4OSw3ICszODYsNyBAQCBzdGF0aWMgdm9pZCBpbml0X21vY3Nf dGFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICBzdGF0aWMgdTE2IGdldF9l bnRyeV9sM2NjKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSwKPiAgCQkJ ICB1bnNpZ25lZCBpbnQgaW5kZXgpCj4gIHsKPiAtCWlmICh0YWJsZS0+dGFibGVbaW5kZXhdLnVz ZWQpCj4gKwlpZiAoaW5kZXggPCB0YWJsZS0+c2l6ZSAmJiB0YWJsZS0+dGFibGVbaW5kZXhdLnVz ZWQpCj4gIAkJcmV0dXJuIHRhYmxlLT50YWJsZVtpbmRleF0ubDNjY192YWx1ZTsKPiAgCj4gIAly ZXR1cm4gdGFibGUtPnRhYmxlW0k5MTVfTU9DU19QVEVdLmwzY2NfdmFsdWU7Cj4gQEAgLTQwMCwz NyArMzk3LDIzIEBAIHN0YXRpYyBpbmxpbmUgdTMyIGwzY2NfY29tYmluZSh1MTYgbG93LCB1MTYg aGlnaCkKPiAgCXJldHVybiBsb3cgfCAodTMyKWhpZ2ggPDwgMTY7Cj4gIH0KPiAgCj4gKyNkZWZp bmUgZm9yX2VhY2hfbDNjYyhsM2NjLCB0LCBpKSBcCj4gKwlmb3IgKGkgPSAwOyBcCj4gKwkgICAg IGkgPCAodC0+bl9lbnRyaWVzICsgMSkgLyAyID8gXAo+ICsJICAgICAobDNjYyA9IGwzY2NfY29t YmluZShnZXRfZW50cnlfbDNjYyh0LCAyICogaSksIFwKPiArCQkJCSAgZ2V0X2VudHJ5X2wzY2Mo dCwgMiAqIGkgKyAxKSkpLCAxIDogXAo+ICsJICAgICAwOyBcCj4gKwkgICAgIGkrKykKPiArCj4g IHN0YXRpYyB2b2lkIGluaXRfbDNjY190YWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsCj4gIAkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAqdGFibGUpCj4g IHsKPiAgCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGVuZ2luZS0+dW5jb3JlOwo+IC0J dTE2IHVudXNlZF92YWx1ZSA9IHRhYmxlLT50YWJsZVtJOTE1X01PQ1NfUFRFXS5sM2NjX3ZhbHVl Owo+ICAJdW5zaWduZWQgaW50IGk7Cj4gKwl1MzIgbDNjYzsKPiAgCj4gLQlmb3IgKGkgPSAwOyBp IDwgdGFibGUtPnNpemUgLyAyOyBpKyspIHsKPiAtCQl1MTYgbG93ID0gZ2V0X2VudHJ5X2wzY2Mo dGFibGUsIDIgKiBpKTsKPiAtCQl1MTYgaGlnaCA9IGdldF9lbnRyeV9sM2NjKHRhYmxlLCAyICog aSArIDEpOwo+IC0KPiAtCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAo+IC0JCQkJICAgR0VO OV9MTkNGQ01PQ1MoaSksCj4gLQkJCQkgICBsM2NjX2NvbWJpbmUobG93LCBoaWdoKSk7Cj4gLQl9 Cj4gLQo+IC0JLyogT2RkIHRhYmxlIHNpemUgLSAxIGxlZnQgb3ZlciAqLwo+IC0JaWYgKHRhYmxl LT5zaXplICYgMSkgewo+IC0JCXUxNiBsb3cgPSBnZXRfZW50cnlfbDNjYyh0YWJsZSwgMiAqIGkp Owo+IC0KPiAtCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAo+IC0JCQkJICAgR0VOOV9MTkNG Q01PQ1MoaSksCj4gLQkJCQkgICBsM2NjX2NvbWJpbmUobG93LCB1bnVzZWRfdmFsdWUpKTsKPiAt CQlpKys7Cj4gLQl9Cj4gLQo+IC0JLyogQWxsIHJlbWFpbmluZyBlbnRyaWVzIGFyZSBhbHNvIHVu dXNlZCAqLwo+IC0JZm9yICg7IGkgPCB0YWJsZS0+bl9lbnRyaWVzIC8gMjsgaSsrKQo+IC0JCWlu dGVsX3VuY29yZV93cml0ZSh1bmNvcmUsCj4gLQkJCQkgICBHRU45X0xOQ0ZDTU9DUyhpKSwKPiAt CQkJCSAgIGwzY2NfY29tYmluZSh1bnVzZWRfdmFsdWUsIHVudXNlZF92YWx1ZSkpOwo+ICsJZm9y X2VhY2hfbDNjYyhsM2NjLCB0YWJsZSwgaSkKPiArCQlpbnRlbF91bmNvcmVfd3JpdGVfZncodW5j b3JlLCBHRU45X0xOQ0ZDTU9DUyhpKSwgbDNjYyk7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfbW9j c19pbml0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gQEAgLTQ1MSwx MSArNDM0LDkgQEAgdm9pZCBpbnRlbF9tb2NzX2luaXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKPiAgCQlpbml0X2wzY2NfdGFibGUoZW5naW5lLCAmdGFibGUpOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9tb2NzX2luaXRfZ2xvYmFsKHN0cnVjdCBpbnRlbF9n dCAqZ3QpCj4gK3N0YXRpYyB2b2lkIGluaXRfZ2xvYmFsX21vY3Moc3RydWN0IGludGVsX2d0ICpn dCkKPiAgewo+IC0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKPiAg CXN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlIHRhYmxlOwo+IC0JdW5zaWduZWQgaW50IGluZGV4 Owo+ICAKPiAgCS8qCj4gIAkgKiBMTEMgYW5kIGVEUkFNIGNvbnRyb2wgdmFsdWVzIGFyZSBub3Qg YXBwbGljYWJsZSB0byBkZ2Z4Cj4gQEAgLTQ2MywyOSArNDQ0LDE0IEBAIHN0YXRpYyB2b2lkIGlu dGVsX21vY3NfaW5pdF9nbG9iYWwoc3RydWN0IGludGVsX2d0ICpndCkKPiAgCWlmIChJU19ER0ZY KGd0LT5pOTE1KSkKPiAgCQlyZXR1cm47Cj4gIAo+IC0JR0VNX0JVR19PTighSEFTX0dMT0JBTF9N T0NTX1JFR0lTVEVSUyhndC0+aTkxNSkpOwo+IC0KPiAgCWlmICghZ2V0X21vY3Nfc2V0dGluZ3Mo Z3QtPmk5MTUsICZ0YWJsZSkpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWZvciAoaW5kZXggPSAwOyBp bmRleCA8IHRhYmxlLnNpemU7IGluZGV4KyspCj4gLQkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29y ZSwKPiAtCQkJCSAgIEdFTjEyX0dMT0JBTF9NT0NTKGluZGV4KSwKPiAtCQkJCSAgIHRhYmxlLnRh YmxlW2luZGV4XS5jb250cm9sX3ZhbHVlKTsKPiAtCj4gLQkvKgo+IC0JICogT2ssIG5vdyBzZXQg dGhlIHVudXNlZCBlbnRyaWVzIHRvIHRoZSBpbnZhbGlkIGVudHJ5IChpbmRleCAwKS4gVGhlc2UK PiAtCSAqIGVudHJpZXMgYXJlIG9mZmljaWFsbHkgdW5kZWZpbmVkIGFuZCBubyBjb250cmFjdCBm b3IgdGhlIGNvbnRlbnRzIGFuZAo+IC0JICogc2V0dGluZ3MgaXMgZ2l2ZW4gZm9yIHRoZXNlIGVu dHJpZXMuCj4gLQkgKi8KPiAtCWZvciAoOyBpbmRleCA8IHRhYmxlLm5fZW50cmllczsgaW5kZXgr KykKPiAtCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAo+IC0JCQkJICAgR0VOMTJfR0xPQkFM X01PQ1MoaW5kZXgpLAo+IC0JCQkJICAgdGFibGUudGFibGVbSTkxNV9NT0NTX1BURV0uY29udHJv bF92YWx1ZSk7Cj4gKwlfX2luaXRfbW9jc190YWJsZShndC0+dW5jb3JlLCAmdGFibGUsIDB4NDAw MCk7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfbW9jc19pbml0KHN0cnVjdCBpbnRlbF9ndCAqZ3Qp Cj4gIHsKPiAgCWlmIChIQVNfR0xPQkFMX01PQ1NfUkVHSVNURVJTKGd0LT5pOTE1KSkKPiAtCQlp bnRlbF9tb2NzX2luaXRfZ2xvYmFsKGd0KTsKPiArCQlpbml0X2dsb2JhbF9tb2NzKGd0KTsKPiAg fQo+IC0tIAo+IDIuMjQuMAo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeA==