From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH v6] drm/i915/icl: Preempt-to-idle support in execlists. Date: Fri, 14 Dec 2018 13:10:57 +0200 Message-ID: <154478585745.4793.16192973704863853981@jlahtine-desk.ger.corp.intel.com> References: <1522163879-10837-1-git-send-email-tomasz.lis@intel.com> <1541783933-9045-1-git-send-email-tomasz.lis@intel.com> <3f99a0a4-9efc-8b12-eade-5c9ca1a847ab@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 80F296F415 for ; Fri, 14 Dec 2018 11:11:01 +0000 (UTC) In-Reply-To: <3f99a0a4-9efc-8b12-eade-5c9ca1a847ab@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: Tomasz Lis , Tvrtko Ursulin , intel-gfx@lists.freedesktop.org Cc: Mika Kuoppala List-Id: intel-gfx@lists.freedesktop.org UXVvdGluZyBUdnJ0a28gVXJzdWxpbiAoMjAxOC0xMi0xMCAxNzo0MDozNCkKPiAKPiBPbiAwOS8x MS8yMDE4IDE3OjE4LCBUb21hc3ogTGlzIHdyb3RlOgo+ID4gVGhlIHBhdGNoIGFkZHMgc3VwcG9y dCBvZiBwcmVlbXB0LXRvLWlkbGUgcmVxdWVzdGluZyBieSBzZXR0aW5nIGEgcHJvcGVyCj4gPiBi aXQgd2l0aGluIEV4ZWNsaXN0IENvbnRyb2wgUmVnaXN0ZXIsIGFuZCByZWNlaXZpbmcgcHJlZW1w dGlvbiByZXN1bHQgZnJvbQo+ID4gQ29udGV4dCBTdGF0dXMgQnVmZmVyLgo+ID4gCj4gPiBQcmVl bXB0aW9uIGluIHByZXZpb3VzIGdlbnMgcmVxdWlyZWQgYSBzcGVjaWFsIGJhdGNoIGJ1ZmZlciB0 byBiZSBleGVjdXRlZCwKPiA+IHNvIHRoZSBDb21tYW5kIFN0cmVhbWVyIG5ldmVyIHByZWVtcHRl ZCB0byBpZGxlIGRpcmVjdGx5LiBJbiBJY2VsYWtlIGl0IGlzCj4gPiBwb3NzaWJsZSwgYXMgdGhl cmUgaXMgYSBoYXJkd2FyZSBtZWNoYW5pc20gdG8gaW5mb3JtIHRoZSBrZXJuZWwgYWJvdXQKPiA+ IHN0YXR1cyBvZiB0aGUgcHJlZW1wdGlvbiByZXF1ZXN0Lgo+ID4gCj4gPiBUaGlzIHBhdGNoIGRv ZXMgbm90IGNvdmVyIHVzaW5nIHRoZSBuZXcgcHJlZW1wdGlvbiBtZWNoYW5pc20gd2hlbiBHdUMg aXMKPiA+IGFjdGl2ZS4KPiA+IAo+ID4gVGhlIGFkdmFudGFnZSBvZiB0aGlzIG5ldyBwcmVlbXB0 aW9uIHBhdGggaXMgdGhhdCBvbmUgbGVzcyBjb250ZXh0IHN3aXRjaCBpcwo+ID4gbmVlZGVkLCBh bmQgcmV0dXJuaW5nIGluZm9ybWF0aW9uIGFib3V0IHByZWVtcGlvbiBiZWluZyBjb21wbGV0ZSBp cyByZWNlaXZlZAo+ID4gZWFybGllci4gVGhpcyBsZWFkcyB0byBzaWduaWZpY2FudCBpbXByb3Zl bWVudCBpbiBvdXIgSUdUIGxhdGVuY3kgdGVzdC4KPiA+IAo+ID4gVGVzdCBwZXJmb3JtZWQ6IGBn ZW1fZXhlY19sYXRlbmN5IC0tcnVuLXN1YnRlc3QgcmVuZGVyLXByZWVtcHRpb25gLCBleGVjdXRl ZAo+ID4gMTAwIHRpbWVzLCBvbiB0aGUgc2FtZSBwbGF0Zm9ybSwgc2FtZSBrZXJuZWwsIHdpdGhv dXQgYW5kIHdpdGggdGhpcyBwYXRjaC4KPiA+IFRoZW4gdGFrZW4gYXZlcmFnZSBvZiB0aGUgZXhl Y3V0aW9uIGxhdGVuY3kgdGltZXM6Cj4gPiAKPiA+IHN1YmNhc2UgICAgICAgICAgICAgICBvbGQg cHJlZW1wdC4gICAgaWNsIHByZWVtcHQuCj4gPiByZW5kZXItcmVuZGVyIDg1My4yMDM2ICAgICAg ICA4NDAuMTE3Ngo+ID4gcmVuZGVyLWJzZCAgICAyMzI4Ljg3MDggICAgICAgMjA4My4yNTc2Cj4g PiByZW5kZXItYmx0ICAgIDIwODAuMTUwMSAgICAgICAxODUyLjA3OTIKPiA+IHJlbmRlci12ZWJv eCAgMTU1My41MTM0ICAgICAgIDE0MjguNzYyCj4gPiAKPiA+IEltcHJvdmVtZW50IG9ic2VydmVk Ogo+ID4gCj4gPiBzdWJjYXNlICAgICAgICAgICAgICAgaW1wcm92ZW1lbnQKPiA+IHJlbmRlci1y ZW5kZXIgIDEuNTMlCj4gPiByZW5kZXItYnNkICAgIDEwLjU1JQo+ID4gcmVuZGVyLWJsdCAgICAx MC45NiUKPiA+IHJlbmRlci12ZWJveCAgIDguMDMlCj4gCj4gV2hvIGNhbiBleHBsYWluIHdoYXQg ZG8gdGhlIHBhcnRzIG90aGVyIHRoYW4gcmVuZGVyLXJlbmRlciBtZWFuPyBBdCAKPiBsZWFzdCBJ IGNhbiBtYWtlIHNlbnNlIG9mIHJlbmRlci1yZW5kZXIgLSBtZWFzdXJlIGhvdyBsb25nIGl0IHRh a2VzIGZvciAKPiBvbmUgY29udGV4dCB0byBwcmVlbXB0IGFub3RoZXIsIGJ1dCByZW5kZXItJG90 aGVyIGRyYXdzIGEgYmxhbmsgZm9yIG1lLiAKPiBIb3cgYXJlIGVuZ2luZXMgcHJlLWVtcHRpbmcg b25lIGFub3RoZXI/Cj4gCj4gQnV0IGFueXdheSwgZXZlbiBpZiBvbmx5IHRoZSAxLjUzJSBpbXBy b3ZlbWVudCBpcyB0aGUgcmVhbCBvbmUsIEZXSVcgCj4gdGhhdCdzIEkgdGhpbmsgZ29vZCBlbm91 Z2ggdG8ganVzdGlmeSB0aGUgcGF0Y2guIEl0IGlzIHN1ZmZpY2llbnRseSAKPiBzbWFsbCBhbmQg Y29udGFpbmVkIHRoYXQgSSBkb24ndCBzZWUgYSBwcm9ibGVtLiBTbzoKPiAKPiBBY2tlZC1ieTog VHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkFjY29yZGluZyB0byBD aHJpcywgdGhlIGJhc2VsaW5lIG1lYXN1cmVtZW50cyBhcmUgb2ZmIGJ5IGEgZGVjYWRlIG9yIHNv CmNvbXBhcmVkIHRvIHdoZXJlIHRoZXkgc2hvdWxkIGJlLiBUaGlzIG1pZ2h0IGJlIGF0dHJpYnV0 ZWQgdG8gZXhlY3V0aW9uCm9uIGZyZXF1ZW5jeSBsb2NrZWQgcGFydHM/CgpXb3VsZCBpdCBiZSB3 b3J0aHkgdG8gcmVwZWF0IHRoZSBudW1iZXJzIHdpdGggc29tZSB1bmxvY2tlZCBwYXJ0cz8KClJl Z2FyZHMsIEpvb25hcwoKPiAKPiBSZWdhcmRzLAo+IAo+IFR2cnRrbwo+IAo+ID4gCj4gPiB2Mjog QWRkZWQgbmVlZHNfcHJlZW1wdF9jb250ZXh0KCkgY2hhbmdlIHNvIHRoYXQgaXQgaXMgbm90IGNy ZWF0ZWQgd2hlbgo+ID4gICAgICBwcmVlbXB0LXRvLWlkbGUgaXMgc3VwcG9ydGVkLiAoQ2hyaXMp Cj4gPiAgICAgIFVwZGF0ZWQgc2V0dGluZyBIV0FDSyBmbGFnIHNvIHRoYXQgaXQgaXMgY2xlYXJl ZCBhZnRlcgo+ID4gICAgICBwcmVlbXB0LXRvLWRsZS4gKENocmlzLCBEYW5pZWxlKQo+ID4gICAg ICBVcGRhdGVkIHRvIHVzZSBJOTE1X0VOR0lORV9IQVNfUFJFRU1QVElPTiBmbGFnLiAoQ2hyaXMp Cj4gPiAKPiA+IHYzOiBGaXhlZCBuZWVkc19wcmVlbXB0X2NvbnRleHQoKSBjaGFuZ2UuIChDaHJp cykKPiA+ICAgICAgTWVyZ2VkIHByZWVtcHRpb24gdHJpZ2dlciBmdW5jdGlvbnMgdG8gb25lLiAo Q2hyaXMpCj4gPiAgICAgIEZpeGVkIGNvbnlleHQgc3RhdGUgdG9ub3QgYXNzdW1lIENPTVBMRVRF RF9NQVNLIGFmdGVyIHByZWVtcHRpb24sCj4gPiAgICAgIHNpbmNlIGlkbGUtdG8taWRsZSBjYXNl IHdpbGwgbm90IGhhdmUgaXQgc2V0Lgo+ID4gCj4gPiB2NDogU2ltcGxpZmllZCBuZWVkc19wcmVl bXB0X2NvbnRleHQoKSBjaGFuZ2UuIChEYW5pZWxlKQo+ID4gICAgICBSZW1vdmVkIGNsZWFyaW5n IEhXQUNLIGZsYWcgaW4gaWRsZS10by1pZGxlIHByZWVtcHQuIChEYW5pZWxlKQo+ID4gCj4gPiB2 NTogUmVuYW1lZCBpbmplY3RfcHJlZW1wdF9jb250ZXh0KCkuIChEYW5pZWxlKQo+ID4gICAgICBS ZW1vdmVkIGR1cGxpY2F0ZWQgR0VNX0JVR19PTigpIG9uIEhXQUNLIChEYW5pZWxlKQo+ID4gCj4g PiB2NjogQWRkZWQgcGVyZm9ybWFuY2UgdGVzdCByZXN1bHRzLgo+ID4gCj4gPiBCc3BlYzogMTg5 MjIKPiA+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5j b20+Cj4gPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gPiBD YzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNv bT4KPiA+IENjOiBNaWNoYWwgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4K PiA+IENjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KPiA+IFJldmll d2VkLWJ5OiBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50 ZWwuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogVG9tYXN6IExpcyA8dG9tYXN6Lmxpc0BpbnRlbC5j b20+Cj4gPiAtLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAg ICB8ICAgMiArCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyAg fCAgIDMgKy0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYyAgICAgICAgICB8 ICAgMyArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oIHwg ICAxICsKPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICB8IDEw OSArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5oICAgICAgICAgfCAgIDEgKwo+ID4gICA2IGZpbGVzIGNoYW5nZWQsIDg0 IGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiA+IGluZGV4IDA4ZDI1YWEuLmQyY2M5ZjEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gPiBAQCAtMjU3OSw2ICsyNTc5LDggQEAgaW50ZWxfaW5mbyhjb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgICAgICAgICAgICAgICgoZGV2X3By aXYpLT5pbmZvLmhhc19sb2dpY2FsX3JpbmdfZWxzcSkKPiA+ICAgI2RlZmluZSBIQVNfTE9HSUNB TF9SSU5HX1BSRUVNUFRJT04oZGV2X3ByaXYpIFwKPiA+ICAgICAgICAgICAgICAgKChkZXZfcHJp diktPmluZm8uaGFzX2xvZ2ljYWxfcmluZ19wcmVlbXB0aW9uKQo+ID4gKyNkZWZpbmUgSEFTX0hX X1BSRUVNUFRfVE9fSURMRShkZXZfcHJpdikgXAo+ID4gKyAgICAgICAgICAgICAoKGRldl9wcml2 KS0+aW5mby5oYXNfaHdfcHJlZW1wdF90b19pZGxlKQo+ID4gICAKPiA+ICAgI2RlZmluZSBIQVNf RVhFQ0xJU1RTKGRldl9wcml2KSBIQVNfTE9HSUNBTF9SSU5HX0NPTlRFWFRTKGRldl9wcml2KQo+ ID4gICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiA+IGluZGV4 IGI5Nzk2M2QuLjEwYjFkNjEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9jb250ZXh0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2NvbnRleHQuYwo+ID4gQEAgLTUyOSw3ICs1MjksOCBAQCBzdGF0aWMgdm9pZCBpbml0X2NvbnRl eHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ID4gICAKPiA+ICAgc3RhdGljIGJv b2wgbmVlZHNfcHJlZW1wdF9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ ID4gICB7Cj4gPiAtICAgICByZXR1cm4gSEFTX0xPR0lDQUxfUklOR19QUkVFTVBUSU9OKGk5MTUp Owo+ID4gKyAgICAgcmV0dXJuIEhBU19MT0dJQ0FMX1JJTkdfUFJFRU1QVElPTihpOTE1KSAmJgo+ ID4gKyAgICAgICAgICAgICFIQVNfSFdfUFJFRU1QVF9UT19JRExFKGk5MTUpOwo+ID4gICB9Cj4g PiAgIAo+ID4gICBpbnQgaTkxNV9nZW1fY29udGV4dHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9wY2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiA+IGluZGV4IDRjY2Fi ODMuLjgyMTI1Y2YgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bj aS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4gPiBAQCAtNjAw LDcgKzYwMCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxf Y2Fubm9ubGFrZV9pbmZvID0gewo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIFRSQU5TQ09E RVJfRFNJMF9PRkZTRVQsIFRSQU5TQ09ERVJfRFNJMV9PRkZTRVR9LCBcCj4gPiAgICAgICBHRU4o MTEpLCBcCj4gPiAgICAgICAuZGRiX3NpemUgPSAyMDQ4LCBcCj4gPiAtICAgICAuaGFzX2xvZ2lj YWxfcmluZ19lbHNxID0gMQo+ID4gKyAgICAgLmhhc19sb2dpY2FsX3JpbmdfZWxzcSA9IDEsIFwK PiA+ICsgICAgIC5oYXNfaHdfcHJlZW1wdF90b19pZGxlID0gMQo+ID4gICAKPiA+ICAgc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9pY2VsYWtlXzExX2luZm8gPSB7 Cj4gPiAgICAgICBHRU4xMV9GRUFUVVJFUywKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGV2aWNlX2luZm8uaAo+ID4gaW5kZXggODZjZTFkYi4uYTJlZTI3OCAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKPiA+IEBAIC0xMDQsNiArMTA0LDcg QEAgZW51bSBpbnRlbF9wcGd0dCB7Cj4gPiAgICAgICBmdW5jKGhhc19sb2dpY2FsX3JpbmdfY29u dGV4dHMpOyBcCj4gPiAgICAgICBmdW5jKGhhc19sb2dpY2FsX3JpbmdfZWxzcSk7IFwKPiA+ICAg ICAgIGZ1bmMoaGFzX2xvZ2ljYWxfcmluZ19wcmVlbXB0aW9uKTsgXAo+ID4gKyAgICAgZnVuYyho YXNfaHdfcHJlZW1wdF90b19pZGxlKTsgXAo+ID4gICAgICAgZnVuYyhoYXNfb3ZlcmxheSk7IFwK PiA+ICAgICAgIGZ1bmMoaGFzX3Bvb2xlZF9ldSk7IFwKPiA+ICAgICAgIGZ1bmMoaGFzX3Bzcik7 IFwKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gPiBpbmRleCAwOGZkOWIxLi4yNmI3MDYy IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gPiBAQCAtMTU1LDYgKzE1NSw3 IEBACj4gPiAgICNkZWZpbmUgR0VOOF9DVFhfU1RBVFVTX0FDVElWRV9JRExFICgxIDw8IDMpCj4g PiAgICNkZWZpbmUgR0VOOF9DVFhfU1RBVFVTX0NPTVBMRVRFICAgICgxIDw8IDQpCj4gPiAgICNk ZWZpbmUgR0VOOF9DVFhfU1RBVFVTX0xJVEVfUkVTVE9SRSAgICAgICAgKDEgPDwgMTUpCj4gPiAr I2RlZmluZSBHRU4xMV9DVFhfU1RBVFVTX1BSRUVNUFRfSURMRSAgICAgICAgKDEgPDwgMjkpCj4g PiAgIAo+ID4gICAjZGVmaW5lIEdFTjhfQ1RYX1NUQVRVU19DT01QTEVURURfTUFTSyBcCj4gPiAg ICAgICAgKEdFTjhfQ1RYX1NUQVRVU19DT01QTEVURSB8IEdFTjhfQ1RYX1NUQVRVU19QUkVFTVBU RUQpCj4gPiBAQCAtNTAwLDI5ICs1MDEsNDkgQEAgc3RhdGljIHZvaWQgcG9ydF9hc3NpZ24oc3Ry dWN0IGV4ZWNsaXN0X3BvcnQgKnBvcnQsIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ID4gICAg ICAgcG9ydF9zZXQocG9ydCwgcG9ydF9wYWNrKGk5MTVfcmVxdWVzdF9nZXQocnEpLCBwb3J0X2Nv dW50KHBvcnQpKSk7Cj4gPiAgIH0KPiA+ICAgCj4gPiAtc3RhdGljIHZvaWQgaW5qZWN0X3ByZWVt cHRfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gPiArc3RhdGljIHZv aWQgZXhlY2xpc3Rfc2VuZF9wcmVlbXB0X3RvX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAq ZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwo+ID4gLSAgICAgc3RydWN0IGludGVsX2Nv bnRleHQgKmNlID0KPiA+IC0gICAgICAgICAgICAgdG9faW50ZWxfY29udGV4dChlbmdpbmUtPmk5 MTUtPnByZWVtcHRfY29udGV4dCwgZW5naW5lKTsKPiA+IC0gICAgIHVuc2lnbmVkIGludCBuOwo+ ID4gKyAgICAgR0VNX1RSQUNFKCIlc1xuIiwgZW5naW5lLT5uYW1lKTsKPiA+ICAgCj4gPiAtICAg ICBHRU1fQlVHX09OKGV4ZWNsaXN0cy0+cHJlZW1wdF9jb21wbGV0ZV9zdGF0dXMgIT0KPiA+IC0g ICAgICAgICAgICAgICAgdXBwZXJfMzJfYml0cyhjZS0+bHJjX2Rlc2MpKTsKPiA+ICsgICAgIGlm IChIQVNfSFdfUFJFRU1QVF9UT19JRExFKGVuZ2luZS0+aTkxNSkpIHsKPiA+ICsgICAgICAgICAg ICAgLyoKPiA+ICsgICAgICAgICAgICAgICogaGFyZHdhcmUgd2hpY2ggSEFTX0hXX1BSRUVNUFRf VE9fSURMRSgpLCBhbHdheXMgYWxzbwo+ID4gKyAgICAgICAgICAgICAgKiBIQVNfTE9HSUNBTF9S SU5HX0VMU1EoKSwgc28gd2UgY2FuIGFzc3VtZSBjdHJsX3JlZyBpcyBzZXQKPiA+ICsgICAgICAg ICAgICAgICovCj4gPiArICAgICAgICAgICAgIEdFTV9CVUdfT04oZXhlY2xpc3RzLT5jdHJsX3Jl ZyA9PSBOVUxMKTsKPiA+ICAgCj4gPiAtICAgICAvKgo+ID4gLSAgICAgICogU3dpdGNoIHRvIG91 ciBlbXB0eSBwcmVlbXB0IGNvbnRleHQgc28KPiA+IC0gICAgICAqIHRoZSBzdGF0ZSBvZiB0aGUg R1BVIGlzIGtub3duIChpZGxlKS4KPiA+IC0gICAgICAqLwo+ID4gLSAgICAgR0VNX1RSQUNFKCIl c1xuIiwgZW5naW5lLT5uYW1lKTsKPiA+IC0gICAgIGZvciAobiA9IGV4ZWNsaXN0c19udW1fcG9y dHMoZXhlY2xpc3RzKTsgLS1uOyApCj4gPiAtICAgICAgICAgICAgIHdyaXRlX2Rlc2MoZXhlY2xp c3RzLCAwLCBuKTsKPiA+ICsgICAgICAgICAgICAgLyoKPiA+ICsgICAgICAgICAgICAgICogSWYg d2UgaGF2ZSBoYXJkd2FyZSBwcmVlbXB0LXRvLWlkbGUsIHdlIGRvIG5vdCBuZWVkIHRvCj4gPiAr ICAgICAgICAgICAgICAqIGluamVjdCBhbnkgam9iIHRvIHRoZSBoYXJkd2FyZS4gV2Ugb25seSBz ZXQgYSBmbGFnLgo+ID4gKyAgICAgICAgICAgICAgKi8KPiA+ICsgICAgICAgICAgICAgd3JpdGVs KEVMX0NUUkxfUFJFRU1QVF9UT19JRExFLCBleGVjbGlzdHMtPmN0cmxfcmVnKTsKPiA+ICsgICAg IH0gZWxzZSB7Cj4gPiArICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9Cj4g PiArICAgICAgICAgICAgICAgICAgICAgdG9faW50ZWxfY29udGV4dChlbmdpbmUtPmk5MTUtPnBy ZWVtcHRfY29udGV4dCwgZW5naW5lKTsKPiA+ICsgICAgICAgICAgICAgdW5zaWduZWQgaW50IG47 Cj4gPiAgIAo+ID4gLSAgICAgd3JpdGVfZGVzYyhleGVjbGlzdHMsIGNlLT5scmNfZGVzYywgbik7 Cj4gPiArICAgICAgICAgICAgIEdFTV9CVUdfT04oZXhlY2xpc3RzLT5wcmVlbXB0X2NvbXBsZXRl X3N0YXR1cyAhPQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHVwcGVyXzMyX2JpdHMoY2Ut PmxyY19kZXNjKSk7Cj4gPiArICAgICAgICAgICAgIEdFTV9CVUdfT04oKGNlLT5scmNfcmVnX3N0 YXRlW0NUWF9DT05URVhUX0NPTlRST0wgKyAxXSAmCj4gPiArICAgICAgICAgICAgICAgICAgICAg X01BU0tFRF9CSVRfRU5BQkxFKENUWF9DVFJMX0VOR0lORV9DVFhfUkVTVE9SRV9JTkhJQklUIHwK PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1RYX0NUUkxfRU5H SU5FX0NUWF9TQVZFX0lOSElCSVQpKSAhPQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIF9NQVNL RURfQklUX0VOQUJMRShDVFhfQ1RSTF9FTkdJTkVfQ1RYX1JFU1RPUkVfSU5ISUJJVCB8Cj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENUWF9DVFJMX0VOR0lORV9D VFhfU0FWRV9JTkhJQklUKSk7Cj4gPiAgIAo+ID4gLSAgICAgLyogd2UgbmVlZCB0byBtYW51YWxs eSBsb2FkIHRoZSBzdWJtaXQgcXVldWUgKi8KPiA+IC0gICAgIGlmIChleGVjbGlzdHMtPmN0cmxf cmVnKQo+ID4gLSAgICAgICAgICAgICB3cml0ZWwoRUxfQ1RSTF9MT0FELCBleGVjbGlzdHMtPmN0 cmxfcmVnKTsKPiA+ICsgICAgICAgICAgICAgLyoKPiA+ICsgICAgICAgICAgICAgICogU3dpdGNo IHRvIG91ciBlbXB0eSBwcmVlbXB0IGNvbnRleHQgc28KPiA+ICsgICAgICAgICAgICAgICogdGhl IHN0YXRlIG9mIHRoZSBHUFUgaXMga25vd24gKGlkbGUpLgo+ID4gKyAgICAgICAgICAgICAgKi8K PiA+ICsgICAgICAgICAgICAgZm9yIChuID0gZXhlY2xpc3RzX251bV9wb3J0cyhleGVjbGlzdHMp OyAtLW47ICkKPiA+ICsgICAgICAgICAgICAgICAgICAgICB3cml0ZV9kZXNjKGV4ZWNsaXN0cywg MCwgbik7Cj4gPiArCj4gPiArICAgICAgICAgICAgIHdyaXRlX2Rlc2MoZXhlY2xpc3RzLCBjZS0+ bHJjX2Rlc2MsIG4pOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICAvKiB3ZSBuZWVkIHRvIG1hbnVh bGx5IGxvYWQgdGhlIHN1Ym1pdCBxdWV1ZSAqLwo+ID4gKyAgICAgICAgICAgICBpZiAoZXhlY2xp c3RzLT5jdHJsX3JlZykKPiA+ICsgICAgICAgICAgICAgICAgICAgICB3cml0ZWwoRUxfQ1RSTF9M T0FELCBleGVjbGlzdHMtPmN0cmxfcmVnKTsKPiA+ICsgICAgIH0KPiA+ICAgCj4gPiAgICAgICBl eGVjbGlzdHNfY2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9IV0FDSyk7 Cj4gPiAgICAgICBleGVjbGlzdHNfc2V0X2FjdGl2ZShleGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJ VkVfUFJFRU1QVCk7Cj4gPiBAQCAtNTk1LDcgKzYxNiw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0 c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiA+ICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm47Cj4gPiAgIAo+ID4gICAgICAgICAgICAgICBpZiAobmVlZF9wcmVl bXB0KGVuZ2luZSwgbGFzdCwgZXhlY2xpc3RzLT5xdWV1ZV9wcmlvcml0eSkpIHsKPiA+IC0gICAg ICAgICAgICAgICAgICAgICBpbmplY3RfcHJlZW1wdF9jb250ZXh0KGVuZ2luZSk7Cj4gPiArICAg ICAgICAgICAgICAgICAgICAgZXhlY2xpc3Rfc2VuZF9wcmVlbXB0X3RvX2lkbGUoZW5naW5lKTsK PiA+ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Cj4gPiAgICAgICAgICAgICAgIH0KPiA+ ICAgCj4gPiBAQCAtOTIyLDIyICs5NDMsNDMgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19jc2Ioc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ZXhlY2xpc3RzLT5hY3RpdmUpOwo+ID4gICAKPiA+ICAgICAgICAgICAgICAgc3RhdHVzID0gYnVm WzIgKiBoZWFkXTsKPiA+IC0gICAgICAgICAgICAgaWYgKHN0YXR1cyAmIChHRU44X0NUWF9TVEFU VVNfSURMRV9BQ1RJVkUgfAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFTjhfQ1RY X1NUQVRVU19QUkVFTVBURUQpKQo+ID4gLSAgICAgICAgICAgICAgICAgICAgIGV4ZWNsaXN0c19z ZXRfYWN0aXZlKGV4ZWNsaXN0cywKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFWEVDTElTVFNfQUNUSVZFX0hXQUNLKTsKPiA+IC0gICAgICAgICAgICAgaWYg KHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19BQ1RJVkVfSURMRSkKPiA+IC0gICAgICAgICAgICAg ICAgICAgICBleGVjbGlzdHNfY2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywKPiA+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYRUNMSVNUU19BQ1RJVkVfSFdBQ0sp Owo+ID4gLQo+ID4gLSAgICAgICAgICAgICBpZiAoIShzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNf Q09NUExFVEVEX01BU0spKQo+ID4gLSAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4g KyAgICAgICAgICAgICAvKgo+ID4gKyAgICAgICAgICAgICAgKiBDaGVjayBpZiBwcmVlbXB0ZWQg ZnJvbSBpZGxlIHRvIGlkbGUgZGlyZWN0bHkuCj4gPiArICAgICAgICAgICAgICAqIFRoZSBTVEFU VVNfSURMRV9BQ1RJVkUgZmxhZyBpcyB1c2VkIHRvIG1hcmsKPiA+ICsgICAgICAgICAgICAgICog c3VjaCB0cmFuc2l0aW9uLgo+ID4gKyAgICAgICAgICAgICAgKi8KPiA+ICsgICAgICAgICAgICAg aWYgKChzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfSURMRV9BQ1RJVkUpICYmCj4gPiArICAgICAg ICAgICAgICAgICAgKHN0YXR1cyAmIEdFTjExX0NUWF9TVEFUVVNfUFJFRU1QVF9JRExFKSkgewo+ ID4gICAKPiA+IC0gICAgICAgICAgICAgLyogV2Ugc2hvdWxkIG5ldmVyIGdldCBhIENPTVBMRVRF RCB8IElETEVfQUNUSVZFISAqLwo+ID4gLSAgICAgICAgICAgICBHRU1fQlVHX09OKHN0YXR1cyAm IEdFTjhfQ1RYX1NUQVRVU19JRExFX0FDVElWRSk7Cj4gPiArICAgICAgICAgICAgICAgICAgICAg LyoKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgKiBXZSBjb3VsZCBub3QgaGF2ZSBDT01QTEVU RUQgYW55dGhpbmcKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgKiBpZiB3ZSB3ZXJlIGlkbGUg YmVmb3JlIHByZWVtcHRpb24uCj4gPiArICAgICAgICAgICAgICAgICAgICAgICovCj4gPiArICAg ICAgICAgICAgICAgICAgICAgR0VNX0JVR19PTihzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQ09N UExFVEVEX01BU0spOwo+ID4gKyAgICAgICAgICAgICB9IGVsc2Ugewo+ID4gKyAgICAgICAgICAg ICAgICAgICAgIGlmIChzdGF0dXMgJiAoR0VOOF9DVFhfU1RBVFVTX0lETEVfQUNUSVZFIHwKPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFTjhfQ1RYX1NUQVRVU19QUkVF TVBURUQpKQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY2xpc3RzX3NldF9h Y3RpdmUoZXhlY2xpc3RzLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRVhFQ0xJU1RTX0FDVElWRV9IV0FDSyk7Cj4gPiArCj4gPiArICAgICAg ICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19BQ1RJVkVfSURMRSkK PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWNsaXN0c19jbGVhcl9hY3RpdmUo ZXhlY2xpc3RzLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFWEVDTElTVFNfQUNUSVZFX0hXQUNLKTsKPiA+ICsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICBpZiAoIShzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQ09NUExFVEVEX01BU0sp KQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4gPiAgIAo+ID4g LSAgICAgICAgICAgICBpZiAoc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX0NPTVBMRVRFICYmCj4g PiAtICAgICAgICAgICAgICAgICBidWZbMipoZWFkICsgMV0gPT0gZXhlY2xpc3RzLT5wcmVlbXB0 X2NvbXBsZXRlX3N0YXR1cykgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgIC8qIFdlIHNob3Vs ZCBuZXZlciBnZXQgYSBDT01QTEVURUQgfCBJRExFX0FDVElWRSEgKi8KPiA+ICsgICAgICAgICAg ICAgICAgICAgICBHRU1fQlVHX09OKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19JRExFX0FDVElW RSk7Cj4gPiArICAgICAgICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgICAgICAgLyoKPiA+ICsg ICAgICAgICAgICAgICogQ2hlY2sgaWYgcHJlZW1wdGVkIHRvIHJlYWwgaWRsZSwgZWl0aGVyIGRp cmVjdGx5IG9yCj4gPiArICAgICAgICAgICAgICAqIHRoZSBwcmVlbXB0aXZlIGNvbnRleHQgYWxy ZWFkeSBmaW5pc2hlZCBleGVjdXRpbmcKPiA+ICsgICAgICAgICAgICAgICovCj4gPiArICAgICAg ICAgICAgIGlmICgoc3RhdHVzICYgR0VOMTFfQ1RYX1NUQVRVU19QUkVFTVBUX0lETEUpIHx8Cj4g PiArICAgICAgICAgICAgICAgICAoc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX0NPTVBMRVRFICYm Cj4gPiArICAgICAgICAgICAgICAgICBidWZbMipoZWFkICsgMV0gPT0gZXhlY2xpc3RzLT5wcmVl bXB0X2NvbXBsZXRlX3N0YXR1cykpIHsKPiA+ICAgICAgICAgICAgICAgICAgICAgICBHRU1fVFJB Q0UoIiVzIHByZWVtcHQtaWRsZVxuIiwgZW5naW5lLT5uYW1lKTsKPiA+ICAgICAgICAgICAgICAg ICAgICAgICBjb21wbGV0ZV9wcmVlbXB0X2NvbnRleHQoZXhlY2xpc3RzKTsKPiA+ICAgICAgICAg ICAgICAgICAgICAgICBjb250aW51ZTsKPiA+IEBAIC0yMTUwLDcgKzIxOTIsOCBAQCB2b2lkIGlu dGVsX2V4ZWNsaXN0c19zZXRfZGVmYXVsdF9zdWJtaXNzaW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiA+ICAgICAgIGVuZ2luZS0+dW5wYXJrID0gTlVMTDsKPiA+ICAgCj4gPiAg ICAgICBlbmdpbmUtPmZsYWdzIHw9IEk5MTVfRU5HSU5FX1NVUFBPUlRTX1NUQVRTOwo+ID4gLSAg ICAgaWYgKGVuZ2luZS0+aTkxNS0+cHJlZW1wdF9jb250ZXh0KQo+ID4gKyAgICAgaWYgKGVuZ2lu ZS0+aTkxNS0+cHJlZW1wdF9jb250ZXh0IHx8Cj4gPiArICAgICAgICAgSEFTX0hXX1BSRUVNUFRf VE9fSURMRShlbmdpbmUtPmk5MTUpKQo+ID4gICAgICAgICAgICAgICBlbmdpbmUtPmZsYWdzIHw9 IEk5MTVfRU5HSU5FX0hBU19QUkVFTVBUSU9OOwo+ID4gICAKPiA+ICAgICAgIGVuZ2luZS0+aTkx NS0+Y2Fwcy5zY2hlZHVsZXIgPQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiA+IGluZGV4 IGY1YTU1MDIuLjg3MTkwMWEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiA+ IEBAIC00Myw2ICs0Myw3IEBACj4gPiAgICNkZWZpbmUgUklOR19FWEVDTElTVF9TUV9DT05URU5U UyhlbmdpbmUpICAgX01NSU8oKGVuZ2luZSktPm1taW9fYmFzZSArIDB4NTEwKQo+ID4gICAjZGVm aW5lIFJJTkdfRVhFQ0xJU1RfQ09OVFJPTChlbmdpbmUpICAgICAgICAgICAgICAgX01NSU8oKGVu Z2luZSktPm1taW9fYmFzZSArIDB4NTUwKQo+ID4gICAjZGVmaW5lICAgICAgIEVMX0NUUkxfTE9B RCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKPiA+ICsjZGVmaW5lICAgICAgICBF TF9DVFJMX1BSRUVNUFRfVE9fSURMRSAgICAgICAgICAgICAgICgxIDw8IDEpCj4gPiAgIAo+ID4g ICAvKiBUaGUgZG9jcyBzcGVjaWZ5IHRoYXQgdGhlIHdyaXRlIHBvaW50ZXIgd3JhcHMgYXJvdW5k IGFmdGVyIDVoLCAiQWZ0ZXIgc3RhdHVzCj4gPiAgICAqIGlzIHdyaXR0ZW4gb3V0IHRvIHRoZSBs YXN0IGF2YWlsYWJsZSBzdGF0dXMgUVcgYXQgb2Zmc2V0IDVoLCB0aGlzIHBvaW50ZXIKPiA+IAo+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK