From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: References: <20180522110044.26439-1-chris@chris-wilson.co.uk> <20180522110044.26439-3-chris@chris-wilson.co.uk> From: Tvrtko Ursulin Message-ID: <008cd3a4-9444-ec6d-5925-d49d3c5980a4@linux.intel.com> Date: Tue, 22 May 2018 12:49:52 +0100 MIME-Version: 1.0 In-Reply-To: <20180522110044.26439-3-chris@chris-wilson.co.uk> Content-Language: en-GB Subject: Re: [Intel-gfx] [PATCH i-g-t 3/3] benchmarks/gem_syslatency: Specify batch duration 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: 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: Ck9uIDIyLzA1LzIwMTggMTI6MDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBXaGlsZSBmb3Igc3Ry ZXNzaW5nIHRoZSBzeXN0ZW0gd2Ugd2FudCB0byBzdWJtaXQgYXMgbWFueSBiYXRjaGVzIGFzIHdl Cj4gY2FuIGFzIHRoYXQgc2hvd3MgdXMgd29yc3QgY2FzZSBpbXBhY3Qgb24gc3lzdGVtIGxhdGVu Y3ksIGl0IGlzIG5vdCBhCj4gdmVyeSByZWFsaXN0aWMgY2FzZS4gVG8gaW50cm9kdWNlIGEgYml0 IG1vcmUgcmVhbGlzbSBhbGxvdyB0aGUgYmF0Y2hlcwo+IHJ1biBmb3IgYSB1c2VyIGRlZmluZWQg ZHVyYXRpb24uCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxz b24uY28udWs+Cj4gLS0tCj4gICBiZW5jaG1hcmtzL2dlbV9zeXNsYXRlbmN5LmMgfCA3MSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgNjcg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvYmVuY2htYXJr cy9nZW1fc3lzbGF0ZW5jeS5jIGIvYmVuY2htYXJrcy9nZW1fc3lzbGF0ZW5jeS5jCj4gaW5kZXgg ZDEwNTY3NzNhLi40NWNhYmU4NmMgMTAwNjQ0Cj4gLS0tIGEvYmVuY2htYXJrcy9nZW1fc3lzbGF0 ZW5jeS5jCj4gKysrIGIvYmVuY2htYXJrcy9nZW1fc3lzbGF0ZW5jeS5jCj4gQEAgLTUxLDYgKzUx LDcgQEAgc3RhdGljIHZvbGF0aWxlIGludCBkb25lOwo+ICAgCj4gICBzdHJ1Y3QgZ2VtX2J1c3lz cGluIHsKPiAgIAlwdGhyZWFkX3QgdGhyZWFkOwo+ICsJdW5zaWduZWQgbG9uZyBzejsKPiAgIAl1 bnNpZ25lZCBsb25nIGNvdW50Owo+ICAgCWJvb2wgbGVhazsKPiAgIAlib29sIGludGVycnVwdHM7 Cj4gQEAgLTk2LDcgKzk3LDggQEAgc3RhdGljIHZvaWQgKmdlbV9idXN5c3Bpbih2b2lkICphcmcp Cj4gICAJc3RydWN0IGdlbV9idXN5c3BpbiAqYnMgPSBhcmc7Cj4gICAJc3RydWN0IGRybV9pOTE1 X2dlbV9leGVjYnVmZmVyMiBleGVjYnVmOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19v YmplY3QyIG9ialsyXTsKPiAtCWNvbnN0IHVuc2lnbmVkIHN6ID0gYnMtPmxlYWsgPyAxNiA8PCAy MCA6IDQgPDwgMTA7Cj4gKwljb25zdCB1bnNpZ25lZCBzeiA9Cj4gKwkJYnMtPnN6ID8gYnMtPnN6 ICsgc2l6ZW9mKGJiZSkgOiBicy0+bGVhayA/IDE2IDw8IDIwIDogNCA8PCAxMDsKPiAgIAl1bnNp Z25lZCBlbmdpbmVzWzE2XTsKPiAgIAl1bnNpZ25lZCBuZW5naW5lOwo+ICAgCXVuc2lnbmVkIGVu Z2luZTsKPiBAQCAtMTEyLDcgKzExNCw3IEBAIHN0YXRpYyB2b2lkICpnZW1fYnVzeXNwaW4odm9p ZCAqYXJnKQo+ICAgCW9ialswXS5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKPiAgIAlv YmpbMF0uZmxhZ3MgPSBFWEVDX09CSkVDVF9XUklURTsKPiAgIAlvYmpbMV0uaGFuZGxlID0gZ2Vt X2NyZWF0ZShmZCwgc3opOwo+IC0JZ2VtX3dyaXRlKGZkLCBvYmpbMV0uaGFuZGxlLCAwLCAmYmJl LCBzaXplb2YoYmJlKSk7Cj4gKwlnZW1fd3JpdGUoZmQsIG9ialsxXS5oYW5kbGUsIGJzLT5zeiwg JmJiZSwgc2l6ZW9mKGJiZSkpOwoKSG0gd2hhdCB3YXMgdGhlIHBvaW50IGluIGNyZWF0aW5nIGxh cmdlIGJhdGNoZXMgaGVyZSBpZiBiYmVuZCB3YXMgYWx3YXlzIApmaXJzdD8KCj4gICAKPiAgIAlt ZW1zZXQoJmV4ZWNidWYsIDAsIHNpemVvZihleGVjYnVmKSk7Cj4gICAJZXhlY2J1Zi5idWZmZXJz X3B0ciA9ICh1aW50cHRyX3QpKG9iaiArICFicy0+aW50ZXJydXB0cyk7Cj4gQEAgLTEyNSw2ICsx MjcsMTIgQEAgc3RhdGljIHZvaWQgKmdlbV9idXN5c3Bpbih2b2lkICphcmcpCj4gICAJfQo+ICAg Cj4gICAJd2hpbGUgKCFkb25lKSB7Cj4gKwkJZm9yIChpbnQgbiA9IDA7IG4gPCBuZW5naW5lOyBu KyspIHsKPiArCQkJY29uc3QgaW50IG0gPSByYW5kKCkgJSBuZW5naW5lOwo+ICsJCQl1bnNpZ25l ZCBpbnQgdG1wID0gZW5naW5lc1tuXTsKPiArCQkJZW5naW5lc1tuXSA9IGVuZ2luZXNbbV07Cj4g KwkJCWVuZ2luZXNbbV0gPSB0bXA7CgppZ3RfZXhjaGFuZ2VfaW50PyBQcm9ibGVtIHdpdGggZnJh bWV3b3JrcyBnZXR0aW5nIG1vcmUgZmVhdHVyZWZ1bCBpcyAKZWFzaWVyIHRvIGZvcmdldCB3aGF0 IGlzIHRoZXJlLiA6KSBPciBldmVuIGlndF9wZXJtdXRlX2FycmF5PwoKQnV0IHdoYXQgaXQgaGFz IHRvIGRvIHdpdGggYmF0Y2ggZHVyYXRpb24/Cgo+ICsJCX0KPiAgIAkJZm9yIChpbnQgbiA9IDA7 IG4gPCBuZW5naW5lOyBuKyspIHsKPiAgIAkJCWV4ZWNidWYuZmxhZ3MgJj0gfkVOR0lORV9GTEFH UzsKPiAgIAkJCWV4ZWNidWYuZmxhZ3MgfD0gZW5naW5lc1tuXTsKPiBAQCAtMTM0LDcgKzE0Miw3 IEBAIHN0YXRpYyB2b2lkICpnZW1fYnVzeXNwaW4odm9pZCAqYXJnKQo+ICAgCQlpZiAoYnMtPmxl YWspIHsKPiAgIAkJCWdlbV9tYWR2aXNlKGZkLCBvYmpbMV0uaGFuZGxlLCBJOTE1X01BRFZfRE9O VE5FRUQpOwo+ICAgCQkJb2JqWzFdLmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIHN6KTsKPiAtCQkJ Z2VtX3dyaXRlKGZkLCBvYmpbMV0uaGFuZGxlLCAwLCAmYmJlLCBzaXplb2YoYmJlKSk7Cj4gKwkJ CWdlbV93cml0ZShmZCwgb2JqWzFdLmhhbmRsZSwgYnMtPnN6LCAmYmJlLCBzaXplb2YoYmJlKSk7 Cj4gICAJCX0KPiAgIAl9Cj4gICAKPiBAQCAtMjk0LDYgKzMwMiw1MCBAQCBzdGF0aWMgdm9pZCAq YmFja2dyb3VuZF9mcyh2b2lkICpwYXRoKQo+ICAgCXJldHVybiBOVUxMOwo+ICAgfQo+ICAgCj4g K3N0YXRpYyB1bnNpZ25lZCBsb25nIGNhbGlicmF0ZV9ub3AodW5zaWduZWQgaW50IHRhcmdldF91 cywKPiArCQkJCSAgIHVuc2lnbmVkIGludCB0b2xlcmFuY2VfcGN0KQo+ICt7Cj4gKwljb25zdCB1 aW50MzJfdCBiYmUgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwo+ICsJY29uc3QgdW5zaWduZWQgaW50 IGxvb3BzID0gMTAwOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqID0g e307Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGViID0KPiArCQl7IC5idWZm ZXJfY291bnQgPSAxLCAuYnVmZmVyc19wdHIgPSAodWludHB0cl90KSZvYmp9Owo+ICsJc3RydWN0 IHRpbWVzcGVjIHRfMCwgdF9lbmQ7Cj4gKwlsb25nIHN6LCBwcmV2Owo+ICsJaW50IGZkOwo+ICsK PiArCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7Cj4gKwo+ICsJY2xvY2tfZ2V0 dGltZShDTE9DS19NT05PVE9OSUMsICZ0XzApOwo+ICsKPiArCXN6ID0gMjU2ICogMTAyNDsKPiAr CWRvIHsKPiArCQlzdHJ1Y3QgdGltZXNwZWMgdF9zdGFydDsKPiArCj4gKwkJb2JqLmhhbmRsZSA9 IGdlbV9jcmVhdGUoZmQsIHN6ICsgc2l6ZW9mKGJiZSkpOwo+ICsJCWdlbV93cml0ZShmZCwgb2Jq LmhhbmRsZSwgc3osICZiYmUsIHNpemVvZihiYmUpKTsKPiArCQlnZW1fZXhlY2J1ZihmZCwgJmVi KTsKPiArCQlnZW1fc3luYyhmZCwgb2JqLmhhbmRsZSk7Cj4gKwo+ICsJCWNsb2NrX2dldHRpbWUo Q0xPQ0tfTU9OT1RPTklDLCAmdF9zdGFydCk7Cj4gKwkJZm9yIChpbnQgbG9vcCA9IDA7IGxvb3Ag PCBsb29wczsgbG9vcCsrKQo+ICsJCQlnZW1fZXhlY2J1ZihmZCwgJmViKTsKPiArCQlnZW1fc3lu YyhmZCwgb2JqLmhhbmRsZSk7Cj4gKwkJY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZ0 X2VuZCk7Cj4gKwo+ICsJCWdlbV9jbG9zZShmZCwgb2JqLmhhbmRsZSk7Cj4gKwo+ICsJCXByZXYg PSBzejsKPiArCQlzeiA9IGxvb3BzICogc3ogLyBlbGFwc2VkKCZ0X3N0YXJ0LCAmdF9lbmQpICog MWUzICogdGFyZ2V0X3VzOwo+ICsJCXN6ID0gQUxJR04oc3osIHNpemVvZih1aW50MzJfdCkpOwo+ ICsJfSB3aGlsZSAoZWxhcHNlZCgmdF8wLCAmdF9lbmQpIDwgNSB8fAo+ICsJCSBhYnMoc3ogLSBw cmV2KSA+IChzeiAqIHRvbGVyYW5jZV9wY3QgLyAxMDApKTsKPiArCj4gKwljbG9zZShmZCk7Cj4g Kwo+ICsJcmV0dXJuIHN6Owo+ICt9CgpJIHByZXN1bWUgdGhpcyBpcyBhIGNvcHkmcGFzdGUgc28g ZG9uJ3QgaGF2ZSB0byBsb29rIGludG8gaXQgaW4gZGV0YWlsLgoKPiArCj4gICBpbnQgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gICB7Cj4gICAJc3RydWN0IGdlbV9idXN5c3BpbiAqYnVz eTsKPiBAQCAtMzA5LDkgKzM2MSwxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp Cj4gICAJaW50IGVuYWJsZV9nZW1fc3lzYnVzeSA9IDE7Cj4gICAJYm9vbCBsZWFrID0gZmFsc2U7 Cj4gICAJYm9vbCBpbnRlcnJ1cHRzID0gZmFsc2U7Cj4gKwlsb25nIGJhdGNoID0gMDsKPiAgIAlp bnQgbiwgYzsKPiAgIAo+IC0Jd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJ0OmY6Ym1u aTEiKSkgIT0gLTEpIHsKPiArCXdoaWxlICgoYyA9IGdldG9wdChhcmdjLCBhcmd2LCAicjp0OmY6 Ym1uaTEiKSkgIT0gLTEpIHsKPiAgIAkJc3dpdGNoIChjKSB7Cj4gICAJCWNhc2UgJzEnOgo+ICAg CQkJbmNwdXMgPSAxOwo+IEBAIC0zMjgsNiArMzgxLDEwIEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKPiAgIAkJCWlmICh0aW1lIDwgMCkKPiAgIAkJCQl0aW1lID0gSU5UX01BWDsK PiAgIAkJCWJyZWFrOwo+ICsJCWNhc2UgJ3InOgo+ICsJCQkvKiBEdXJhdGlvbiBvZiBlYWNoIGJh dGNoIChtaWNyb3NlY29uZHMpICovCj4gKwkJCWJhdGNoID0gYXRvaShvcHRhcmcpOwo+ICsJCQli cmVhazsKPiAgIAkJY2FzZSAnZic6Cj4gICAJCQkvKiBTZWxlY3QgYW4gb3V0cHV0IGZpZWxkICov Cj4gICAJCQlmaWVsZCA9IGF0b2kob3B0YXJnKTsKPiBAQCAtMzUwLDExICs0MDcsMTcgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAgCWZvcmNlX2xvd19sYXRlbmN5KCk7Cj4g ICAJbWluID0gbWluX21lYXN1cmVtZW50X2Vycm9yKCk7Cj4gICAKPiArCWlmIChiYXRjaCA+IDAp Cj4gKwkJYmF0Y2ggPSBjYWxpYnJhdGVfbm9wKGJhdGNoLCAyKTsKPiArCWVsc2UKPiArCQliYXRj aCA9IC1iYXRjaDsKPiArCgpObyBpZGVhIG9mIHRoZSBwdXJwb3NlIG9mIHRoaXMuIFVzZXIgcGFz c2VzIGluIG5lZ2F0aXZlIG9uIHRoZSBjbWQgbGluZT8gCkJ1dCB0aGVuIGNhbGlicmF0aW9uIGlz IG1pc3NpbmcuCgo+ICAgCWJ1c3kgPSBjYWxsb2MobmNwdXMsIHNpemVvZigqYnVzeSkpOwo+ICAg CXB0aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKPiAgIAlpZiAoZW5hYmxlX2dlbV9zeXNidXN5KSB7 Cj4gICAJCWZvciAobiA9IDA7IG4gPCBuY3B1czsgbisrKSB7Cj4gICAJCQliaW5kX2NwdSgmYXR0 ciwgbik7Cj4gKwkJCWJ1c3lbbl0uc3ogPSBiYXRjaDsKPiAgIAkJCWJ1c3lbbl0ubGVhayA9IGxl YWs7Cj4gICAJCQlidXN5W25dLmludGVycnVwdHMgPSBpbnRlcnJ1cHRzOwo+ICAgCQkJcHRocmVh ZF9jcmVhdGUoJmJ1c3lbbl0udGhyZWFkLCAmYXR0ciwKPiAKClJlZ2FyZHMsCgpUdnJ0a28KX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH i-g-t 3/3] benchmarks/gem_syslatency: Specify batch duration Date: Tue, 22 May 2018 12:49:52 +0100 Message-ID: <008cd3a4-9444-ec6d-5925-d49d3c5980a4@linux.intel.com> References: <20180522110044.26439-1-chris@chris-wilson.co.uk> <20180522110044.26439-3-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: <20180522110044.26439-3-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 Cc: igt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIyLzA1LzIwMTggMTI6MDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBXaGlsZSBmb3Igc3Ry ZXNzaW5nIHRoZSBzeXN0ZW0gd2Ugd2FudCB0byBzdWJtaXQgYXMgbWFueSBiYXRjaGVzIGFzIHdl Cj4gY2FuIGFzIHRoYXQgc2hvd3MgdXMgd29yc3QgY2FzZSBpbXBhY3Qgb24gc3lzdGVtIGxhdGVu Y3ksIGl0IGlzIG5vdCBhCj4gdmVyeSByZWFsaXN0aWMgY2FzZS4gVG8gaW50cm9kdWNlIGEgYml0 IG1vcmUgcmVhbGlzbSBhbGxvdyB0aGUgYmF0Y2hlcwo+IHJ1biBmb3IgYSB1c2VyIGRlZmluZWQg ZHVyYXRpb24uCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxz b24uY28udWs+Cj4gLS0tCj4gICBiZW5jaG1hcmtzL2dlbV9zeXNsYXRlbmN5LmMgfCA3MSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgNjcg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvYmVuY2htYXJr cy9nZW1fc3lzbGF0ZW5jeS5jIGIvYmVuY2htYXJrcy9nZW1fc3lzbGF0ZW5jeS5jCj4gaW5kZXgg ZDEwNTY3NzNhLi40NWNhYmU4NmMgMTAwNjQ0Cj4gLS0tIGEvYmVuY2htYXJrcy9nZW1fc3lzbGF0 ZW5jeS5jCj4gKysrIGIvYmVuY2htYXJrcy9nZW1fc3lzbGF0ZW5jeS5jCj4gQEAgLTUxLDYgKzUx LDcgQEAgc3RhdGljIHZvbGF0aWxlIGludCBkb25lOwo+ICAgCj4gICBzdHJ1Y3QgZ2VtX2J1c3lz cGluIHsKPiAgIAlwdGhyZWFkX3QgdGhyZWFkOwo+ICsJdW5zaWduZWQgbG9uZyBzejsKPiAgIAl1 bnNpZ25lZCBsb25nIGNvdW50Owo+ICAgCWJvb2wgbGVhazsKPiAgIAlib29sIGludGVycnVwdHM7 Cj4gQEAgLTk2LDcgKzk3LDggQEAgc3RhdGljIHZvaWQgKmdlbV9idXN5c3Bpbih2b2lkICphcmcp Cj4gICAJc3RydWN0IGdlbV9idXN5c3BpbiAqYnMgPSBhcmc7Cj4gICAJc3RydWN0IGRybV9pOTE1 X2dlbV9leGVjYnVmZmVyMiBleGVjYnVmOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19v YmplY3QyIG9ialsyXTsKPiAtCWNvbnN0IHVuc2lnbmVkIHN6ID0gYnMtPmxlYWsgPyAxNiA8PCAy MCA6IDQgPDwgMTA7Cj4gKwljb25zdCB1bnNpZ25lZCBzeiA9Cj4gKwkJYnMtPnN6ID8gYnMtPnN6 ICsgc2l6ZW9mKGJiZSkgOiBicy0+bGVhayA/IDE2IDw8IDIwIDogNCA8PCAxMDsKPiAgIAl1bnNp Z25lZCBlbmdpbmVzWzE2XTsKPiAgIAl1bnNpZ25lZCBuZW5naW5lOwo+ICAgCXVuc2lnbmVkIGVu Z2luZTsKPiBAQCAtMTEyLDcgKzExNCw3IEBAIHN0YXRpYyB2b2lkICpnZW1fYnVzeXNwaW4odm9p ZCAqYXJnKQo+ICAgCW9ialswXS5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKPiAgIAlv YmpbMF0uZmxhZ3MgPSBFWEVDX09CSkVDVF9XUklURTsKPiAgIAlvYmpbMV0uaGFuZGxlID0gZ2Vt X2NyZWF0ZShmZCwgc3opOwo+IC0JZ2VtX3dyaXRlKGZkLCBvYmpbMV0uaGFuZGxlLCAwLCAmYmJl LCBzaXplb2YoYmJlKSk7Cj4gKwlnZW1fd3JpdGUoZmQsIG9ialsxXS5oYW5kbGUsIGJzLT5zeiwg JmJiZSwgc2l6ZW9mKGJiZSkpOwoKSG0gd2hhdCB3YXMgdGhlIHBvaW50IGluIGNyZWF0aW5nIGxh cmdlIGJhdGNoZXMgaGVyZSBpZiBiYmVuZCB3YXMgYWx3YXlzIApmaXJzdD8KCj4gICAKPiAgIAlt ZW1zZXQoJmV4ZWNidWYsIDAsIHNpemVvZihleGVjYnVmKSk7Cj4gICAJZXhlY2J1Zi5idWZmZXJz X3B0ciA9ICh1aW50cHRyX3QpKG9iaiArICFicy0+aW50ZXJydXB0cyk7Cj4gQEAgLTEyNSw2ICsx MjcsMTIgQEAgc3RhdGljIHZvaWQgKmdlbV9idXN5c3Bpbih2b2lkICphcmcpCj4gICAJfQo+ICAg Cj4gICAJd2hpbGUgKCFkb25lKSB7Cj4gKwkJZm9yIChpbnQgbiA9IDA7IG4gPCBuZW5naW5lOyBu KyspIHsKPiArCQkJY29uc3QgaW50IG0gPSByYW5kKCkgJSBuZW5naW5lOwo+ICsJCQl1bnNpZ25l ZCBpbnQgdG1wID0gZW5naW5lc1tuXTsKPiArCQkJZW5naW5lc1tuXSA9IGVuZ2luZXNbbV07Cj4g KwkJCWVuZ2luZXNbbV0gPSB0bXA7CgppZ3RfZXhjaGFuZ2VfaW50PyBQcm9ibGVtIHdpdGggZnJh bWV3b3JrcyBnZXR0aW5nIG1vcmUgZmVhdHVyZWZ1bCBpcyAKZWFzaWVyIHRvIGZvcmdldCB3aGF0 IGlzIHRoZXJlLiA6KSBPciBldmVuIGlndF9wZXJtdXRlX2FycmF5PwoKQnV0IHdoYXQgaXQgaGFz IHRvIGRvIHdpdGggYmF0Y2ggZHVyYXRpb24/Cgo+ICsJCX0KPiAgIAkJZm9yIChpbnQgbiA9IDA7 IG4gPCBuZW5naW5lOyBuKyspIHsKPiAgIAkJCWV4ZWNidWYuZmxhZ3MgJj0gfkVOR0lORV9GTEFH UzsKPiAgIAkJCWV4ZWNidWYuZmxhZ3MgfD0gZW5naW5lc1tuXTsKPiBAQCAtMTM0LDcgKzE0Miw3 IEBAIHN0YXRpYyB2b2lkICpnZW1fYnVzeXNwaW4odm9pZCAqYXJnKQo+ICAgCQlpZiAoYnMtPmxl YWspIHsKPiAgIAkJCWdlbV9tYWR2aXNlKGZkLCBvYmpbMV0uaGFuZGxlLCBJOTE1X01BRFZfRE9O VE5FRUQpOwo+ICAgCQkJb2JqWzFdLmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIHN6KTsKPiAtCQkJ Z2VtX3dyaXRlKGZkLCBvYmpbMV0uaGFuZGxlLCAwLCAmYmJlLCBzaXplb2YoYmJlKSk7Cj4gKwkJ CWdlbV93cml0ZShmZCwgb2JqWzFdLmhhbmRsZSwgYnMtPnN6LCAmYmJlLCBzaXplb2YoYmJlKSk7 Cj4gICAJCX0KPiAgIAl9Cj4gICAKPiBAQCAtMjk0LDYgKzMwMiw1MCBAQCBzdGF0aWMgdm9pZCAq YmFja2dyb3VuZF9mcyh2b2lkICpwYXRoKQo+ICAgCXJldHVybiBOVUxMOwo+ICAgfQo+ICAgCj4g K3N0YXRpYyB1bnNpZ25lZCBsb25nIGNhbGlicmF0ZV9ub3AodW5zaWduZWQgaW50IHRhcmdldF91 cywKPiArCQkJCSAgIHVuc2lnbmVkIGludCB0b2xlcmFuY2VfcGN0KQo+ICt7Cj4gKwljb25zdCB1 aW50MzJfdCBiYmUgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwo+ICsJY29uc3QgdW5zaWduZWQgaW50 IGxvb3BzID0gMTAwOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqID0g e307Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGViID0KPiArCQl7IC5idWZm ZXJfY291bnQgPSAxLCAuYnVmZmVyc19wdHIgPSAodWludHB0cl90KSZvYmp9Owo+ICsJc3RydWN0 IHRpbWVzcGVjIHRfMCwgdF9lbmQ7Cj4gKwlsb25nIHN6LCBwcmV2Owo+ICsJaW50IGZkOwo+ICsK PiArCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7Cj4gKwo+ICsJY2xvY2tfZ2V0 dGltZShDTE9DS19NT05PVE9OSUMsICZ0XzApOwo+ICsKPiArCXN6ID0gMjU2ICogMTAyNDsKPiAr CWRvIHsKPiArCQlzdHJ1Y3QgdGltZXNwZWMgdF9zdGFydDsKPiArCj4gKwkJb2JqLmhhbmRsZSA9 IGdlbV9jcmVhdGUoZmQsIHN6ICsgc2l6ZW9mKGJiZSkpOwo+ICsJCWdlbV93cml0ZShmZCwgb2Jq LmhhbmRsZSwgc3osICZiYmUsIHNpemVvZihiYmUpKTsKPiArCQlnZW1fZXhlY2J1ZihmZCwgJmVi KTsKPiArCQlnZW1fc3luYyhmZCwgb2JqLmhhbmRsZSk7Cj4gKwo+ICsJCWNsb2NrX2dldHRpbWUo Q0xPQ0tfTU9OT1RPTklDLCAmdF9zdGFydCk7Cj4gKwkJZm9yIChpbnQgbG9vcCA9IDA7IGxvb3Ag PCBsb29wczsgbG9vcCsrKQo+ICsJCQlnZW1fZXhlY2J1ZihmZCwgJmViKTsKPiArCQlnZW1fc3lu YyhmZCwgb2JqLmhhbmRsZSk7Cj4gKwkJY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZ0 X2VuZCk7Cj4gKwo+ICsJCWdlbV9jbG9zZShmZCwgb2JqLmhhbmRsZSk7Cj4gKwo+ICsJCXByZXYg PSBzejsKPiArCQlzeiA9IGxvb3BzICogc3ogLyBlbGFwc2VkKCZ0X3N0YXJ0LCAmdF9lbmQpICog MWUzICogdGFyZ2V0X3VzOwo+ICsJCXN6ID0gQUxJR04oc3osIHNpemVvZih1aW50MzJfdCkpOwo+ ICsJfSB3aGlsZSAoZWxhcHNlZCgmdF8wLCAmdF9lbmQpIDwgNSB8fAo+ICsJCSBhYnMoc3ogLSBw cmV2KSA+IChzeiAqIHRvbGVyYW5jZV9wY3QgLyAxMDApKTsKPiArCj4gKwljbG9zZShmZCk7Cj4g Kwo+ICsJcmV0dXJuIHN6Owo+ICt9CgpJIHByZXN1bWUgdGhpcyBpcyBhIGNvcHkmcGFzdGUgc28g ZG9uJ3QgaGF2ZSB0byBsb29rIGludG8gaXQgaW4gZGV0YWlsLgoKPiArCj4gICBpbnQgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gICB7Cj4gICAJc3RydWN0IGdlbV9idXN5c3BpbiAqYnVz eTsKPiBAQCAtMzA5LDkgKzM2MSwxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp Cj4gICAJaW50IGVuYWJsZV9nZW1fc3lzYnVzeSA9IDE7Cj4gICAJYm9vbCBsZWFrID0gZmFsc2U7 Cj4gICAJYm9vbCBpbnRlcnJ1cHRzID0gZmFsc2U7Cj4gKwlsb25nIGJhdGNoID0gMDsKPiAgIAlp bnQgbiwgYzsKPiAgIAo+IC0Jd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJ0OmY6Ym1u aTEiKSkgIT0gLTEpIHsKPiArCXdoaWxlICgoYyA9IGdldG9wdChhcmdjLCBhcmd2LCAicjp0OmY6 Ym1uaTEiKSkgIT0gLTEpIHsKPiAgIAkJc3dpdGNoIChjKSB7Cj4gICAJCWNhc2UgJzEnOgo+ICAg CQkJbmNwdXMgPSAxOwo+IEBAIC0zMjgsNiArMzgxLDEwIEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKPiAgIAkJCWlmICh0aW1lIDwgMCkKPiAgIAkJCQl0aW1lID0gSU5UX01BWDsK PiAgIAkJCWJyZWFrOwo+ICsJCWNhc2UgJ3InOgo+ICsJCQkvKiBEdXJhdGlvbiBvZiBlYWNoIGJh dGNoIChtaWNyb3NlY29uZHMpICovCj4gKwkJCWJhdGNoID0gYXRvaShvcHRhcmcpOwo+ICsJCQli cmVhazsKPiAgIAkJY2FzZSAnZic6Cj4gICAJCQkvKiBTZWxlY3QgYW4gb3V0cHV0IGZpZWxkICov Cj4gICAJCQlmaWVsZCA9IGF0b2kob3B0YXJnKTsKPiBAQCAtMzUwLDExICs0MDcsMTcgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAgCWZvcmNlX2xvd19sYXRlbmN5KCk7Cj4g ICAJbWluID0gbWluX21lYXN1cmVtZW50X2Vycm9yKCk7Cj4gICAKPiArCWlmIChiYXRjaCA+IDAp Cj4gKwkJYmF0Y2ggPSBjYWxpYnJhdGVfbm9wKGJhdGNoLCAyKTsKPiArCWVsc2UKPiArCQliYXRj aCA9IC1iYXRjaDsKPiArCgpObyBpZGVhIG9mIHRoZSBwdXJwb3NlIG9mIHRoaXMuIFVzZXIgcGFz c2VzIGluIG5lZ2F0aXZlIG9uIHRoZSBjbWQgbGluZT8gCkJ1dCB0aGVuIGNhbGlicmF0aW9uIGlz IG1pc3NpbmcuCgo+ICAgCWJ1c3kgPSBjYWxsb2MobmNwdXMsIHNpemVvZigqYnVzeSkpOwo+ICAg CXB0aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKPiAgIAlpZiAoZW5hYmxlX2dlbV9zeXNidXN5KSB7 Cj4gICAJCWZvciAobiA9IDA7IG4gPCBuY3B1czsgbisrKSB7Cj4gICAJCQliaW5kX2NwdSgmYXR0 ciwgbik7Cj4gKwkJCWJ1c3lbbl0uc3ogPSBiYXRjaDsKPiAgIAkJCWJ1c3lbbl0ubGVhayA9IGxl YWs7Cj4gICAJCQlidXN5W25dLmludGVycnVwdHMgPSBpbnRlcnJ1cHRzOwo+ICAgCQkJcHRocmVh ZF9jcmVhdGUoJmJ1c3lbbl0udGhyZWFkLCAmYXR0ciwKPiAKClJlZ2FyZHMsCgpUdnJ0a28KX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==