From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 2/3] drm/i915/execlists: Minimalistic timeslicing Date: Thu, 20 Jun 2019 16:51:24 +0300 Message-ID: <87y31w5pr7.fsf@gaia.fi.intel.com> References: <20190620070559.30076-1-chris@chris-wilson.co.uk> <20190620070559.30076-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 mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9DFC96E566 for ; Thu, 20 Jun 2019 13:51:34 +0000 (UTC) In-Reply-To: <20190620070559.30076-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+IHdyaXRlczoKCj4gSWYgd2Ug aGF2ZSBtdWx0aXBsZSBjb250ZXh0cyBvZiBlcXVhbCBwcmlvcml0eSBwZW5kaW5nIGV4ZWN1dGlv biwKPiBhY3RpdmF0ZSBhIHRpbWVyIHRvIGRlbW90ZSB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBj b250ZXh0IGluIGZhdm91ciBvZgo+IHRoZSBuZXh0IGluIHRoZSBxdWV1ZSB3aGVuIHRoYXQgdGlt ZXNsaWNlIGV4cGlyZXMuIFRoaXMgZW5mb3JjZXMKPiBmYWlybmVzcyBiZXR3ZWVuIGNvbnRleHRz IChzbyBsb25nIGFzIHRoZXkgYWxsb3cgcHJlZW1wdGlvbiAtLSBmb3JjZWQKPiBwcmVlbXB0aW9u LCBpbiB0aGUgZnV0dXJlLCB3aWxsIGtpY2sgdGhvc2Ugd2hvIGRvIG5vdCBvYmV5KSBhbmQgYWxs b3dzCj4gdXMgdG8gYXZvaWQgdXNlcnNwYWNlIGJsb2NraW5nIGZvcndhcmQgcHJvZ3Jlc3Mgd2l0 aCBlLmcuIHVuYm91bmRlZAo+IE1JX1NFTUFQSE9SRV9XQUlULgo+Cj4gRm9yIHRoZSBzdGFydGlu ZyBwb2ludCBoZXJlLCB3ZSB1c2UgdGhlIGppZmZpZSBhcyBvdXIgdGltZXNsaWNlIHNvIHRoYXQK PiB3ZSBzaG91bGQgYmUgcmVhc29uYWJseSBlZmZpY2llbnQgd3J0IGZyZXF1ZW50IENQVSB3YWtl dXBzLgo+Cj4gVGVzdGNhc2U6IGlndC9nZW1fZXhlY19zY2hlZHVsZXIvc2VtYXBob3JlLXJlc29s dmUKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51 az4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgg fCAgIDYgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYyAgICAgICAgICB8 IDExMSArKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMg ICAgICAgfCAyMjMgKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3NjaGVkdWxlci5jICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfc2NoZWR1bGVyX3R5cGVzLmggIHwgICAxICsKPiAgNSBmaWxlcyBjaGFuZ2VkLCAzNDIgaW5z ZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2VuZ2luZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5 cGVzLmgKPiBpbmRleCA0MTFiN2E4MDdiOTkuLjY1OTFkNmJkMjY5MiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdHlwZXMuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCj4gQEAgLTEyLDYgKzEyLDcg QEAKPiAgI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4K PiAgI2luY2x1ZGUgPGxpbnV4L2xsaXN0Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgo+ ICAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPiAgCj4gICNpbmNsdWRlICJpOTE1X2dlbS5oIgo+ IEBAIC0xNDksNiArMTUwLDExIEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzIHsKPiAg CSAqLwo+ICAJc3RydWN0IHRhc2tsZXRfc3RydWN0IHRhc2tsZXQ7Cj4gIAo+ICsJLyoqCj4gKwkg KiBAdGltZXI6IGtpY2sgdGhlIGN1cnJlbnQgY29udGV4dCBpZiBpdHMgdGltZXNsaWNlIGV4cGly ZXMKPiArCSAqLwo+ICsJc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7Cj4gKwo+ICAJLyoqCj4gIAkg KiBAZGVmYXVsdF9wcmlvbGlzdDogcHJpb3JpdHkgbGlzdCBmb3IgSTkxNV9QUklPUklUWV9OT1JN QUwKPiAgCSAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9s cmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCj4gaW5kZXggZGMwNzdi NTM2ZmE1Li5mY2E3OWFkYjRhYTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMu Ywo+IEBAIC0yNTUsNiArMjU1LDcgQEAgc3RhdGljIGludCBlZmZlY3RpdmVfcHJpbyhjb25zdCBz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgCQlwcmlvIHw9IEk5MTVfUFJJT1JJVFlfTk9TRU1B UEhPUkU7Cj4gIAo+ICAJLyogUmVzdHJpY3QgbWVyZSBXQUlUIGJvb3N0cyBmcm9tIHRyaWdnZXJp bmcgcHJlZW1wdGlvbiAqLwo+ICsJQlVJTERfQlVHX09OKF9fTk9fUFJFRU1QVElPTiAmIH5JOTE1 X1BSSU9SSVRZX01BU0spOyAvKiBvbmx5IGludGVybmFsICovCj4gIAlyZXR1cm4gcHJpbyB8IF9f Tk9fUFJFRU1QVElPTjsKPiAgfQo+ICAKPiBAQCAtODEzLDYgKzgxNCw4MSBAQCBsYXN0X2FjdGl2 ZShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQo+ICAJcmV0 dXJuICpsYXN0Owo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZAo+ICtkZWZlcl9yZXF1ZXN0KHN0cnVj dCBpOTE1X3JlcXVlc3QgKiBjb25zdCBycSwgc3RydWN0IGxpc3RfaGVhZCAqIGNvbnN0IHBsKQo+ ICt7Cj4gKwlzdHJ1Y3QgaTkxNV9kZXBlbmRlbmN5ICpwOwo+ICsKPiArCS8qCj4gKwkgKiBXZSB3 YW50IHRvIG1vdmUgdGhlIGludGVycnVwdGVkIHJlcXVlc3QgdG8gdGhlIGJhY2sgb2YKPiArCSAq IHRoZSByb3VuZC1yb2JpbiBsaXN0IChpLmUuIGl0cyBwcmlvcml0eSBsZXZlbCksIGJ1dAo+ICsJ ICogaW4gZG9pbmcgc28sIHdlIG11c3QgdGhlbiBtb3ZlIGFsbCByZXF1ZXN0cyB0aGF0IHdlcmUg aW4KPiArCSAqIGZsaWdodCBhbmQgd2VyZSB3YWl0aW5nIGZvciB0aGUgaW50ZXJydXB0ZWQgcmVx dWVzdCB0bwo+ICsJICogYmUgcnVuIGFmdGVyIGl0IGFnYWluLgo+ICsJICovCj4gKwlsaXN0X21v dmVfdGFpbCgmcnEtPnNjaGVkLmxpbmssIHBsKTsKPiArCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5 KHAsICZycS0+c2NoZWQud2FpdGVyc19saXN0LCB3YWl0X2xpbmspIHsKPiArCQlzdHJ1Y3QgaTkx NV9yZXF1ZXN0ICp3ID0KPiArCQkJY29udGFpbmVyX29mKHAtPndhaXRlciwgdHlwZW9mKCp3KSwg c2NoZWQpOwo+ICsKPiArCQkvKiBMZWF2ZSBzZW1hcGhvcmVzIHNwaW5uaW5nIG9uIHRoZSBvdGhl ciBlbmdpbmVzICovCj4gKwkJaWYgKHctPmVuZ2luZSAhPSBycS0+ZW5naW5lKQo+ICsJCQljb250 aW51ZTsKPiArCj4gKwkJLyogTm8gd2FpdGVyIHNob3VsZCBzdGFydCBiZWZvcmUgdGhlIGFjdGl2 ZSByZXF1ZXN0IGNvbXBsZXRlZCAqLwo+ICsJCUdFTV9CVUdfT04oaTkxNV9yZXF1ZXN0X3N0YXJ0 ZWQodykpOwo+ICsKPiArCQlHRU1fQlVHX09OKHJxX3ByaW8odykgPiBycV9wcmlvKHJxKSk7Cj4g KwkJaWYgKHJxX3ByaW8odykgPCBycV9wcmlvKHJxKSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJ CWlmIChsaXN0X2VtcHR5KCZ3LT5zY2hlZC5saW5rKSkKPiArCQkJY29udGludWU7IC8qIE5vdCB5 ZXQgc3VibWl0dGVkOyB1bnJlYWR5ICovCj4gKwo+ICsJCS8qCj4gKwkJICogVGhpcyBzaG91bGQg YmUgdmVyeSBzaGFsbG93IGFzIGl0IGlzIGxpbWl0ZWQgYnkgdGhlCj4gKwkJICogbnVtYmVyIG9m IHJlcXVlc3RzIHRoYXQgY2FuIGZpdCBpbiBhIHJpbmcgKDw2NCkgYW5kCgpzL2FuZC9vciA/Cgo+ ICsJCSAqIHRoZSBudW1iZXIgb2YgY29udGV4dHMgdGhhdCBjYW4gYmUgaW4gZmxpZ2h0IG9uIHRo aXMKPiArCQkgKiBlbmdpbmUuCj4gKwkJICovCj4gKwkJZGVmZXJfcmVxdWVzdCh3LCBwbCk7CgpT byB0aGUgc3RhY2sgZnJhbWUgd2lsbCBiZSA2NCooMyo4ICsgcHJlYW1wbGUvcmV0dXJuKSBhdCB3 b3JzdCBjYXNlPwpjYW4gYmUgb3ZlciAyawoKPiArCX0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQg ZGVmZXJfYWN0aXZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArewo+ICsJc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcnE7Cj4gKwo+ICsJcnEgPSBfX3Vud2luZF9pbmNvbXBsZXRlX3Jl cXVlc3RzKGVuZ2luZSk7Cj4gKwlpZiAoIXJxKQo+ICsJCXJldHVybjsKPiArCj4gKwlkZWZlcl9y ZXF1ZXN0KHJxLCBpOTE1X3NjaGVkX2xvb2t1cF9wcmlvbGlzdChlbmdpbmUsIHJxX3ByaW8ocnEp KSk7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sCj4gK25lZWRfdGltZXNsaWNlKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSwgY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gK3sK PiArCWludCBoaW50Owo+ICsKPiArCWlmIChsaXN0X2lzX2xhc3QoJnJxLT5zY2hlZC5saW5rLCAm ZW5naW5lLT5hY3RpdmUucmVxdWVzdHMpKQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwloaW50 ID0gbWF4KHJxX3ByaW8obGlzdF9uZXh0X2VudHJ5KHJxLCBzY2hlZC5saW5rKSksCj4gKwkJICAg ZW5naW5lLT5leGVjbGlzdHMucXVldWVfcHJpb3JpdHlfaGludCk7Cj4gKwo+ICsJcmV0dXJuIGhp bnQgPj0gcnFfcHJpbyhycSk7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sCj4gK2VuYWJsZV90aW1l c2xpY2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkx NV9yZXF1ZXN0ICpsYXN0ID0gbGFzdF9hY3RpdmUoJmVuZ2luZS0+ZXhlY2xpc3RzKTsKPiArCj4g KwlyZXR1cm4gbGFzdCAmJiBuZWVkX3RpbWVzbGljZShlbmdpbmUsIGxhc3QpOwo+ICt9Cj4gKwo+ ICBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhl Y2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwo+IEBAIC05MDYsNiArOTgyLDI3IEBAIHN0YXRp YyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK PiAgCQkJICovCj4gIAkJCWxhc3QtPmh3X2NvbnRleHQtPmxyY19kZXNjIHw9IENUWF9ERVNDX0ZP UkNFX1JFU1RPUkU7Cj4gIAkJCWxhc3QgPSBOVUxMOwo+ICsJCX0gZWxzZSBpZiAobmVlZF90aW1l c2xpY2UoZW5naW5lLCBsYXN0KSAmJgo+ICsJCQkgICAhdGltZXJfcGVuZGluZygmZW5naW5lLT5l eGVjbGlzdHMudGltZXIpKSB7Cj4gKwkJCUdFTV9UUkFDRSgiJXM6IGV4cGlyZWQgbGFzdD0lbGx4 OiVsbGQsIHByaW89JWQsIGhpbnQ9JWRcbiIsCj4gKwkJCQkgIGVuZ2luZS0+bmFtZSwKPiArCQkJ CSAgbGFzdC0+ZmVuY2UuY29udGV4dCwKPiArCQkJCSAgbGFzdC0+ZmVuY2Uuc2Vxbm8sCj4gKwkJ CQkgIGxhc3QtPnNjaGVkLmF0dHIucHJpb3JpdHksCj4gKwkJCQkgIGV4ZWNsaXN0cy0+cXVldWVf cHJpb3JpdHlfaGludCk7Cj4gKwo+ICsJCQlyaW5nX3BhdXNlKGVuZ2luZSkgPSAxOwo+ICsJCQlk ZWZlcl9hY3RpdmUoZW5naW5lKTsKPiArCj4gKwkJCS8qCj4gKwkJCSAqIFVubGlrZSBmb3IgcHJl ZW1wdGlvbiwgaWYgd2UgcmV3aW5kIGFuZCBjb250aW51ZQo+ICsJCQkgKiBleGVjdXRpbmcgdGhl IHNhbWUgY29udGV4dCBhcyBwcmV2aW91c2x5IGFjdGl2ZSwKPiArCQkJICogdGhlIG9yZGVyIG9m IGV4ZWN1dGlvbiB3aWxsIHJlbWFpbiB0aGUgc2FtZSBhbmQKPiArCQkJICogdGhlIHRhaWwgd2ls bCBvbmx5IGFkdmFuY2UuIFdlIGRvIG5vdCBuZWVkIHRvCj4gKwkJCSAqIGZvcmNlIGEgZnVsbCBj b250ZXh0IHJlc3RvcmUsIGFzIGEgbGl0ZS1yZXN0b3JlCj4gKwkJCSAqIGlzIHN1ZmZpY2llbnQg dG8gcmVzYW1wbGUgdGhlIG1vbm90b25pYyBUQUlMLgo+ICsJCQkgKi8KCkkgd291bGQgaGF2ZSBh c2tlZCBhYm91dCB0aGUgZm9yY2UgcHJlZW1wdGlvbiB3aXRob3V0IHRoaXMgZmluZSBjb21tZW50 LgoKQnV0IHRoaXMgaXMgYSBzaW1pbGFyIGFzIHRoZSBvdGhlciBraW5kIG9mIHByZWVtcHRpb24u IFNvIHdoYXQgaGFwcGVucwp3aGVuIHRoZSBjb250ZXh0cyBhcmUgbm90IHRoZSBzYW1lPwoKLU1p a2EKCj4gKwkJCWxhc3QgPSBOVUxMOwo+ICAJCX0gZWxzZSB7Cj4gIAkJCS8qCj4gIAkJCSAqIE90 aGVyd2lzZSBpZiB3ZSBhbHJlYWR5IGhhdmUgYSByZXF1ZXN0IHBlbmRpbmcKPiBAQCAtMTIyOSw2 ICsxMzI2LDkgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19jc2Ioc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQo+ICAJCQkJICAgICAgIHNpemVvZigqZXhlY2xpc3RzLT5wZW5kaW5nKSk7Cj4g IAkJCWV4ZWNsaXN0cy0+cGVuZGluZ1swXSA9IE5VTEw7Cj4gIAo+ICsJCQlpZiAoZW5hYmxlX3Rp bWVzbGljZShlbmdpbmUpKQo+ICsJCQkJbW9kX3RpbWVyKCZleGVjbGlzdHMtPnRpbWVyLCBqaWZm aWVzICsgMSk7Cj4gKwo+ICAJCQlpZiAoIWluamVjdF9wcmVlbXB0X2hhbmcoZXhlY2xpc3RzKSkK PiAgCQkJCXJpbmdfcGF1c2UoZW5naW5lKSA9IDA7Cj4gIAkJfSBlbHNlIGlmIChzdGF0dXMgJiBH RU44X0NUWF9TVEFUVVNfUFJFRU1QVEVEKSB7Cj4gQEAgLTEyOTksNiArMTM5OSwxNSBAQCBzdGF0 aWMgdm9pZCBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkK PiAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsK PiAgfQo+ICAKPiArc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGltZXIoc3RydWN0 IHRpbWVyX2xpc3QgKnRpbWVyKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPQo+ICsJCWZyb21fdGltZXIoZW5naW5lLCB0aW1lciwgZXhlY2xpc3RzLnRpbWVyKTsKPiAr Cj4gKwkvKiBLaWNrIHRoZSB0YXNrbGV0IGZvciBzb21lIGludGVycnVwdCBjb2FsZXNjaW5nIGFu ZCByZXNldCBoYW5kbGluZyAqLwo+ICsJdGFza2xldF9oaV9zY2hlZHVsZSgmZW5naW5lLT5leGVj bGlzdHMudGFza2xldCk7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIHF1ZXVlX3JlcXVlc3Qoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICAJCQkgIHN0cnVjdCBpOTE1X3NjaGVkX25v ZGUgKm5vZGUsCj4gIAkJCSAgaW50IHByaW8pCj4gQEAgLTI1MjQsNiArMjYzMyw3IEBAIHN0YXRp YyBpbnQgZ2VuOF9pbml0X3Jjc19jb250ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAK PiAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3Bhcmsoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICB7Cj4gKwlkZWxfdGltZXJfc3luYygmZW5naW5lLT5leGVjbGlzdHMudGltZXIpOwo+ ICAJaW50ZWxfZW5naW5lX3BhcmsoZW5naW5lKTsKPiAgfQo+ICAKPiBAQCAtMjYyMSw2ICsyNzMx LDcgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uX3NldHVwKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKPiAgCj4gIAl0YXNrbGV0X2luaXQoJmVuZ2luZS0+ZXhlY2xpc3Rz LnRhc2tsZXQsCj4gIAkJICAgICBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0LCAodW5zaWdu ZWQgbG9uZyllbmdpbmUpOwo+ICsJdGltZXJfc2V0dXAoJmVuZ2luZS0+ZXhlY2xpc3RzLnRpbWVy LCBleGVjbGlzdHNfc3VibWlzc2lvbl90aW1lciwgMCk7Cj4gIAo+ICAJbG9naWNhbF9yaW5nX2Rl ZmF1bHRfdmZ1bmNzKGVuZ2luZSk7Cj4gIAlsb2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFzKGVuZ2lu ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMKPiBpbmRleCA0MDFlOGI1 MzkyOTcuLjBjOTdmOTUzZTkwOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9zZWxmdGVzdF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0 X2xyYy5jCj4gQEAgLTc5LDYgKzc5LDIyNSBAQCBzdGF0aWMgaW50IGxpdmVfc2FuaXR5Y2hlY2so dm9pZCAqYXJnKQo+ICAJcmV0dXJuIGVycjsKPiAgfQo+ICAKPiArc3RhdGljIGludAo+ICtlbWl0 X3NlbWFwaG9yZV9jaGFpbihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgc3RydWN0IGk5MTVfdm1h ICp2bWEsIGludCBpZHgpCj4gK3sKPiArCXUzMiAqY3M7Cj4gKwo+ICsJY3MgPSBpbnRlbF9yaW5n X2JlZ2luKHJxLCAxMCk7Cj4gKwlpZiAoSVNfRVJSKGNzKSkKPiArCQlyZXR1cm4gUFRSX0VSUihj cyk7Cj4gKwo+ICsJKmNzKysgPSBNSV9BUkJfT05fT0ZGIHwgTUlfQVJCX0VOQUJMRTsKPiArCj4g KwkqY3MrKyA9IE1JX1NFTUFQSE9SRV9XQUlUIHwKPiArCQlNSV9TRU1BUEhPUkVfR0xPQkFMX0dU VCB8Cj4gKwkJTUlfU0VNQVBIT1JFX1BPTEwgfAo+ICsJCU1JX1NFTUFQSE9SRV9TQURfTkVRX1NE RDsKPiArCSpjcysrID0gMDsKPiArCSpjcysrID0gaTkxNV9nZ3R0X29mZnNldCh2bWEpICsgNCAq IGlkeDsKPiArCSpjcysrID0gMDsKPiArCj4gKwlpZiAoaWR4ID4gMCkgewo+ICsJCSpjcysrID0g TUlfU1RPUkVfRFdPUkRfSU1NX0dFTjQgfCBNSV9VU0VfR0dUVDsKPiArCQkqY3MrKyA9IGk5MTVf Z2d0dF9vZmZzZXQodm1hKSArIDQgKiAoaWR4IC0gMSk7Cj4gKwkJKmNzKysgPSAwOwo+ICsJCSpj cysrID0gMTsKPiArCX0gZWxzZSB7Cj4gKwkJKmNzKysgPSBNSV9OT09QOwo+ICsJCSpjcysrID0g TUlfTk9PUDsKPiArCQkqY3MrKyA9IE1JX05PT1A7Cj4gKwkJKmNzKysgPSBNSV9OT09QOwo+ICsJ fQo+ICsKPiArCSpjcysrID0gTUlfQVJCX09OX09GRiB8IE1JX0FSQl9ESVNBQkxFOwo+ICsKPiAr CWludGVsX3JpbmdfYWR2YW5jZShycSwgY3MpOwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0 YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKPiArc2VtYXBob3JlX3F1ZXVlKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSwgc3RydWN0IGk5MTVfdm1hICp2bWEsIGludCBpZHgpCj4gK3sK PiArCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4gKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycTsKPiArCWludCBlcnI7Cj4gKwo+ICsJY3R4ID0ga2VybmVsX2NvbnRleHQoZW5naW5lLT5p OTE1KTsKPiArCWlmICghY3R4KQo+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICsKPiAr CXJxID0gaWd0X3JlcXVlc3RfYWxsb2MoY3R4LCBlbmdpbmUpOwo+ICsJaWYgKElTX0VSUihycSkp Cj4gKwkJZ290byBvdXRfY3R4Owo+ICsKPiArCWVyciA9IGVtaXRfc2VtYXBob3JlX2NoYWluKHJx LCB2bWEsIGlkeCk7Cj4gKwlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKPiArCWlmIChlcnIpCj4gKwkJ cnEgPSBFUlJfUFRSKGVycik7Cj4gKwo+ICtvdXRfY3R4Ogo+ICsJa2VybmVsX2NvbnRleHRfY2xv c2UoY3R4KTsKPiArCXJldHVybiBycTsKPiArfQo+ICsKPiArc3RhdGljIGludAo+ICtyZWxlYXNl X3F1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiArCSAgICAgIHN0cnVjdCBp OTE1X3ZtYSAqdm1hLAo+ICsJICAgICAgaW50IGlkeCkKPiArewo+ICsJc3RydWN0IGk5MTVfc2No ZWRfYXR0ciBhdHRyID0gewo+ICsJCS5wcmlvcml0eSA9IEk5MTVfVVNFUl9QUklPUklUWShJOTE1 X1BSSU9SSVRZX01BWCksCj4gKwl9Owo+ICsJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Cj4gKwl1 MzIgKmNzOwo+ICsKPiArCXJxID0gaTkxNV9yZXF1ZXN0X2NyZWF0ZShlbmdpbmUtPmtlcm5lbF9j b250ZXh0KTsKPiArCWlmIChJU19FUlIocnEpKQo+ICsJCXJldHVybiBQVFJfRVJSKHJxKTsKPiAr Cj4gKwljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEsIDQpOwo+ICsJaWYgKElTX0VSUihjcykpIHsK PiArCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKPiArCQlyZXR1cm4gUFRSX0VSUihjcyk7Cj4gKwl9 Cj4gKwo+ICsJKmNzKysgPSBNSV9TVE9SRV9EV09SRF9JTU1fR0VONCB8IE1JX1VTRV9HR1RUOwo+ ICsJKmNzKysgPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSkgKyA0ICogKGlkeCAtIDEpOwo+ICsJKmNz KysgPSAwOwo+ICsJKmNzKysgPSAxOwo+ICsKPiArCWludGVsX3JpbmdfYWR2YW5jZShycSwgY3Mp Owo+ICsJaTkxNV9yZXF1ZXN0X2FkZChycSk7Cj4gKwo+ICsJZW5naW5lLT5zY2hlZHVsZShycSwg JmF0dHIpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50Cj4gK3NsaWNl X3NlbWFwaG9yZV9xdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpvdXRlciwKPiArCQkgICAg ICBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiArCQkgICAgICBpbnQgY291bnQpCj4gK3sKPiArCXN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiArCXN0cnVjdCBpOTE1X3JlcXVlc3QgKmhl YWQ7Cj4gKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKPiArCWludCBlcnIsIGksIG4gPSAwOwo+ ICsKPiArCWhlYWQgPSBzZW1hcGhvcmVfcXVldWUob3V0ZXIsIHZtYSwgbisrKTsKPiArCWlmIChJ U19FUlIoaGVhZCkpCj4gKwkJcmV0dXJuIFBUUl9FUlIoaGVhZCk7Cj4gKwo+ICsJaTkxNV9yZXF1 ZXN0X2dldChoZWFkKTsKPiArCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIG91dGVyLT5pOTE1LCBp ZCkgewo+ICsJCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Cj4gKwkJCXN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJxOwo+ICsKPiArCQkJcnEgPSBzZW1hcGhvcmVfcXVldWUoZW5naW5lLCB2bWEs IG4rKyk7Cj4gKwkJCWlmIChJU19FUlIocnEpKSB7Cj4gKwkJCQllcnIgPSBQVFJfRVJSKHJxKTsK PiArCQkJCWdvdG8gb3V0Owo+ICsJCQl9Cj4gKwkJfQo+ICsJfQo+ICsKPiArCWVyciA9IHJlbGVh c2VfcXVldWUob3V0ZXIsIHZtYSwgbik7Cj4gKwlpZiAoZXJyKQo+ICsJCWdvdG8gb3V0Owo+ICsK PiArCWlmIChpOTE1X3JlcXVlc3Rfd2FpdChoZWFkLAo+ICsJCQkgICAgICBJOTE1X1dBSVRfTE9D S0VELAo+ICsJCQkgICAgICAyICogUlVOVElNRV9JTkZPKG91dGVyLT5pOTE1KS0+bnVtX2VuZ2lu ZXMgKiAoY291bnQgKyAyKSAqIChjb3VudCArIDMpKSA8IDApIHsKPiArCQlwcl9lcnIoIkZhaWxl ZCB0byBzbGljZSBhbG9uZyBzZW1hcGhvcmUgY2hhaW4gb2YgbGVuZ3RoICglZCwgJWQpIVxuIiwK PiArCQkgICAgICAgY291bnQsIG4pOwo+ICsJCUdFTV9UUkFDRV9EVU1QKCk7Cj4gKwkJaTkxNV9n ZW1fc2V0X3dlZGdlZChvdXRlci0+aTkxNSk7Cj4gKwkJZXJyID0gLUVJTzsKPiArCX0KPiArCj4g K291dDoKPiArCWk5MTVfcmVxdWVzdF9wdXQoaGVhZCk7Cj4gKwlyZXR1cm4gZXJyOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgaW50IGxpdmVfdGltZXNsaWNlX3ByZWVtcHQodm9pZCAqYXJnKQo+ICt7Cj4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKPiArCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmo7Cj4gKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKPiArCXN0cnVj dCBpOTE1X3ZtYSAqdm1hOwo+ICsJdm9pZCAqdmFkZHI7Cj4gKwlpbnQgZXJyID0gMDsKPiArCWlu dCBjb3VudDsKPiArCj4gKwkvKgo+ICsJICogSWYgYSByZXF1ZXN0IHRha2VzIHRvbyBsb25nLCB3 ZSB3b3VsZCBsaWtlIHRvIGdpdmUgb3RoZXIgdXNlcnMKPiArCSAqIGEgZmFpciBnbyBvbiB0aGUg R1BVLiBJbiBwYXJ0aWN1bGFyLCB1c2VycyBtYXkgY3JlYXRlIGJhdGNoZXMKPiArCSAqIHRoYXQg d2FpdCB1cG9uIGV4dGVybmFsIGlucHV0LCB3aGVyZSB0aGF0IGlucHV0IG1heSBldmVuIGJlCj4g KwkgKiBzdXBwbGllZCBieSBhbm90aGVyIEdQVSBqb2IuIFRvIGF2b2lkIGJsb2NraW5nIGZvcmV2 ZXIsIHdlCj4gKwkgKiBuZWVkIHRvIHByZWVtcHQgdGhlIGN1cnJlbnQgdGFzayBhbmQgcmVwbGFj ZSBpdCB3aXRoIGFub3RoZXIKPiArCSAqIHJlYWR5IHRhc2suCj4gKwkgKi8KPiArCj4gKwltdXRl eF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiArCXdha2VyZWYgPSBpbnRlbF9ydW50 aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7Cj4gKwo+ICsJb2JqID0gaTkxNV9nZW1fb2Jq ZWN0X2NyZWF0ZV9pbnRlcm5hbChpOTE1LCBQQUdFX1NJWkUpOwo+ICsJaWYgKElTX0VSUihvYmop KSB7Cj4gKwkJZXJyID0gUFRSX0VSUihvYmopOwo+ICsJCWdvdG8gZXJyX3VubG9jazsKPiArCX0K PiArCj4gKwl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosICZpOTE1LT5nZ3R0LnZtLCBOVUxM KTsKPiArCWlmIChJU19FUlIodm1hKSkgewo+ICsJCWVyciA9IFBUUl9FUlIodm1hKTsKPiArCQln b3RvIGVycl9vYmo7Cj4gKwl9Cj4gKwo+ICsJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21h cChvYmosIEk5MTVfTUFQX1dDKTsKPiArCWlmIChJU19FUlIodmFkZHIpKSB7Cj4gKwkJZXJyID0g UFRSX0VSUih2YWRkcik7Cj4gKwkJZ290byBlcnJfb2JqOwo+ICsJfQo+ICsKPiArCWVyciA9IGk5 MTVfdm1hX3Bpbih2bWEsIDAsIDAsIFBJTl9HTE9CQUwpOwo+ICsJaWYgKGVycikKPiArCQlnb3Rv IGVycl9tYXA7Cj4gKwo+ICsJZm9yX2VhY2hfcHJpbWVfbnVtYmVyX2Zyb20oY291bnQsIDEsIDE2 KSB7Cj4gKwkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ICsJCWVudW0gaW50ZWxf ZW5naW5lX2lkIGlkOwo+ICsKPiArCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkg ewo+ICsJCQltZW1zZXQodmFkZHIsIDAsIFBBR0VfU0laRSk7Cj4gKwo+ICsJCQllcnIgPSBzbGlj ZV9zZW1hcGhvcmVfcXVldWUoZW5naW5lLCB2bWEsIGNvdW50KTsKPiArCQkJaWYgKGVycikKPiAr CQkJCWdvdG8gZXJyX3BpbjsKPiArCj4gKwkJCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1 X1dBSVRfTE9DS0VEKSkgewo+ICsJCQkJZXJyID0gLUVJTzsKPiArCQkJCWdvdG8gZXJyX3BpbjsK PiArCQkJfQo+ICsJCX0KPiArCX0KPiArCj4gK2Vycl9waW46Cj4gKwlpOTE1X3ZtYV91bnBpbih2 bWEpOwo+ICtlcnJfbWFwOgo+ICsJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChvYmopOwo+ICtl cnJfb2JqOgo+ICsJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwo+ICtlcnJfdW5sb2NrOgo+ICsJ aWYgKGlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpKQo+ICsJCWVyciA9IC1F SU87Cj4gKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7 Cj4gKwltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICsKPiArCXJldHVy biBlcnI7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgbGl2ZV9idXN5d2FpdF9wcmVlbXB0KHZvaWQg KmFyZykKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7Cj4gQEAg LTM5OCw2ICs2MTcsOSBAQCBzdGF0aWMgaW50IGxpdmVfbGF0ZV9wcmVlbXB0KHZvaWQgKmFyZykK PiAgCWlmICghY3R4X2xvKQo+ICAJCWdvdG8gZXJyX2N0eF9oaTsKPiAgCj4gKwkvKiBNYWtlIHN1 cmUgY3R4X2xvIHN0YXlzIGJlZm9yZSBjdHhfaGkgdW50aWwgd2UgdHJpZ2dlciBwcmVlbXB0aW9u LiAqLwo+ICsJY3R4X2xvLT5zY2hlZC5wcmlvcml0eSA9IEk5MTVfVVNFUl9QUklPUklUWSgxKTsK PiArCj4gIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgewo+ICAJCXN0cnVjdCBp Z3RfbGl2ZV90ZXN0IHQ7Cj4gIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Cj4gQEAgLTE4MTIs NiArMjAzNCw3IEBAIGludCBpbnRlbF9leGVjbGlzdHNfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gIHsKPiAgCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9z dWJ0ZXN0IHRlc3RzW10gPSB7Cj4gIAkJU1VCVEVTVChsaXZlX3Nhbml0eWNoZWNrKSwKPiArCQlT VUJURVNUKGxpdmVfdGltZXNsaWNlX3ByZWVtcHQpLAo+ICAJCVNVQlRFU1QobGl2ZV9idXN5d2Fp dF9wcmVlbXB0KSwKPiAgCQlTVUJURVNUKGxpdmVfcHJlZW1wdCksCj4gIAkJU1VCVEVTVChsaXZl X2xhdGVfcHJlZW1wdCksCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf c2NoZWR1bGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCj4gaW5k ZXggYjFiYTNlNjVjZDUyLi4wYmQ0NTJlODUxZDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfc2NoZWR1bGVyLmMKPiBAQCAtMzk0LDYgKzM5NCw3IEBAIGJvb2wgX19pOTE1X3NjaGVkX25v ZGVfYWRkX2RlcGVuZGVuY3koc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSwKPiAgCQlsaXN0 X2FkZCgmZGVwLT53YWl0X2xpbmssICZzaWduYWwtPndhaXRlcnNfbGlzdCk7Cj4gIAkJbGlzdF9h ZGQoJmRlcC0+c2lnbmFsX2xpbmssICZub2RlLT5zaWduYWxlcnNfbGlzdCk7Cj4gIAkJZGVwLT5z aWduYWxlciA9IHNpZ25hbDsKPiArCQlkZXAtPndhaXRlciA9IG5vZGU7Cj4gIAkJZGVwLT5mbGFn cyA9IGZsYWdzOwo+ICAKPiAgCQkvKiBLZWVwIHRyYWNrIG9mIHdoZXRoZXIgYW55b25lIG9uIHRo aXMgY2hhaW4gaGFzIGEgc2VtYXBob3JlICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc2NoZWR1bGVyX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3NjaGVkdWxlcl90eXBlcy5oCj4gaW5kZXggM2UzMDk2MzFiZDBiLi5hYWQ4MWFjYmE5ZGMgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXJfdHlwZXMuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyX3R5cGVzLmgKPiBAQCAt NjIsNiArNjIsNyBAQCBzdHJ1Y3QgaTkxNV9zY2hlZF9ub2RlIHsKPiAgCj4gIHN0cnVjdCBpOTE1 X2RlcGVuZGVuY3kgewo+ICAJc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqc2lnbmFsZXI7Cj4gKwlz dHJ1Y3QgaTkxNV9zY2hlZF9ub2RlICp3YWl0ZXI7Cj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIHNpZ25h bF9saW5rOwo+ICAJc3RydWN0IGxpc3RfaGVhZCB3YWl0X2xpbms7Cj4gIAlzdHJ1Y3QgbGlzdF9o ZWFkIGRmc19saW5rOwo+IC0tIAo+IDIuMjAuMQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng=