From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v3] drm/i915: Track vma activity per fence.context, not per engine Date: Wed, 4 Jul 2018 12:19:44 +0100 Message-ID: <8d0b6273-916f-01ab-0ef8-45dc4b6d3ae0@linux.intel.com> References: <20180629225419.5832-5-chris@chris-wilson.co.uk> <20180704091314.12361-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0CBE96EB4B for ; Wed, 4 Jul 2018 11:20:09 +0000 (UTC) In-Reply-To: <20180704091314.12361-1-chris@chris-wilson.co.uk> Content-Language: en-GB 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 Ck9uIDA0LzA3LzIwMTggMTA6MTMsIENocmlzIFdpbHNvbiB3cm90ZToKPiBJbiB0aGUgbmV4dCBw YXRjaCwgd2Ugd2lsbCB3YW50IHRvIGJlIGFibGUgdG8gdXNlIG1vcmUgZmxleGlibGUgcmVxdWVz dAo+IHRpbWVsaW5lcyB0aGF0IGNhbiBob3AgYmV0d2VlbiBlbmdpbmVzLiBGcm9tIHRoZSB2bWEg cG92LCB3ZSBjYW4gdGhlbgo+IG5vdCByZWx5IG9uIHRoZSBiaW5kaW5nIG9mIHRoaXMgcmVxdWVz dCB0byBhbiBlbmdpbmUgYW5kIHNvIGNhbiBub3QKPiBlbnN1cmUgdGhhdCBkaWZmZXJlbnQgcmVx dWVzdHMgYXJlIG9yZGVyZWQgdGhyb3VnaCBhIHBlci1lbmdpbmUKPiB0aW1lbGluZSwgYW5kIHNv IHdlIG11c3QgdHJhY2sgYWN0aXZpdHkgb2YgYWxsIHRpbWVsaW5lcy4gKFdlIHRyYWNrCj4gYWN0 aXZpdHkgb24gdGhlIHZtYSBpdHNlbGYgdG8gcHJldmVudCB1bmJpbmRpbmcgZnJvbSBIVyBiZWZv cmUgdGhlIEhXCj4gaGFzIGZpbmlzaGVkIGFjY2Vzc2luZyBpdC4pCj4gCj4gdjI6IFN3aXRjaCB0 byBhIHJidHJlZSBmb3IgMzJiIHNhZmV0eSAoc2luY2UgdXNpbmcgdTY0IGFzIGEgcmFkaXh0cmVl Cj4gaW5kZXggaXMgZnJhdWdodCB3aXRoIGFsaWFzaW5nIG9mIHVuc2lnbmVkIGxvbmdzKS4KPiB2 Mzogcy9sb29rdXBfYWN0aXZlL2FjdGl2ZV9pbnN0YW5jZS8gYmVjYXVzZSB3ZSBjYW4gbmV2ZXIg YWdyZWUgb24gbmFtZXMKPiAKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGlu dGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAg fCAgIDUgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgfCAgMTQg Ky0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaCB8ICAgMiArLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmggICB8ICAgMSArCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgIHwgMTEyICsrKysrKysrKysrKysrKysr KystLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oICAgICAgIHwgIDQ2 ICsrKy0tLS0tLS0tCj4gICA2IGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNlcnRpb25zKCspLCA4MCBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IGluZGV4IGM2 YWE3NjFjYTA4NS4uMjE2NDYzZmIzYTFjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmMKPiBAQCAtMTk5Niw3ICsxOTk2LDYgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqcGRf dm1hX2NyZWF0ZShzdHJ1Y3QgZ2VuNl9od19wcGd0dCAqcHBndHQsIGludCBzaXplKQo+ICAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gcHBndHQtPmJhc2Uudm0uaTkxNTsKPiAgIAlz dHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmk5MTUtPmdndHQ7Cj4gICAJc3RydWN0IGk5MTVfdm1h ICp2bWE7Cj4gLQlpbnQgaTsKPiAgIAo+ICAgCUdFTV9CVUdfT04oIUlTX0FMSUdORUQoc2l6ZSwg STkxNV9HVFRfUEFHRV9TSVpFKSk7Cj4gICAJR0VNX0JVR19PTihzaXplID4gZ2d0dC0+dm0udG90 YWwpOwo+IEBAIC0yMDA1LDE0ICsyMDA0LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKnBk X3ZtYV9jcmVhdGUoc3RydWN0IGdlbjZfaHdfcHBndHQgKnBwZ3R0LCBpbnQgc2l6ZSkKPiAgIAlp ZiAoIXZtYSkKPiAgIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gICAKPiAtCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKHZtYS0+bGFzdF9yZWFkKTsgaSsrKQo+IC0JCWluaXRfcmVxdWVz dF9hY3RpdmUoJnZtYS0+bGFzdF9yZWFkW2ldLCBOVUxMKTsKPiAgIAlpbml0X3JlcXVlc3RfYWN0 aXZlKCZ2bWEtPmxhc3RfZmVuY2UsIE5VTEwpOwo+ICAgCj4gICAJdm1hLT52bSA9ICZnZ3R0LT52 bTsKPiAgIAl2bWEtPm9wcyA9ICZwZF92bWFfb3BzOwo+ICAgCXZtYS0+cHJpdmF0ZSA9IHBwZ3R0 Owo+ICAgCj4gKwl2bWEtPmFjdGl2ZSA9IFJCX1JPT1Q7Cj4gKwo+ICAgCXZtYS0+c2l6ZSA9IHNp emU7Cj4gICAJdm1hLT5mZW5jZV9zaXplID0gc2l6ZTsKPiAgIAl2bWEtPmZsYWdzID0gSTkxNV9W TUFfR0dUVDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJy b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiBpbmRleCBkZjUy NGM5Y2FkNDAuLjhjODFjZjNhYTE4MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dwdV9lcnJvci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVf ZXJyb3IuYwo+IEBAIC0zMzUsMjEgKzMzNSwxNiBAQCBzdGF0aWMgdm9pZCBwcmludF9lcnJvcl9i dWZmZXJzKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4gICAJCQkJc3RydWN0 IGRybV9pOTE1X2Vycm9yX2J1ZmZlciAqZXJyLAo+ICAgCQkJCWludCBjb3VudCkKPiAgIHsKPiAt CWludCBpOwo+IC0KPiAgIAllcnJfcHJpbnRmKG0sICIlcyBbJWRdOlxuIiwgbmFtZSwgY291bnQp Owo+ICAgCj4gICAJd2hpbGUgKGNvdW50LS0pIHsKPiAtCQllcnJfcHJpbnRmKG0sICIgICAgJTA4 eF8lMDh4ICU4dSAlMDJ4ICUwMnggWyAiLAo+ICsJCWVycl9wcmludGYobSwgIiAgICAlMDh4XyUw OHggJTh1ICUwMnggJTAyeCAlMDJ4IiwKPiAgIAkJCSAgIHVwcGVyXzMyX2JpdHMoZXJyLT5ndHRf b2Zmc2V0KSwKPiAgIAkJCSAgIGxvd2VyXzMyX2JpdHMoZXJyLT5ndHRfb2Zmc2V0KSwKPiAgIAkJ CSAgIGVyci0+c2l6ZSwKPiAgIAkJCSAgIGVyci0+cmVhZF9kb21haW5zLAo+IC0JCQkgICBlcnIt PndyaXRlX2RvbWFpbik7Cj4gLQkJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkr KykKPiAtCQkJZXJyX3ByaW50ZihtLCAiJTAyeCAiLCBlcnItPnJzZXFub1tpXSk7Cj4gLQo+IC0J CWVycl9wcmludGYobSwgIl0gJTAyeCIsIGVyci0+d3NlcW5vKTsKPiArCQkJICAgZXJyLT53cml0 ZV9kb21haW4sCj4gKwkJCSAgIGVyci0+d3NlcW5vKTsKPiAgIAkJZXJyX3B1dHMobSwgdGlsaW5n X2ZsYWcoZXJyLT50aWxpbmcpKTsKPiAgIAkJZXJyX3B1dHMobSwgZGlydHlfZmxhZyhlcnItPmRp cnR5KSk7Cj4gICAJCWVycl9wdXRzKG0sIHB1cmdlYWJsZV9mbGFnKGVyci0+cHVyZ2VhYmxlKSk7 Cj4gQEAgLTEwMjEsMTMgKzEwMTYsMTAgQEAgc3RhdGljIHZvaWQgY2FwdHVyZV9ibyhzdHJ1Y3Qg ZHJtX2k5MTVfZXJyb3JfYnVmZmVyICplcnIsCj4gICAJCSAgICAgICBzdHJ1Y3QgaTkxNV92bWEg KnZtYSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdm1hLT5v Ymo7Cj4gLQlpbnQgaTsKPiAgIAo+ICAgCWVyci0+c2l6ZSA9IG9iai0+YmFzZS5zaXplOwo+ICAg CWVyci0+bmFtZSA9IG9iai0+YmFzZS5uYW1lOwo+ICAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgSTkx NV9OVU1fRU5HSU5FUzsgaSsrKQo+IC0JCWVyci0+cnNlcW5vW2ldID0gX19hY3RpdmVfZ2V0X3Nl cW5vKCZ2bWEtPmxhc3RfcmVhZFtpXSk7Cj4gICAJZXJyLT53c2Vxbm8gPSBfX2FjdGl2ZV9nZXRf c2Vxbm8oJm9iai0+ZnJvbnRidWZmZXJfd3JpdGUpOwo+ICAgCWVyci0+ZW5naW5lID0gX19hY3Rp dmVfZ2V0X2VuZ2luZV9pZCgmb2JqLT5mcm9udGJ1ZmZlcl93cml0ZSk7Cj4gICAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmgKPiBpbmRleCA1ODkxMGYxZGM2N2MuLmY4OTNhNGU4 Yjc4MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaAo+IEBAIC0xNzcs NyArMTc3LDcgQEAgc3RydWN0IGk5MTVfZ3B1X3N0YXRlIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVf ZXJyb3JfYnVmZmVyIHsKPiAgIAkJdTMyIHNpemU7Cj4gICAJCXUzMiBuYW1lOwo+IC0JCXUzMiBy c2Vxbm9bSTkxNV9OVU1fRU5HSU5FU10sIHdzZXFubzsKPiArCQl1MzIgd3NlcW5vOwo+ICAgCQl1 NjQgZ3R0X29mZnNldDsKPiAgIAkJdTMyIHJlYWRfZG9tYWluczsKPiAgIAkJdTMyIHdyaXRlX2Rv bWFpbjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAo+IGluZGV4IGEzNTVhMDgxNDg1 Zi4uZTFjOTM2NWRmZWZiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVxdWVzdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgKPiBA QCAtMzgwLDYgKzM4MCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZAo+ICAgaW5pdF9yZXF1ZXN0X2Fj dGl2ZShzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUsCj4gICAJCSAgICBpOTE1X2dlbV9y ZXRpcmVfZm4gcmV0aXJlKQo+ICAgewo+ICsJUkNVX0lOSVRfUE9JTlRFUihhY3RpdmUtPnJlcXVl c3QsIE5VTEwpOwo+ICAgCUlOSVRfTElTVF9IRUFEKCZhY3RpdmUtPmxpbmspOwo+ICAgCWFjdGl2 ZS0+cmV0aXJlID0gcmV0aXJlID86IGk5MTVfZ2VtX3JldGlyZV9ub29wOwo+ICAgfQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV92bWEuYwo+IGluZGV4IGM2MDg1NzlkMDNlOS4uNGEyYmFmZmZiMjMxIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCj4gQEAgLTYzLDE4ICs2MywyMCBAQCBzdGF0aWMgdm9p ZCB2bWFfcHJpbnRfYWxsb2NhdG9yKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCBjb25zdCBjaGFyICpy ZWFzb24pCj4gICAKPiAgICNlbmRpZgo+ICAgCj4gK3N0cnVjdCBpOTE1X3ZtYV9hY3RpdmUgewo+ ICsJc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSBiYXNlOwo+ICsJc3RydWN0IGk5MTVfdm1hICp2bWE7 Cj4gKwlzdHJ1Y3QgcmJfbm9kZSBub2RlOwo+ICsJdTY0IHRpbWVsaW5lOwo+ICt9Owo+ICsKPiAg IHN0YXRpYyB2b2lkCj4gLWk5MTVfdm1hX3JldGlyZShzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICph Y3RpdmUsIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICtfX2k5MTVfdm1hX3JldGlyZShzdHJ1 Y3QgaTkxNV92bWEgKnZtYSwgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gICB7Cj4gLQljb25z dCB1bnNpZ25lZCBpbnQgaWR4ID0gcnEtPmVuZ2luZS0+aWQ7Cj4gLQlzdHJ1Y3QgaTkxNV92bWEg KnZtYSA9Cj4gLQkJY29udGFpbmVyX29mKGFjdGl2ZSwgc3RydWN0IGk5MTVfdm1hLCBsYXN0X3Jl YWRbaWR4XSk7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2Jq Owo+ICAgCj4gLQlHRU1fQlVHX09OKCFpOTE1X3ZtYV9oYXNfYWN0aXZlX2VuZ2luZSh2bWEsIGlk eCkpOwo+IC0KPiAtCWk5MTVfdm1hX2NsZWFyX2FjdGl2ZSh2bWEsIGlkeCk7Cj4gLQlpZiAoaTkx NV92bWFfaXNfYWN0aXZlKHZtYSkpCj4gKwlHRU1fQlVHX09OKCFpOTE1X3ZtYV9pc19hY3RpdmUo dm1hKSk7Cj4gKwlpZiAoLS12bWEtPmFjdGl2ZV9jb3VudCkKPiAgIAkJcmV0dXJuOwo+ICAgCj4g ICAJR0VNX0JVR19PTighZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpKTsKPiBAQCAt MTA4LDYgKzExMCwxNSBAQCBpOTE1X3ZtYV9yZXRpcmUoc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAq YWN0aXZlLCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgIAl9Cj4gICB9Cj4gICAKPiArc3Rh dGljIHZvaWQKPiAraTkxNV92bWFfcmV0aXJlKHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmJhc2Us IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV92bWFfYWN0aXZl ICphY3RpdmUgPQo+ICsJCWNvbnRhaW5lcl9vZihiYXNlLCB0eXBlb2YoKmFjdGl2ZSksIGJhc2Up Owo+ICsKPiArCV9faTkxNV92bWFfcmV0aXJlKGFjdGl2ZS0+dm1hLCBycSk7Cj4gK30KPiArCj4g ICBzdGF0aWMgc3RydWN0IGk5MTVfdm1hICoKPiAgIHZtYV9jcmVhdGUoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKPiAgIAkgICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwK PiBAQCAtMTE1LDcgKzEyNiw2IEBAIHZtYV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKPiAgIHsKPiAgIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiAgIAlzdHJ1Y3QgcmJf bm9kZSAqcmIsICoqcDsKPiAtCWludCBpOwo+ICAgCj4gICAJLyogVGhlIGFsaWFzaW5nX3BwZ3R0 IHNob3VsZCBuZXZlciBiZSB1c2VkIGRpcmVjdGx5ISAqLwo+ICAgCUdFTV9CVUdfT04odm0gPT0g JnZtLT5pOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+dm0pOwo+IEBAIC0xMjQsOCArMTM0LDggQEAg dm1hX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCWlmICh2bWEg PT0gTlVMTCkKPiAgIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gICAKPiAtCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKHZtYS0+bGFzdF9yZWFkKTsgaSsrKQo+IC0JCWluaXRfcmVxdWVz dF9hY3RpdmUoJnZtYS0+bGFzdF9yZWFkW2ldLCBpOTE1X3ZtYV9yZXRpcmUpOwo+ICsJdm1hLT5h Y3RpdmUgPSBSQl9ST09UOwo+ICsKPiAgIAlpbml0X3JlcXVlc3RfYWN0aXZlKCZ2bWEtPmxhc3Rf ZmVuY2UsIE5VTEwpOwo+ICAgCXZtYS0+dm0gPSB2bTsKPiAgIAl2bWEtPm9wcyA9ICZ2bS0+dm1h X29wczsKPiBAQCAtNzc4LDEzICs3ODgsMTEgQEAgdm9pZCBpOTE1X3ZtYV9yZW9wZW4oc3RydWN0 IGk5MTVfdm1hICp2bWEpCj4gICBzdGF0aWMgdm9pZCBfX2k5MTVfdm1hX2Rlc3Ryb3koc3RydWN0 IGk5MTVfdm1hICp2bWEpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUg PSB2bWEtPnZtLT5pOTE1Owo+IC0JaW50IGk7Cj4gKwlzdHJ1Y3QgaTkxNV92bWFfYWN0aXZlICpp dGVyLCAqbjsKPiAgIAo+ICAgCUdFTV9CVUdfT04odm1hLT5ub2RlLmFsbG9jYXRlZCk7Cj4gICAJ R0VNX0JVR19PTih2bWEtPmZlbmNlKTsKPiAgIAo+IC0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJ WkUodm1hLT5sYXN0X3JlYWQpOyBpKyspCj4gLQkJR0VNX0JVR19PTihpOTE1X2dlbV9hY3RpdmVf aXNzZXQoJnZtYS0+bGFzdF9yZWFkW2ldKSk7Cj4gICAJR0VNX0JVR19PTihpOTE1X2dlbV9hY3Rp dmVfaXNzZXQoJnZtYS0+bGFzdF9mZW5jZSkpOwo+ICAgCj4gICAJbGlzdF9kZWwoJnZtYS0+b2Jq X2xpbmspOwo+IEBAIC03OTUsNiArODAzLDExIEBAIHN0YXRpYyB2b2lkIF9faTkxNV92bWFfZGVz dHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgIAlpZiAoIWk5MTVfdm1hX2lzX2dndHQodm1h KSkKPiAgIAkJaTkxNV9wcGd0dF9wdXQoaTkxNV92bV90b19wcGd0dCh2bWEtPnZtKSk7Cj4gICAK PiArCXJidHJlZV9wb3N0b3JkZXJfZm9yX2VhY2hfZW50cnlfc2FmZShpdGVyLCBuLCAmdm1hLT5h Y3RpdmUsIG5vZGUpIHsKPiArCQlHRU1fQlVHX09OKGk5MTVfZ2VtX2FjdGl2ZV9pc3NldCgmaXRl ci0+YmFzZSkpOwo+ICsJCWtmcmVlKGl0ZXIpOwo+ICsJfQo+ICsKPiAgIAlrbWVtX2NhY2hlX2Zy ZWUoaTkxNS0+dm1hcywgdm1hKTsKPiAgIH0KPiAgIAo+IEBAIC04NzgsMTYgKzg5MSw1NCBAQCBz dGF0aWMgdm9pZCBleHBvcnRfZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gICAJcmVzZXJ2 YXRpb25fb2JqZWN0X3VubG9jayhyZXN2KTsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgc3RydWN0IGk5 MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlX2luc3RhbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1NjQg aWR4KQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV92bWFfYWN0aXZlICphY3RpdmU7Cj4gKwlzdHJ1Y3Qg cmJfbm9kZSAqKnAsICpwYXJlbnQ7Cj4gKwo+ICsJcGFyZW50ID0gTlVMTDsKPiArCXAgPSAmdm1h LT5hY3RpdmUucmJfbm9kZTsKPiArCXdoaWxlICgqcCkgewo+ICsJCXBhcmVudCA9ICpwOwo+ICsK PiArCQlhY3RpdmUgPSByYl9lbnRyeShwYXJlbnQsIHN0cnVjdCBpOTE1X3ZtYV9hY3RpdmUsIG5v ZGUpOwo+ICsJCWlmIChhY3RpdmUtPnRpbWVsaW5lID09IGlkeCkKPiArCQkJcmV0dXJuICZhY3Rp dmUtPmJhc2U7Cj4gKwo+ICsJCWlmIChhY3RpdmUtPnRpbWVsaW5lIDwgaWR4KQo+ICsJCQlwID0g JnBhcmVudC0+cmJfcmlnaHQ7Cj4gKwkJZWxzZQo+ICsJCQlwID0gJnBhcmVudC0+cmJfbGVmdDsK PiArCX0KPiArCj4gKwlhY3RpdmUgPSBrbWFsbG9jKHNpemVvZigqYWN0aXZlKSwgR0ZQX0tFUk5F TCk7Cj4gKwlpZiAodW5saWtlbHkoIWFjdGl2ZSkpCj4gKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01F TSk7Cj4gKwo+ICsJaW5pdF9yZXF1ZXN0X2FjdGl2ZSgmYWN0aXZlLT5iYXNlLCBpOTE1X3ZtYV9y ZXRpcmUpOwo+ICsJYWN0aXZlLT52bWEgPSB2bWE7Cj4gKwlhY3RpdmUtPnRpbWVsaW5lID0gaWR4 Owo+ICsKPiArCXJiX2xpbmtfbm9kZSgmYWN0aXZlLT5ub2RlLCBwYXJlbnQsIHApOwo+ICsJcmJf aW5zZXJ0X2NvbG9yKCZhY3RpdmUtPm5vZGUsICZ2bWEtPmFjdGl2ZSk7Cj4gKwo+ICsJcmV0dXJu ICZhY3RpdmUtPmJhc2U7Cj4gK30KPiArCj4gICBpbnQgaTkxNV92bWFfbW92ZV90b19hY3RpdmUo c3RydWN0IGk5MTVfdm1hICp2bWEsCj4gICAJCQkgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEs Cj4gICAJCQkgICAgdW5zaWduZWQgaW50IGZsYWdzKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmogPSB2bWEtPm9iajsKPiAtCWNvbnN0IHVuc2lnbmVkIGludCBpZHgg PSBycS0+ZW5naW5lLT5pZDsKPiArCXN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2ZTsKPiAg IAo+ICAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnJxLT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsK PiAgIAlHRU1fQlVHX09OKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpOwo+ICAg Cj4gKwlhY3RpdmUgPSBhY3RpdmVfaW5zdGFuY2Uodm1hLCBycS0+ZmVuY2UuY29udGV4dCk7Cj4g KwlpZiAoSVNfRVJSKGFjdGl2ZSkpCj4gKwkJcmV0dXJuIFBUUl9FUlIoYWN0aXZlKTsKPiArCj4g ICAJLyoKPiAgIAkgKiBBZGQgYSByZWZlcmVuY2UgaWYgd2UncmUgbmV3bHkgZW50ZXJpbmcgdGhl IGFjdGl2ZSBsaXN0Lgo+ICAgCSAqIFRoZSBvcmRlciBpbiB3aGljaCB3ZSBhZGQgb3BlcmF0aW9u cyB0byB0aGUgcmV0aXJlbWVudCBxdWV1ZSBpcwo+IEBAIC04OTYsMTEgKzk0NywxMyBAQCBpbnQg aTkxNV92bWFfbW92ZV90b19hY3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gICAJICogYWRk IHRoZSBhY3RpdmUgcmVmZXJlbmNlIGZpcnN0IGFuZCBxdWV1ZSBmb3IgaXQgdG8gYmUgZHJvcHBl ZAo+ICAgCSAqICpsYXN0Ki4KPiAgIAkgKi8KPiAtCWlmICghaTkxNV92bWFfaXNfYWN0aXZlKHZt YSkpCj4gKwlpZiAoIWk5MTVfZ2VtX2FjdGl2ZV9pc3NldChhY3RpdmUpICYmICF2bWEtPmFjdGl2 ZV9jb3VudCsrKSB7Cj4gKwkJbGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywgJnZtYS0+dm0t PmFjdGl2ZV9saXN0KTsKPiAgIAkJb2JqLT5hY3RpdmVfY291bnQrKzsKPiAtCWk5MTVfdm1hX3Nl dF9hY3RpdmUodm1hLCBpZHgpOwo+IC0JaTkxNV9nZW1fYWN0aXZlX3NldCgmdm1hLT5sYXN0X3Jl YWRbaWR4XSwgcnEpOwo+IC0JbGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywgJnZtYS0+dm0t PmFjdGl2ZV9saXN0KTsKPiArCX0KPiArCWk5MTVfZ2VtX2FjdGl2ZV9zZXQoYWN0aXZlLCBycSk7 Cj4gKwlHRU1fQlVHX09OKCFpOTE1X3ZtYV9pc19hY3RpdmUodm1hKSk7Cj4gKwlHRU1fQlVHX09O KCFvYmotPmFjdGl2ZV9jb3VudCk7Cj4gICAKPiAgIAlvYmotPndyaXRlX2RvbWFpbiA9IDA7Cj4g ICAJaWYgKGZsYWdzICYgRVhFQ19PQkpFQ1RfV1JJVEUpIHsKPiBAQCAtOTIyLDcgKzk3NSw2IEBA IGludCBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiAgIAo+ ICAgaW50IGk5MTVfdm1hX3VuYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgIHsKPiAtCXVu c2lnbmVkIGxvbmcgYWN0aXZlOwo+ICAgCWludCByZXQ7Cj4gICAKPiAgIAlsb2NrZGVwX2Fzc2Vy dF9oZWxkKCZ2bWEtPnZtLT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiBAQCAtOTMyLDkgKzk4 NCw4IEBAIGludCBpOTE1X3ZtYV91bmJpbmQoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gICAJICog aGF2ZSBzaWRlLWVmZmVjdHMgc3VjaCBhcyB1bnBpbm5pbmcgb3IgZXZlbiB1bmJpbmRpbmcgdGhp cyB2bWEuCj4gICAJICovCj4gICAJbWlnaHRfc2xlZXAoKTsKPiAtCWFjdGl2ZSA9IGk5MTVfdm1h X2dldF9hY3RpdmUodm1hKTsKPiAtCWlmIChhY3RpdmUpIHsKPiAtCQlpbnQgaWR4Owo+ICsJaWYg KGk5MTVfdm1hX2lzX2FjdGl2ZSh2bWEpKSB7Cj4gKwkJc3RydWN0IGk5MTVfdm1hX2FjdGl2ZSAq YWN0aXZlLCAqbjsKPiAgIAo+ICAgCQkvKgo+ICAgCQkgKiBXaGVuIGEgY2xvc2VkIFZNQSBpcyBy ZXRpcmVkLCBpdCBpcyB1bmJvdW5kIC0gZWVrLgo+IEBAIC05NTEsMTggKzEwMDIsMTcgQEAgaW50 IGk5MTVfdm1hX3VuYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgIAkJICovCj4gICAJCV9f aTkxNV92bWFfcGluKHZtYSk7Cj4gICAKPiAtCQlmb3JfZWFjaF9hY3RpdmUoYWN0aXZlLCBpZHgp IHsKPiAtCQkJcmV0ID0gaTkxNV9nZW1fYWN0aXZlX3JldGlyZSgmdm1hLT5sYXN0X3JlYWRbaWR4 XSwKPiArCQlyYnRyZWVfcG9zdG9yZGVyX2Zvcl9lYWNoX2VudHJ5X3NhZmUoYWN0aXZlLCBuLAo+ ICsJCQkJCQkgICAgICZ2bWEtPmFjdGl2ZSwgbm9kZSkgewo+ICsJCQlyZXQgPSBpOTE1X2dlbV9h Y3RpdmVfcmV0aXJlKCZhY3RpdmUtPmJhc2UsCj4gICAJCQkJCQkgICAgICZ2bWEtPnZtLT5pOTE1 LT5kcm0uc3RydWN0X211dGV4KTsKPiAgIAkJCWlmIChyZXQpCj4gLQkJCQlicmVhazsKPiAtCQl9 Cj4gLQo+IC0JCWlmICghcmV0KSB7Cj4gLQkJCXJldCA9IGk5MTVfZ2VtX2FjdGl2ZV9yZXRpcmUo JnZtYS0+bGFzdF9mZW5jZSwKPiAtCQkJCQkJICAgICAmdm1hLT52bS0+aTkxNS0+ZHJtLnN0cnVj dF9tdXRleCk7Cj4gKwkJCQlnb3RvIHVucGluOwo+ICAgCQl9Cj4gICAKPiArCQlyZXQgPSBpOTE1 X2dlbV9hY3RpdmVfcmV0aXJlKCZ2bWEtPmxhc3RfZmVuY2UsCj4gKwkJCQkJICAgICAmdm1hLT52 bS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gK3VucGluOgo+ICAgCQlfX2k5MTVfdm1hX3Vu cGluKHZtYSk7Cj4gICAJCWlmIChyZXQpCj4gICAJCQlyZXR1cm4gcmV0Owo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV92bWEuaAo+IGluZGV4IGEyMThiNjg5ZTQxOC4uYzI5N2IwYTBkYzQ3IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3ZtYS5oCj4gQEAgLTI2LDYgKzI2LDcgQEAKPiAgICNkZWZpbmUgX19JOTE1 X1ZNQV9IX18KPiAgIAo+ICAgI2luY2x1ZGUgPGxpbnV4L2lvLW1hcHBpbmcuaD4KPiArI2luY2x1 ZGUgPGxpbnV4L3JidHJlZS5oPgo+ICAgCj4gICAjaW5jbHVkZSA8ZHJtL2RybV9tbS5oPgo+ICAg Cj4gQEAgLTk0LDggKzk1LDggQEAgc3RydWN0IGk5MTVfdm1hIHsKPiAgICNkZWZpbmUgSTkxNV9W TUFfVVNFUkZBVUxUCUJJVChJOTE1X1ZNQV9VU0VSRkFVTFRfQklUKQo+ICAgI2RlZmluZSBJOTE1 X1ZNQV9HR1RUX1dSSVRFCUJJVCgxMikKPiAgIAo+IC0JdW5zaWduZWQgaW50IGFjdGl2ZTsKPiAt CXN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgbGFzdF9yZWFkW0k5MTVfTlVNX0VOR0lORVNdOwo+ICsJ dW5zaWduZWQgaW50IGFjdGl2ZV9jb3VudDsKPiArCXN0cnVjdCByYl9yb290IGFjdGl2ZTsKPiAg IAlzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlIGxhc3RfZmVuY2U7Cj4gICAKPiAgIAkvKioKPiBAQCAt MTM4LDYgKzEzOSwxNSBAQCBpOTE1X3ZtYV9pbnN0YW5jZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLAo+ICAgCj4gICB2b2lkIGk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKHN0cnVj dCBpOTE1X3ZtYSAqKnBfdm1hKTsKPiAgIAo+ICtzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV92bWFf aXNfYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICt7Cj4gKwlyZXR1cm4gdm1hLT5hY3Rp dmVfY291bnQ7Cj4gK30KPiArCj4gK2ludCBfX211c3RfY2hlY2sgaTkxNV92bWFfbW92ZV90b19h Y3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gKwkJCQkJIHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJxLAo+ICsJCQkJCSB1bnNpZ25lZCBpbnQgZmxhZ3MpOwo+ICsKPiAgIHN0YXRpYyBpbmxpbmUg Ym9vbCBpOTE1X3ZtYV9pc19nZ3R0KGNvbnN0IHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICAgewo+ ICAgCXJldHVybiB2bWEtPmZsYWdzICYgSTkxNV9WTUFfR0dUVDsKPiBAQCAtMTg3LDM4ICsxOTcs NiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV92bWFfaGFzX3VzZXJmYXVsdChjb25zdCBzdHJ1 Y3QgaTkxNV92bWEgKnZtYSkKPiAgIAlyZXR1cm4gdGVzdF9iaXQoSTkxNV9WTUFfVVNFUkZBVUxU X0JJVCwgJnZtYS0+ZmxhZ3MpOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQg aW50IGk5MTVfdm1hX2dldF9hY3RpdmUoY29uc3Qgc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gLXsK PiAtCXJldHVybiB2bWEtPmFjdGl2ZTsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGluZSBib29sIGk5 MTVfdm1hX2lzX2FjdGl2ZShjb25zdCBzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAtewo+IC0JcmV0 dXJuIGk5MTVfdm1hX2dldF9hY3RpdmUodm1hKTsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGluZSB2 b2lkIGk5MTVfdm1hX3NldF9hY3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gLQkJCQkgICAg ICAgdW5zaWduZWQgaW50IGVuZ2luZSkKPiAtewo+IC0Jdm1hLT5hY3RpdmUgfD0gQklUKGVuZ2lu ZSk7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X3ZtYV9jbGVhcl9hY3RpdmUo c3RydWN0IGk5MTVfdm1hICp2bWEsCj4gLQkJCQkJIHVuc2lnbmVkIGludCBlbmdpbmUpCj4gLXsK PiAtCXZtYS0+YWN0aXZlICY9IH5CSVQoZW5naW5lKTsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGlu ZSBib29sIGk5MTVfdm1hX2hhc19hY3RpdmVfZW5naW5lKGNvbnN0IHN0cnVjdCBpOTE1X3ZtYSAq dm1hLAo+IC0JCQkJCSAgICAgIHVuc2lnbmVkIGludCBlbmdpbmUpCj4gLXsKPiAtCXJldHVybiB2 bWEtPmFjdGl2ZSAmIEJJVChlbmdpbmUpOwo+IC19Cj4gLQo+IC1pbnQgX19tdXN0X2NoZWNrIGk5 MTVfdm1hX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAo+IC0JCQkJCSBzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSwKPiAtCQkJCQkgdW5zaWduZWQgaW50IGZsYWdzKTsKPiAtCj4g ICBzdGF0aWMgaW5saW5lIHUzMiBpOTE1X2dndHRfb2Zmc2V0KGNvbnN0IHN0cnVjdCBpOTE1X3Zt YSAqdm1hKQo+ICAgewo+ICAgCUdFTV9CVUdfT04oIWk5MTVfdm1hX2lzX2dndHQodm1hKSk7Cj4g CgpSZXZpZXdlZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4K ClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==