From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [igt-dev] [PATCH i-g-t 06/24] i915/gem_exec_nop: poll-sequential requires ordering between rings Date: Tue, 26 Mar 2019 09:38:57 +0000 Message-ID: <465ecd83-5abb-b40e-ccee-0d9e0962e480@linux.intel.com> References: <20190322092155.1656-1-chris@chris-wilson.co.uk> <20190322092155.1656-6-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190322092155.1656-6-chris@chris-wilson.co.uk> Content-Language: en-US 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 Cc: igt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIyLzAzLzIwMTkgMDk6MjEsIENocmlzIFdpbHNvbiB3cm90ZToKPiBJbiBvcmRlciB0byBj b3JyZWN0bHkgc2VyaWFsaXNlIHRoZSBvcmRlciBvZiBleGVjdXRpb24gYmV0d2VlbiByaW5ncywg d2UKPiBuZWVkIHRvIGZsYWcgdGhlIHNjcmF0Y2ggYWRkcmVzcyBhcyBiZWluZyB3cml0dGVuLiBN YWtlIGl0IHNvLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgo+IC0tLQo+ICAgdGVzdHMvaTkxNS9nZW1fZXhlY19ub3AuYyB8IDE1MiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQs IDEzMyBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdGVz dHMvaTkxNS9nZW1fZXhlY19ub3AuYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbm9wLmMKPiBpbmRl eCA1OWEwOGFkMDguLmI5MWI0ZDBmNiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVj X25vcC5jCj4gKysrIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19ub3AuYwo+IEBAIC0xMDQsNyArMTA0 LDcgQEAgc3RhdGljIGRvdWJsZSBub3Bfb25fcmluZyhpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwg dW5zaWduZWQgcmluZ19pZCwKPiAgIAlyZXR1cm4gZWxhcHNlZCgmc3RhcnQsICZub3cpOwo+ICAg fQo+ICAgCj4gLXN0YXRpYyB2b2lkIHBvbGxfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGNv bnN0IGNoYXIgKm5hbWUsIGludCB0aW1lb3V0KQo+ICtzdGF0aWMgdm9pZCBwb2xsX3JpbmcoaW50 IGZkLCB1bnNpZ25lZCBlbmdpbmUsIGNvbnN0IGNoYXIgKm5hbWUsIGludCB0aW1lb3V0KQo+ICAg ewo+ICAgCWNvbnN0IGludCBnZW4gPSBpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkp Owo+ICAgCWNvbnN0IHVpbnQzMl90IE1JX0FSQl9DSEsgPSAweDUgPDwgMjM7Cj4gQEAgLTExMiwy OSArMTEyLDE3IEBAIHN0YXRpYyB2b2lkIHBvbGxfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcs IGNvbnN0IGNoYXIgKm5hbWUsIGludCB0aW1lb3V0KQo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY19vYmplY3QyIG9iajsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25fZW50 cnkgcmVsb2NbNF0sICpyOwo+ICAgCXVpbnQzMl90ICpiYmVbMl0sICpzdGF0ZSwgKmJhdGNoOwo+ IC0JdW5zaWduZWQgZW5naW5lc1sxNl0sIG5lbmdpbmUsIGZsYWdzOwo+ICAgCXN0cnVjdCB0aW1l c3BlYyB0diA9IHt9Owo+ICAgCXVuc2lnbmVkIGxvbmcgY3ljbGVzOwo+ICsJdW5zaWduZWQgZmxh Z3M7Cj4gICAJdWludDY0X3QgZWxhcHNlZDsKPiAgIAo+ICAgCWZsYWdzID0gSTkxNV9FWEVDX05P X1JFTE9DOwo+ICAgCWlmIChnZW4gPT0gNCB8fCBnZW4gPT0gNSkKPiAgIAkJZmxhZ3MgfD0gSTkx NV9FWEVDX1NFQ1VSRTsKPiAgIAo+IC0JbmVuZ2luZSA9IDA7Cj4gLQlpZiAocmluZyA9PSBBTExf RU5HSU5FUykgewo+IC0JCWZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgcmluZykgewo+IC0J CQlpZiAoIWdlbV9jYW5fc3RvcmVfZHdvcmQoZmQsIHJpbmcpKQo+IC0JCQkJY29udGludWU7Cj4g LQo+IC0JCQllbmdpbmVzW25lbmdpbmUrK10gPSByaW5nOwo+IC0JCX0KPiAtCX0gZWxzZSB7Cj4g LQkJZ2VtX3JlcXVpcmVfcmluZyhmZCwgcmluZyk7Cj4gLQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9z dG9yZV9kd29yZChmZCwgcmluZykpOwo+IC0JCWVuZ2luZXNbbmVuZ2luZSsrXSA9IHJpbmc7Cj4g LQl9Cj4gLQlpZ3RfcmVxdWlyZShuZW5naW5lKTsKPiArCWdlbV9yZXF1aXJlX3JpbmcoZmQsIGVu Z2luZSk7Cj4gKwlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlbmdpbmUpKTsK PiAgIAo+ICAgCW1lbXNldCgmb2JqLCAwLCBzaXplb2Yob2JqKSk7Cj4gICAJb2JqLmhhbmRsZSA9 IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwo+IEBAIC0xOTgsNyArMTg2LDcgQEAgc3RhdGljIHZvaWQg cG9sbF9yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgY29uc3QgY2hhciAqbmFtZSwgaW50IHRp bWVvdXQpCj4gICAJbWVtc2V0KCZleGVjYnVmLCAwLCBzaXplb2YoZXhlY2J1ZikpOwo+ICAgCWV4 ZWNidWYuYnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50ZXIoJm9iaik7Cj4gICAJZXhlY2J1Zi5i dWZmZXJfY291bnQgPSAxOwo+IC0JZXhlY2J1Zi5mbGFncyA9IGVuZ2luZXNbMF07Cj4gKwlleGVj YnVmLmZsYWdzID0gZW5naW5lIHwgZmxhZ3M7Cj4gICAKPiAgIAljeWNsZXMgPSAwOwo+ICAgCWRv IHsKPiBAQCAtMjA4LDcgKzE5Niw2IEBAIHN0YXRpYyB2b2lkIHBvbGxfcmluZyhpbnQgZmQsIHVu c2lnbmVkIHJpbmcsIGNvbnN0IGNoYXIgKm5hbWUsIGludCB0aW1lb3V0KQo+ICAgCQlleGVjYnVm LmJhdGNoX3N0YXJ0X29mZnNldCA9Cj4gICAJCQkoYmJlW2lkeF0gLSBiYXRjaCkgKiBzaXplb2Yo KmJhdGNoKSAtIDY0Owo+ICAgCj4gLQkJZXhlY2J1Zi5mbGFncyA9IGVuZ2luZXNbY3ljbGVzICUg bmVuZ2luZV0gfCBmbGFnczsKPiAgIAkJZ2VtX2V4ZWNidWYoZmQsICZleGVjYnVmKTsKPiAgIAo+ ICAgCQkqYmJlWyFpZHhdID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKPiBAQCAtMjI3LDYgKzIxNCwx MzMgQEAgc3RhdGljIHZvaWQgcG9sbF9yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgY29uc3Qg Y2hhciAqbmFtZSwgaW50IHRpbWVvdXQpCj4gICAJZ2VtX2Nsb3NlKGZkLCBvYmouaGFuZGxlKTsK PiAgIH0KPiAgIAo+ICtzdGF0aWMgdm9pZCBwb2xsX3NlcXVlbnRpYWwoaW50IGZkLCBjb25zdCBj aGFyICpuYW1lLCBpbnQgdGltZW91dCkKPiArewo+ICsJY29uc3QgaW50IGdlbiA9IGludGVsX2dl bihpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSk7Cj4gKwljb25zdCB1aW50MzJfdCBNSV9BUkJfQ0hL ID0gMHg1IDw8IDIzOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBleGVjYnVm Owo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqWzJdOwo+ICsJc3RydWN0 IGRybV9pOTE1X2dlbV9yZWxvY2F0aW9uX2VudHJ5IHJlbG9jWzRdLCAqcjsKPiArCXVpbnQzMl90 ICpiYmVbMl0sICpzdGF0ZSwgKmJhdGNoOwo+ICsJdW5zaWduZWQgZW5naW5lc1sxNl0sIG5lbmdp bmUsIGVuZ2luZSwgZmxhZ3M7Cj4gKwlzdHJ1Y3QgdGltZXNwZWMgdHYgPSB7fTsKPiArCXVuc2ln bmVkIGxvbmcgY3ljbGVzOwo+ICsJdWludDY0X3QgZWxhcHNlZDsKPiArCWJvb2wgY2FjaGVkOwo+ ICsKPiArCWZsYWdzID0gSTkxNV9FWEVDX05PX1JFTE9DOwo+ICsJaWYgKGdlbiA9PSA0IHx8IGdl biA9PSA1KQo+ICsJCWZsYWdzIHw9IEk5MTVfRVhFQ19TRUNVUkU7Cj4gKwo+ICsJbmVuZ2luZSA9 IDA7Cj4gKwlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGVuZ2luZSkgewo+ICsJCWlmICgh Z2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgZW5naW5lKSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJ CWVuZ2luZXNbbmVuZ2luZSsrXSA9IGVuZ2luZTsKPiArCX0KPiArCWlndF9yZXF1aXJlKG5lbmdp bmUpOwo+ICsKPiArCW1lbXNldChvYmosIDAsIHNpemVvZihvYmopKTsKPiArCW9ialswXS5oYW5k bGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKPiArCW9ialswXS5mbGFncyA9IEVYRUNfT0JKRUNU X1dSSVRFOwo+ICsJY2FjaGVkID0gX19nZW1fc2V0X2NhY2hpbmcoZmQsIG9ialswXS5oYW5kbGUs IDEpID09IDA7Cj4gKwlvYmpbMV0uaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7Cj4gKwlv YmpbMV0ucmVsb2NzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihyZWxvYyk7Cj4gKwlvYmpbMV0ucmVs b2NhdGlvbl9jb3VudCA9IEFSUkFZX1NJWkUocmVsb2MpOwo+ICsKPiArCXIgPSBtZW1zZXQocmVs b2MsIDAsIHNpemVvZihyZWxvYykpOwo+ICsJYmF0Y2ggPSBnZW1fbW1hcF9fd2MoZmQsIG9ialsx XS5oYW5kbGUsIDAsIDQwOTYsIFBST1RfV1JJVEUpOwo+ICsKPiArCWZvciAodW5zaWduZWQgaW50 IHN0YXJ0X29mZnNldCA9IDA7Cj4gKwkgICAgIHN0YXJ0X29mZnNldCA8PSAxMjg7Cj4gKwkgICAg IHN0YXJ0X29mZnNldCArPSAxMjgpIHsKPiArCQl1aW50MzJfdCAqYiA9IGJhdGNoICsgc3RhcnRf b2Zmc2V0IC8gc2l6ZW9mKCpiYXRjaCk7Cj4gKwo+ICsJCXItPnRhcmdldF9oYW5kbGUgPSBvYmpb MF0uaGFuZGxlOwo+ICsJCXItPm9mZnNldCA9IChiIC0gYmF0Y2ggKyAxKSAqIHNpemVvZih1aW50 MzJfdCk7Cj4gKwkJci0+ZGVsdGEgPSAwOwo+ICsJCXItPnJlYWRfZG9tYWlucyA9IEk5MTVfR0VN X0RPTUFJTl9SRU5ERVI7Cj4gKwkJci0+d3JpdGVfZG9tYWluID0gSTkxNV9HRU1fRE9NQUlOX1JF TkRFUjsKPiArCj4gKwkJKmIgPSBNSV9TVE9SRV9EV09SRF9JTU0gfCAoZ2VuIDwgNiA/IDEgPDwg MjIgOiAwKTsKPiArCQlpZiAoZ2VuID49IDgpIHsKPiArCQkJKisrYiA9IHItPmRlbHRhOwo+ICsJ CQkqKytiID0gMDsKPiArCQl9IGVsc2UgaWYgKGdlbiA+PSA0KSB7Cj4gKwkJCXItPm9mZnNldCAr PSBzaXplb2YodWludDMyX3QpOwo+ICsJCQkqKytiID0gMDsKPiArCQkJKisrYiA9IHItPmRlbHRh Owo+ICsJCX0gZWxzZSB7Cj4gKwkJCSpiIC09IDE7Cj4gKwkJCSorK2IgPSByLT5kZWx0YTsKPiAr CQl9Cj4gKwkJKisrYiA9IHN0YXJ0X29mZnNldCAhPSAwOwo+ICsJCXIrKzsKPiArCj4gKwkJYiA9 IGJhdGNoICsgKHN0YXJ0X29mZnNldCArIDY0KSAvIHNpemVvZigqYmF0Y2gpOwo+ICsJCWJiZVtz dGFydF9vZmZzZXQgIT0gMF0gPSBiOwo+ICsJCSpiKysgPSBNSV9BUkJfQ0hLOwo+ICsKPiArCQly LT50YXJnZXRfaGFuZGxlID0gb2JqWzFdLmhhbmRsZTsKPiArCQlyLT5vZmZzZXQgPSAoYiAtIGJh dGNoICsgMSkgKiBzaXplb2YodWludDMyX3QpOwo+ICsJCXItPnJlYWRfZG9tYWlucyA9IEk5MTVf R0VNX0RPTUFJTl9DT01NQU5EOwo+ICsJCXItPmRlbHRhID0gc3RhcnRfb2Zmc2V0ICsgNjQ7Cj4g KwkJaWYgKGdlbiA+PSA4KSB7Cj4gKwkJCSpiKysgPSBNSV9CQVRDSF9CVUZGRVJfU1RBUlQgfCAx IDw8IDggfCAxOwo+ICsJCQkqYisrID0gci0+ZGVsdGE7Cj4gKwkJCSpiKysgPSAwOwo+ICsJCX0g ZWxzZSBpZiAoZ2VuID49IDYpIHsKPiArCQkJKmIrKyA9IE1JX0JBVENIX0JVRkZFUl9TVEFSVCB8 IDEgPDwgODsKPiArCQkJKmIrKyA9IHItPmRlbHRhOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCSpiKysg PSBNSV9CQVRDSF9CVUZGRVJfU1RBUlQgfCAyIDw8IDY7Cj4gKwkJCWlmIChnZW4gPCA0KQo+ICsJ CQkJci0+ZGVsdGEgfD0gMTsKPiArCQkJKmIrKyA9IHItPmRlbHRhOwo+ICsJCX0KPiArCQlyKys7 Cj4gKwl9Cj4gKwlpZ3RfYXNzZXJ0KHIgPT0gcmVsb2MgKyBBUlJBWV9TSVpFKHJlbG9jKSk7Cj4g Kwo+ICsJaWYgKGNhY2hlZCkKPiArCQlzdGF0ZSA9IGdlbV9tbWFwX19jcHUoZmQsIG9ialswXS5o YW5kbGUsIDAsIDQwOTYsIFBST1RfUkVBRCk7Cj4gKwllbHNlCj4gKwkJc3RhdGUgPSBnZW1fbW1h cF9fd2MoZmQsIG9ialswXS5oYW5kbGUsIDAsIDQwOTYsIFBST1RfUkVBRCk7Cj4gKwo+ICsJbWVt c2V0KCZleGVjYnVmLCAwLCBzaXplb2YoZXhlY2J1ZikpOwo+ICsJZXhlY2J1Zi5idWZmZXJzX3B0 ciA9IHRvX3VzZXJfcG9pbnRlcihvYmopOwo+ICsJZXhlY2J1Zi5idWZmZXJfY291bnQgPSBBUlJB WV9TSVpFKG9iaik7Cj4gKwo+ICsJY3ljbGVzID0gMDsKPiArCWRvIHsKPiArCQl1bnNpZ25lZCBp bnQgaWR4ID0gKytjeWNsZXMgJiAxOwo+ICsKPiArCQkqYmJlW2lkeF0gPSBNSV9BUkJfQ0hLOwo+ ICsJCWV4ZWNidWYuYmF0Y2hfc3RhcnRfb2Zmc2V0ID0KPiArCQkJKGJiZVtpZHhdIC0gYmF0Y2gp ICogc2l6ZW9mKCpiYXRjaCkgLSA2NDsKPiArCj4gKwkJZXhlY2J1Zi5mbGFncyA9IGVuZ2luZXNb Y3ljbGVzICUgbmVuZ2luZV0gfCBmbGFnczsKPiArCQlnZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYp Owo+ICsKPiArCQkqYmJlWyFpZHhdID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKPiArCQlfX3N5bmNf c3luY2hyb25pemUoKTsKPiArCj4gKwkJd2hpbGUgKFJFQURfT05DRSgqc3RhdGUpICE9IGlkeCkK PiArCQkJOwo+ICsJfSB3aGlsZSAoKGVsYXBzZWQgPSBpZ3RfbnNlY19lbGFwc2VkKCZ0dikpID4+ IDMwIDwgdGltZW91dCk7Cj4gKwkqYmJlW2N5Y2xlcyAmIDFdID0gTUlfQkFUQ0hfQlVGRkVSX0VO RDsKPiArCWdlbV9zeW5jKGZkLCBvYmpbMV0uaGFuZGxlKTsKPiArCj4gKwlpZ3RfaW5mbygiJXMg Y29tcGxldGVkICVsZCBjeWNsZXM6ICUuM2YgdXNcbiIsCj4gKwkJIG5hbWUsIGN5Y2xlcywgZWxh cHNlZCoxZS0zL2N5Y2xlcyk7Cj4gKwo+ICsJbXVubWFwKHN0YXRlLCA0MDk2KTsKPiArCW11bm1h cChiYXRjaCwgNDA5Nik7Cj4gKwlnZW1fY2xvc2UoZmQsIG9ialsxXS5oYW5kbGUpOwo+ICsJZ2Vt X2Nsb3NlKGZkLCBvYmpbMF0uaGFuZGxlKTsKPiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkIHNpbmds ZShpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwKPiAgIAkJICAgdW5zaWduZWQgcmluZ19pZCwgY29u c3QgY2hhciAqcmluZ19uYW1lKQo+ICAgewo+IEBAIC04MTMsNyArOTI3LDcgQEAgaWd0X21haW4K PiAgIAkJfQo+ICAgCj4gICAJCWlndF9zdWJ0ZXN0KCJwb2xsLXNlcXVlbnRpYWwiKQo+IC0JCQlw b2xsX3JpbmcoZGV2aWNlLCBBTExfRU5HSU5FUywgIlNlcXVlbnRpYWwiLCAyMCk7Cj4gKwkJCXBv bGxfc2VxdWVudGlhbChkZXZpY2UsICJTZXF1ZW50aWFsIiwgMjApOwo+ICAgCj4gICAJCWlndF9z dWJ0ZXN0KCJoZWFkbGVzcyIpIHsKPiAgIAkJCS8qIFJlcXVpcmVzIG1hc3RlciBmb3IgY2hhbmdp bmcgZGlzcGxheSBtb2RlcyAqLwo+IAoKUmV2aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0 a28udXJzdWxpbkBpbnRlbC5jb20+CgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: References: <20190322092155.1656-1-chris@chris-wilson.co.uk> <20190322092155.1656-6-chris@chris-wilson.co.uk> From: Tvrtko Ursulin Message-ID: <465ecd83-5abb-b40e-ccee-0d9e0962e480@linux.intel.com> Date: Tue, 26 Mar 2019 09:38:57 +0000 MIME-Version: 1.0 In-Reply-To: <20190322092155.1656-6-chris@chris-wilson.co.uk> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t 06/24] i915/gem_exec_nop: poll-sequential requires ordering between rings List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: igt-dev@lists.freedesktop.org List-ID: Ck9uIDIyLzAzLzIwMTkgMDk6MjEsIENocmlzIFdpbHNvbiB3cm90ZToKPiBJbiBvcmRlciB0byBj b3JyZWN0bHkgc2VyaWFsaXNlIHRoZSBvcmRlciBvZiBleGVjdXRpb24gYmV0d2VlbiByaW5ncywg d2UKPiBuZWVkIHRvIGZsYWcgdGhlIHNjcmF0Y2ggYWRkcmVzcyBhcyBiZWluZyB3cml0dGVuLiBN YWtlIGl0IHNvLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgo+IC0tLQo+ICAgdGVzdHMvaTkxNS9nZW1fZXhlY19ub3AuYyB8IDE1MiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQs IDEzMyBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdGVz dHMvaTkxNS9nZW1fZXhlY19ub3AuYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbm9wLmMKPiBpbmRl eCA1OWEwOGFkMDguLmI5MWI0ZDBmNiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVj X25vcC5jCj4gKysrIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19ub3AuYwo+IEBAIC0xMDQsNyArMTA0 LDcgQEAgc3RhdGljIGRvdWJsZSBub3Bfb25fcmluZyhpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwg dW5zaWduZWQgcmluZ19pZCwKPiAgIAlyZXR1cm4gZWxhcHNlZCgmc3RhcnQsICZub3cpOwo+ICAg fQo+ICAgCj4gLXN0YXRpYyB2b2lkIHBvbGxfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGNv bnN0IGNoYXIgKm5hbWUsIGludCB0aW1lb3V0KQo+ICtzdGF0aWMgdm9pZCBwb2xsX3JpbmcoaW50 IGZkLCB1bnNpZ25lZCBlbmdpbmUsIGNvbnN0IGNoYXIgKm5hbWUsIGludCB0aW1lb3V0KQo+ICAg ewo+ICAgCWNvbnN0IGludCBnZW4gPSBpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkp Owo+ICAgCWNvbnN0IHVpbnQzMl90IE1JX0FSQl9DSEsgPSAweDUgPDwgMjM7Cj4gQEAgLTExMiwy OSArMTEyLDE3IEBAIHN0YXRpYyB2b2lkIHBvbGxfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcs IGNvbnN0IGNoYXIgKm5hbWUsIGludCB0aW1lb3V0KQo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY19vYmplY3QyIG9iajsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25fZW50 cnkgcmVsb2NbNF0sICpyOwo+ICAgCXVpbnQzMl90ICpiYmVbMl0sICpzdGF0ZSwgKmJhdGNoOwo+ IC0JdW5zaWduZWQgZW5naW5lc1sxNl0sIG5lbmdpbmUsIGZsYWdzOwo+ICAgCXN0cnVjdCB0aW1l c3BlYyB0diA9IHt9Owo+ICAgCXVuc2lnbmVkIGxvbmcgY3ljbGVzOwo+ICsJdW5zaWduZWQgZmxh Z3M7Cj4gICAJdWludDY0X3QgZWxhcHNlZDsKPiAgIAo+ICAgCWZsYWdzID0gSTkxNV9FWEVDX05P X1JFTE9DOwo+ICAgCWlmIChnZW4gPT0gNCB8fCBnZW4gPT0gNSkKPiAgIAkJZmxhZ3MgfD0gSTkx NV9FWEVDX1NFQ1VSRTsKPiAgIAo+IC0JbmVuZ2luZSA9IDA7Cj4gLQlpZiAocmluZyA9PSBBTExf RU5HSU5FUykgewo+IC0JCWZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgcmluZykgewo+IC0J CQlpZiAoIWdlbV9jYW5fc3RvcmVfZHdvcmQoZmQsIHJpbmcpKQo+IC0JCQkJY29udGludWU7Cj4g LQo+IC0JCQllbmdpbmVzW25lbmdpbmUrK10gPSByaW5nOwo+IC0JCX0KPiAtCX0gZWxzZSB7Cj4g LQkJZ2VtX3JlcXVpcmVfcmluZyhmZCwgcmluZyk7Cj4gLQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9z dG9yZV9kd29yZChmZCwgcmluZykpOwo+IC0JCWVuZ2luZXNbbmVuZ2luZSsrXSA9IHJpbmc7Cj4g LQl9Cj4gLQlpZ3RfcmVxdWlyZShuZW5naW5lKTsKPiArCWdlbV9yZXF1aXJlX3JpbmcoZmQsIGVu Z2luZSk7Cj4gKwlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlbmdpbmUpKTsK PiAgIAo+ICAgCW1lbXNldCgmb2JqLCAwLCBzaXplb2Yob2JqKSk7Cj4gICAJb2JqLmhhbmRsZSA9 IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwo+IEBAIC0xOTgsNyArMTg2LDcgQEAgc3RhdGljIHZvaWQg cG9sbF9yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgY29uc3QgY2hhciAqbmFtZSwgaW50IHRp bWVvdXQpCj4gICAJbWVtc2V0KCZleGVjYnVmLCAwLCBzaXplb2YoZXhlY2J1ZikpOwo+ICAgCWV4 ZWNidWYuYnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50ZXIoJm9iaik7Cj4gICAJZXhlY2J1Zi5i dWZmZXJfY291bnQgPSAxOwo+IC0JZXhlY2J1Zi5mbGFncyA9IGVuZ2luZXNbMF07Cj4gKwlleGVj YnVmLmZsYWdzID0gZW5naW5lIHwgZmxhZ3M7Cj4gICAKPiAgIAljeWNsZXMgPSAwOwo+ICAgCWRv IHsKPiBAQCAtMjA4LDcgKzE5Niw2IEBAIHN0YXRpYyB2b2lkIHBvbGxfcmluZyhpbnQgZmQsIHVu c2lnbmVkIHJpbmcsIGNvbnN0IGNoYXIgKm5hbWUsIGludCB0aW1lb3V0KQo+ICAgCQlleGVjYnVm LmJhdGNoX3N0YXJ0X29mZnNldCA9Cj4gICAJCQkoYmJlW2lkeF0gLSBiYXRjaCkgKiBzaXplb2Yo KmJhdGNoKSAtIDY0Owo+ICAgCj4gLQkJZXhlY2J1Zi5mbGFncyA9IGVuZ2luZXNbY3ljbGVzICUg bmVuZ2luZV0gfCBmbGFnczsKPiAgIAkJZ2VtX2V4ZWNidWYoZmQsICZleGVjYnVmKTsKPiAgIAo+ ICAgCQkqYmJlWyFpZHhdID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKPiBAQCAtMjI3LDYgKzIxNCwx MzMgQEAgc3RhdGljIHZvaWQgcG9sbF9yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgY29uc3Qg Y2hhciAqbmFtZSwgaW50IHRpbWVvdXQpCj4gICAJZ2VtX2Nsb3NlKGZkLCBvYmouaGFuZGxlKTsK PiAgIH0KPiAgIAo+ICtzdGF0aWMgdm9pZCBwb2xsX3NlcXVlbnRpYWwoaW50IGZkLCBjb25zdCBj aGFyICpuYW1lLCBpbnQgdGltZW91dCkKPiArewo+ICsJY29uc3QgaW50IGdlbiA9IGludGVsX2dl bihpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSk7Cj4gKwljb25zdCB1aW50MzJfdCBNSV9BUkJfQ0hL ID0gMHg1IDw8IDIzOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBleGVjYnVm Owo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqWzJdOwo+ICsJc3RydWN0 IGRybV9pOTE1X2dlbV9yZWxvY2F0aW9uX2VudHJ5IHJlbG9jWzRdLCAqcjsKPiArCXVpbnQzMl90 ICpiYmVbMl0sICpzdGF0ZSwgKmJhdGNoOwo+ICsJdW5zaWduZWQgZW5naW5lc1sxNl0sIG5lbmdp bmUsIGVuZ2luZSwgZmxhZ3M7Cj4gKwlzdHJ1Y3QgdGltZXNwZWMgdHYgPSB7fTsKPiArCXVuc2ln bmVkIGxvbmcgY3ljbGVzOwo+ICsJdWludDY0X3QgZWxhcHNlZDsKPiArCWJvb2wgY2FjaGVkOwo+ ICsKPiArCWZsYWdzID0gSTkxNV9FWEVDX05PX1JFTE9DOwo+ICsJaWYgKGdlbiA9PSA0IHx8IGdl biA9PSA1KQo+ICsJCWZsYWdzIHw9IEk5MTVfRVhFQ19TRUNVUkU7Cj4gKwo+ICsJbmVuZ2luZSA9 IDA7Cj4gKwlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGVuZ2luZSkgewo+ICsJCWlmICgh Z2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgZW5naW5lKSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJ CWVuZ2luZXNbbmVuZ2luZSsrXSA9IGVuZ2luZTsKPiArCX0KPiArCWlndF9yZXF1aXJlKG5lbmdp bmUpOwo+ICsKPiArCW1lbXNldChvYmosIDAsIHNpemVvZihvYmopKTsKPiArCW9ialswXS5oYW5k bGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKPiArCW9ialswXS5mbGFncyA9IEVYRUNfT0JKRUNU X1dSSVRFOwo+ICsJY2FjaGVkID0gX19nZW1fc2V0X2NhY2hpbmcoZmQsIG9ialswXS5oYW5kbGUs IDEpID09IDA7Cj4gKwlvYmpbMV0uaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7Cj4gKwlv YmpbMV0ucmVsb2NzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihyZWxvYyk7Cj4gKwlvYmpbMV0ucmVs b2NhdGlvbl9jb3VudCA9IEFSUkFZX1NJWkUocmVsb2MpOwo+ICsKPiArCXIgPSBtZW1zZXQocmVs b2MsIDAsIHNpemVvZihyZWxvYykpOwo+ICsJYmF0Y2ggPSBnZW1fbW1hcF9fd2MoZmQsIG9ialsx XS5oYW5kbGUsIDAsIDQwOTYsIFBST1RfV1JJVEUpOwo+ICsKPiArCWZvciAodW5zaWduZWQgaW50 IHN0YXJ0X29mZnNldCA9IDA7Cj4gKwkgICAgIHN0YXJ0X29mZnNldCA8PSAxMjg7Cj4gKwkgICAg IHN0YXJ0X29mZnNldCArPSAxMjgpIHsKPiArCQl1aW50MzJfdCAqYiA9IGJhdGNoICsgc3RhcnRf b2Zmc2V0IC8gc2l6ZW9mKCpiYXRjaCk7Cj4gKwo+ICsJCXItPnRhcmdldF9oYW5kbGUgPSBvYmpb MF0uaGFuZGxlOwo+ICsJCXItPm9mZnNldCA9IChiIC0gYmF0Y2ggKyAxKSAqIHNpemVvZih1aW50 MzJfdCk7Cj4gKwkJci0+ZGVsdGEgPSAwOwo+ICsJCXItPnJlYWRfZG9tYWlucyA9IEk5MTVfR0VN X0RPTUFJTl9SRU5ERVI7Cj4gKwkJci0+d3JpdGVfZG9tYWluID0gSTkxNV9HRU1fRE9NQUlOX1JF TkRFUjsKPiArCj4gKwkJKmIgPSBNSV9TVE9SRV9EV09SRF9JTU0gfCAoZ2VuIDwgNiA/IDEgPDwg MjIgOiAwKTsKPiArCQlpZiAoZ2VuID49IDgpIHsKPiArCQkJKisrYiA9IHItPmRlbHRhOwo+ICsJ CQkqKytiID0gMDsKPiArCQl9IGVsc2UgaWYgKGdlbiA+PSA0KSB7Cj4gKwkJCXItPm9mZnNldCAr PSBzaXplb2YodWludDMyX3QpOwo+ICsJCQkqKytiID0gMDsKPiArCQkJKisrYiA9IHItPmRlbHRh Owo+ICsJCX0gZWxzZSB7Cj4gKwkJCSpiIC09IDE7Cj4gKwkJCSorK2IgPSByLT5kZWx0YTsKPiAr CQl9Cj4gKwkJKisrYiA9IHN0YXJ0X29mZnNldCAhPSAwOwo+ICsJCXIrKzsKPiArCj4gKwkJYiA9 IGJhdGNoICsgKHN0YXJ0X29mZnNldCArIDY0KSAvIHNpemVvZigqYmF0Y2gpOwo+ICsJCWJiZVtz dGFydF9vZmZzZXQgIT0gMF0gPSBiOwo+ICsJCSpiKysgPSBNSV9BUkJfQ0hLOwo+ICsKPiArCQly LT50YXJnZXRfaGFuZGxlID0gb2JqWzFdLmhhbmRsZTsKPiArCQlyLT5vZmZzZXQgPSAoYiAtIGJh dGNoICsgMSkgKiBzaXplb2YodWludDMyX3QpOwo+ICsJCXItPnJlYWRfZG9tYWlucyA9IEk5MTVf R0VNX0RPTUFJTl9DT01NQU5EOwo+ICsJCXItPmRlbHRhID0gc3RhcnRfb2Zmc2V0ICsgNjQ7Cj4g KwkJaWYgKGdlbiA+PSA4KSB7Cj4gKwkJCSpiKysgPSBNSV9CQVRDSF9CVUZGRVJfU1RBUlQgfCAx IDw8IDggfCAxOwo+ICsJCQkqYisrID0gci0+ZGVsdGE7Cj4gKwkJCSpiKysgPSAwOwo+ICsJCX0g ZWxzZSBpZiAoZ2VuID49IDYpIHsKPiArCQkJKmIrKyA9IE1JX0JBVENIX0JVRkZFUl9TVEFSVCB8 IDEgPDwgODsKPiArCQkJKmIrKyA9IHItPmRlbHRhOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCSpiKysg PSBNSV9CQVRDSF9CVUZGRVJfU1RBUlQgfCAyIDw8IDY7Cj4gKwkJCWlmIChnZW4gPCA0KQo+ICsJ CQkJci0+ZGVsdGEgfD0gMTsKPiArCQkJKmIrKyA9IHItPmRlbHRhOwo+ICsJCX0KPiArCQlyKys7 Cj4gKwl9Cj4gKwlpZ3RfYXNzZXJ0KHIgPT0gcmVsb2MgKyBBUlJBWV9TSVpFKHJlbG9jKSk7Cj4g Kwo+ICsJaWYgKGNhY2hlZCkKPiArCQlzdGF0ZSA9IGdlbV9tbWFwX19jcHUoZmQsIG9ialswXS5o YW5kbGUsIDAsIDQwOTYsIFBST1RfUkVBRCk7Cj4gKwllbHNlCj4gKwkJc3RhdGUgPSBnZW1fbW1h cF9fd2MoZmQsIG9ialswXS5oYW5kbGUsIDAsIDQwOTYsIFBST1RfUkVBRCk7Cj4gKwo+ICsJbWVt c2V0KCZleGVjYnVmLCAwLCBzaXplb2YoZXhlY2J1ZikpOwo+ICsJZXhlY2J1Zi5idWZmZXJzX3B0 ciA9IHRvX3VzZXJfcG9pbnRlcihvYmopOwo+ICsJZXhlY2J1Zi5idWZmZXJfY291bnQgPSBBUlJB WV9TSVpFKG9iaik7Cj4gKwo+ICsJY3ljbGVzID0gMDsKPiArCWRvIHsKPiArCQl1bnNpZ25lZCBp bnQgaWR4ID0gKytjeWNsZXMgJiAxOwo+ICsKPiArCQkqYmJlW2lkeF0gPSBNSV9BUkJfQ0hLOwo+ ICsJCWV4ZWNidWYuYmF0Y2hfc3RhcnRfb2Zmc2V0ID0KPiArCQkJKGJiZVtpZHhdIC0gYmF0Y2gp ICogc2l6ZW9mKCpiYXRjaCkgLSA2NDsKPiArCj4gKwkJZXhlY2J1Zi5mbGFncyA9IGVuZ2luZXNb Y3ljbGVzICUgbmVuZ2luZV0gfCBmbGFnczsKPiArCQlnZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYp Owo+ICsKPiArCQkqYmJlWyFpZHhdID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKPiArCQlfX3N5bmNf c3luY2hyb25pemUoKTsKPiArCj4gKwkJd2hpbGUgKFJFQURfT05DRSgqc3RhdGUpICE9IGlkeCkK PiArCQkJOwo+ICsJfSB3aGlsZSAoKGVsYXBzZWQgPSBpZ3RfbnNlY19lbGFwc2VkKCZ0dikpID4+ IDMwIDwgdGltZW91dCk7Cj4gKwkqYmJlW2N5Y2xlcyAmIDFdID0gTUlfQkFUQ0hfQlVGRkVSX0VO RDsKPiArCWdlbV9zeW5jKGZkLCBvYmpbMV0uaGFuZGxlKTsKPiArCj4gKwlpZ3RfaW5mbygiJXMg Y29tcGxldGVkICVsZCBjeWNsZXM6ICUuM2YgdXNcbiIsCj4gKwkJIG5hbWUsIGN5Y2xlcywgZWxh cHNlZCoxZS0zL2N5Y2xlcyk7Cj4gKwo+ICsJbXVubWFwKHN0YXRlLCA0MDk2KTsKPiArCW11bm1h cChiYXRjaCwgNDA5Nik7Cj4gKwlnZW1fY2xvc2UoZmQsIG9ialsxXS5oYW5kbGUpOwo+ICsJZ2Vt X2Nsb3NlKGZkLCBvYmpbMF0uaGFuZGxlKTsKPiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkIHNpbmds ZShpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwKPiAgIAkJICAgdW5zaWduZWQgcmluZ19pZCwgY29u c3QgY2hhciAqcmluZ19uYW1lKQo+ICAgewo+IEBAIC04MTMsNyArOTI3LDcgQEAgaWd0X21haW4K PiAgIAkJfQo+ICAgCj4gICAJCWlndF9zdWJ0ZXN0KCJwb2xsLXNlcXVlbnRpYWwiKQo+IC0JCQlw b2xsX3JpbmcoZGV2aWNlLCBBTExfRU5HSU5FUywgIlNlcXVlbnRpYWwiLCAyMCk7Cj4gKwkJCXBv bGxfc2VxdWVudGlhbChkZXZpY2UsICJTZXF1ZW50aWFsIiwgMjApOwo+ICAgCj4gICAJCWlndF9z dWJ0ZXN0KCJoZWFkbGVzcyIpIHsKPiAgIAkJCS8qIFJlcXVpcmVzIG1hc3RlciBmb3IgY2hhbmdp bmcgZGlzcGxheSBtb2RlcyAqLwo+IAoKUmV2aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0 a28udXJzdWxpbkBpbnRlbC5jb20+CgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1k ZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaWd0LWRldg==