From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [igt-dev] [PATCH i-g-t] igt/gem_eio: Measure reset delay from thread Date: Fri, 03 Aug 2018 15:10:41 +0100 Message-ID: <153330544148.14366.6865787329525237680@skylake-alporthouse-com> References: <20180727111324.7471-1-chris@chris-wilson.co.uk> <39ca04ab-888a-c9ae-dd22-44077cfa5a75@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <39ca04ab-888a-c9ae-dd22-44077cfa5a75@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: Tvrtko Ursulin , intel-gfx@lists.freedesktop.org Cc: igt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UXVvdGluZyBUdnJ0a28gVXJzdWxpbiAoMjAxOC0wOC0wMyAxNTowMzowNSkKPiAKPiBPbiAyNy8w Ny8yMDE4IDEyOjEzLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gPiBXZSBhc3NlcnQgdGhhdCB3ZSBj b21wbGV0ZSBhIHdlZGdlIHdpdGhpbiAyNTBtcy4gSG93ZXZlciwgd2hlbiB3ZSB1c2UgYQo+ID4g dGhyZWFkIHRvIGRlbGF5IHRoZSB3ZWRnaW5nIHVudGlsIGFmdGVyIHdlIHN0YXJ0IHdhaXRpbmcs IHRoYXQgdGhyZWFkCj4gPiBpdHNlbGYgaXMgZGVsYXllZCBsb25nZXIgdGhhbiBvdXIgd2FpdCB0 aW1lb3V0LiBUaGlzIHJlc3VsdHMgaW4gYSBmYWxzZQo+ID4gcG9zaXRpdmUgZXJyb3Igd2hlcmUg d2UgZmFpbCB0aGUgdGVzdCBiZWZvcmUgd2UgZXZlbiB0cmlnZ2VyIHRoZSByZXNldC4KPiA+IAo+ ID4gUmVvcmRlciB0aGUgdGVzdCBzbyB0aGF0IHdlIG9ubHkgZXZlciBtZWFzdXJlIHRoZSBkZWxh eSBmcm9tIHRyaWdnZXJpbmcKPiA+IHRoZSByZXNldCB1bnRpbCB3ZSB3YWtldXAsIGFuZCBhc3Nl cnQgdGhhdCBpcyBpbiBhIHRpbWVseSBmYXNoaW9uCj4gPiAobGVzcyB0aGFuIDI1MG1zKS4KPiA+ IAo+ID4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dp P2lkPTEwNTk1NAo+ID4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+Cj4gPiAtLS0KPiA+ICAgdGVzdHMvZ2VtX2Vpby5jIHwgNDUgKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgIDEgZmlsZSBjaGFuZ2Vk LCAyNCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBh L3Rlc3RzL2dlbV9laW8uYyBiL3Rlc3RzL2dlbV9laW8uYwo+ID4gaW5kZXggMzE2MmEzMTcwLi5i MjZiNGI4OTUgMTAwNjQ0Cj4gPiAtLS0gYS90ZXN0cy9nZW1fZWlvLmMKPiA+ICsrKyBiL3Rlc3Rz L2dlbV9laW8uYwo+ID4gQEAgLTE5MCw3ICsxOTAsOCBAQCBzdGF0aWMgaWd0X3NwaW5fdCAqIHNw aW5fc3luYyhpbnQgZmQsIHVpbnQzMl90IGN0eCwgdW5zaWduZWQgbG9uZyBmbGFncykKPiA+ICAg Cj4gPiAgIHN0cnVjdCBoYW5nX2N0eCB7Cj4gPiAgICAgICBpbnQgZGVidWdmczsKPiA+IC0gICAg IHN0cnVjdCB0aW1lc3BlYyB0czsKPiA+ICsgICAgIHN0cnVjdCB0aW1lc3BlYyBkZWxheTsKPiA+ ICsgICAgIHN0cnVjdCB0aW1lc3BlYyAqdHM7Cj4gPiAgICAgICB0aW1lcl90IHRpbWVyOwo+ID4g ICB9Owo+ID4gICAKPiA+IEBAIC0xOTgsOCArMTk5LDEwIEBAIHN0YXRpYyB2b2lkIGhhbmdfaGFu ZGxlcih1bmlvbiBzaWd2YWwgYXJnKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3QgaGFuZ19jdHgg KmN0eCA9IGFyZy5zaXZhbF9wdHI7Cj4gPiAgIAo+ID4gLSAgICAgaWd0X2RlYnVnKCJoYW5nIGRl bGF5ID0gJS4yZnVzXG4iLCBpZ3RfbnNlY19lbGFwc2VkKCZjdHgtPnRzKSAvIDEwMDAuMCk7Cj4g PiArICAgICBpZ3RfZGVidWcoImhhbmcgZGVsYXkgPSAlLjJmdXNcbiIsCj4gPiArICAgICAgICAg ICAgICAgaWd0X25zZWNfZWxhcHNlZCgmY3R4LT5kZWxheSkgLyAxMDAwLjApOwo+ID4gICAKPiA+ ICsgICAgIGlndF9uc2VjX2VsYXBzZWQoY3R4LT50cyk7Cj4gPiAgICAgICBpZ3RfYXNzZXJ0KGln dF9zeXNmc19zZXQoY3R4LT5kZWJ1Z2ZzLCAiaTkxNV93ZWRnZWQiLCAiLTEiKSk7Cj4gPiAgIAo+ ID4gICAgICAgaWd0X2Fzc2VydF9lcSh0aW1lcl9kZWxldGUoY3R4LT50aW1lciksIDApOwo+ID4g QEAgLTIwNyw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCBoYW5nX2hhbmRsZXIodW5pb24gc2lndmFs IGFyZykKPiA+ICAgICAgIGZyZWUoY3R4KTsKPiA+ICAgfQo+ID4gICAKPiA+IC1zdGF0aWMgdm9p ZCBoYW5nX2FmdGVyKGludCBmZCwgdW5zaWduZWQgaW50IHVzKQo+ID4gK3N0YXRpYyB2b2lkIGhh bmdfYWZ0ZXIoaW50IGZkLCB1bnNpZ25lZCBpbnQgdXMsIHN0cnVjdCB0aW1lc3BlYyAqdHMpCj4g PiAgIHsKPiA+ICAgICAgIHN0cnVjdCBzaWdldmVudCBzZXYgPSB7Cj4gPiAgICAgICAgICAgICAg IC5zaWdldl9ub3RpZnkgPSBTSUdFVl9USFJFQUQsCj4gPiBAQCAtMjI5LDMwICsyMzIsMzAgQEAg c3RhdGljIHZvaWQgaGFuZ19hZnRlcihpbnQgZmQsIHVuc2lnbmVkIGludCB1cykKPiA+ICAgCj4g PiAgICAgICBpZ3RfYXNzZXJ0X2VxKHRpbWVyX2NyZWF0ZShDTE9DS19NT05PVE9OSUMsICZzZXYs ICZjdHgtPnRpbWVyKSwgMCk7Cj4gPiAgIAo+ID4gLSAgICAgaWd0X25zZWNfZWxhcHNlZCgmY3R4 LT50cyk7Cj4gPiArICAgICBjdHgtPnRzID0gdHM7Cj4gPiArICAgICBpZ3RfbnNlY19lbGFwc2Vk KCZjdHgtPmRlbGF5KTsKPiA+ICAgCj4gPiAgICAgICBpZ3RfYXNzZXJ0X2VxKHRpbWVyX3NldHRp bWUoY3R4LT50aW1lciwgMCwgJml0cywgTlVMTCksIDApOwo+ID4gICB9Cj4gPiAgIAo+ID4gLXN0 YXRpYyBpbnQgX19jaGVja193YWl0KGludCBmZCwgdWludDMyX3QgYm8sIHVuc2lnbmVkIGludCB3 YWl0KQo+ID4gK3N0YXRpYyB2b2lkIF9fY2hlY2tfd2FpdChpbnQgZmQsIHVpbnQzMl90IGJvLCB1 bnNpZ25lZCBpbnQgd2FpdCkKPiA+ICAgewo+ID4gLSAgICAgdW5zaWduZWQgbG9uZyB3YWl0X3Rp bWVvdXQgPSAyNTBlNjsgLyogU29tZSBtYXJnaW4gZm9yIGFjdHVhbCByZXNldC4gKi8KPiA+IC0g ICAgIGludCByZXQ7Cj4gPiArICAgICBzdHJ1Y3QgdGltZXNwZWMgdHMgPSB7fTsKPiA+ICsgICAg IHVpbnQ2NF90IGVsYXBzZWQ7Cj4gPiAgIAo+ID4gICAgICAgaWYgKHdhaXQpIHsKPiA+IC0gICAg ICAgICAgICAgLyoKPiA+IC0gICAgICAgICAgICAgICogRG91YmxlIHRoZSB3YWl0IHBsdXMgc29t ZSBmaXhlZCBtYXJnaW4gdG8gZW5zdXJlIGdlbV93YWl0Cj4gPiAtICAgICAgICAgICAgICAqIGNh biBuZXZlciB0aW1lIG91dCBiZWZvcmUgdGhlIGFzeW5jIGhhbmcgcnVucy4KPiA+IC0gICAgICAg ICAgICAgICovCj4gPiAtICAgICAgICAgICAgIHdhaXRfdGltZW91dCArPSB3YWl0ICogMjAwMCAr IDI1MGU2Owo+ID4gLSAgICAgICAgICAgICBoYW5nX2FmdGVyKGZkLCB3YWl0KTsKPiA+ICsgICAg ICAgICAgICAgaGFuZ19hZnRlcihmZCwgd2FpdCwgJnRzKTsKPiA+ICAgICAgIH0gZWxzZSB7Cj4g PiArICAgICAgICAgICAgIGlndF9uc2VjX2VsYXBzZWQoJnRzKTsKPiA+ICAgICAgICAgICAgICAg bWFudWFsX2hhbmcoZmQpOwo+ID4gICAgICAgfQo+ID4gICAKPiA+IC0gICAgIHJldCA9IF9fZ2Vt X3dhaXQoZmQsIGJvLCB3YWl0X3RpbWVvdXQpOwo+ID4gKyAgICAgZ2VtX3N5bmMoZmQsIGJvKTsK PiAKPiBPbmUgZHJhd2JhY2sgSSBjYW4gc2VlIGlzIGlmIHJlc2V0IGZhaWxzIHRvIHdvcmsgdGhl biB3ZSBoYW5nIHVudGlsIElHVCAKPiBydW5uZXIgdGltZW91dC4gQWx0ZXJuYXRpdmUgd291bGQg YmUgYSBzbWFsbGVyIHBhdGNoIHRvIGJ1bXAgdGhlIHdhaXQgCj4gZGVsYXkgd2hpY2ggc2hvdWxk IHdvcmsgZ2l2ZW4gaG93IHJhcmUgYXJlIHRoZSBmYWlsdXJlcy4gSXQgd2FzIG9uZSBvZiAKPiB0 aGUgZ29hbHMgb2YgdGhlIGdlbV9laW8gcmV3cml0ZSBJIHRoaW5rLCBidXQgd2hhdGV2ZXIsIEkg c3VwcG9zZSAKPiBydW50aW1lIG9mIHRlc3Qgd2hlbiByZXNldCBpcyBicm9rZW4gaXMgbm90IHRo YXQgaW1wb3J0YW50LgoKSXQgaGFyZCB0byBwdXQgYW4gdXBwZXIgYm91bmQgb24ganVzdCBob3cg bXVjaCB0aGUgc2NoZWR1bGVyIGlzIGdvaW5nIHRvCnNjcmV3IHVzIG92ZXIuIE9uIHRoZSBvdGhl ciBoYW5kLCB0aGlzIGxldCdzIHVzIHNheSBwcmVjaXNlbHkgd2hpY2gKcG9ydGlvbiBtdXN0IGJl IGRvbmUgaW4gdGhlIHRpbWVseSBmYXNoaW9uIChyZXNldCAtPiB3YWtldXApLCBhbmQgZm9yCnRo YXQgYm91bmQgY2FuIGJlIGludmFyaWFudC4gV2hpY2ggSSB0aGluayBpcyBuaWNlLgoKVGhlIGRv d25zaWRlIGlzIGluZGVlZCB0aGF0IGluc3RlYWQgb2YgZ2V0dGluZyBhIGNsZWFyIGZhaWwgd2l0 aApleHBsYW5hdGlvbiBpZiB0aGUgcmVzZXQgZmFpbHMgY29tcGxldGVseSAobm90IGV2ZW4gYWJs ZSB0byB3ZWRnZSB0aGUKZGV2aWNlKSwgYW5kIHRoYXQgaGFuZ2NoZWNrIGl0c2VsZiBmYWlscyB0 byB3ZWRnZSBldmVudHVhbGx5LCB0aGVuIHdlIGRvCnJlbHkgb24gdGhlIGV4dGVybmFsIHJ1bm5l ciB0byBkZWNsYXJlIHRoZSB0ZXN0IGJyb2tlbi4gSSB0aGluayB0aGF0J3MKZmFpciwgaXQgcmVx dWlyZXMgYSBzZXJpZXMgb2YgZXZlbnRzIHRvIGZhaWw7IGFuZCBpbiBwYXJ0aWN1bGFyCmhhbmdj aGVjayBpcyBzdXBwb3NlZCB0byBiZSBndWFyZGluZyBhZ2FpbnN0IGV2ZW4gaXRzIG93biBmYWls dXJlLgotQ2hyaXMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: MIME-Version: 1.0 From: Chris Wilson In-Reply-To: <39ca04ab-888a-c9ae-dd22-44077cfa5a75@linux.intel.com> References: <20180727111324.7471-1-chris@chris-wilson.co.uk> <39ca04ab-888a-c9ae-dd22-44077cfa5a75@linux.intel.com> Message-ID: <153330544148.14366.6865787329525237680@skylake-alporthouse-com> Date: Fri, 03 Aug 2018 15:10:41 +0100 Subject: Re: [igt-dev] [PATCH i-g-t] igt/gem_eio: Measure reset delay from thread List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Tvrtko Ursulin , intel-gfx@lists.freedesktop.org Cc: igt-dev@lists.freedesktop.org List-ID: UXVvdGluZyBUdnJ0a28gVXJzdWxpbiAoMjAxOC0wOC0wMyAxNTowMzowNSkKPiAKPiBPbiAyNy8w Ny8yMDE4IDEyOjEzLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gPiBXZSBhc3NlcnQgdGhhdCB3ZSBj b21wbGV0ZSBhIHdlZGdlIHdpdGhpbiAyNTBtcy4gSG93ZXZlciwgd2hlbiB3ZSB1c2UgYQo+ID4g dGhyZWFkIHRvIGRlbGF5IHRoZSB3ZWRnaW5nIHVudGlsIGFmdGVyIHdlIHN0YXJ0IHdhaXRpbmcs IHRoYXQgdGhyZWFkCj4gPiBpdHNlbGYgaXMgZGVsYXllZCBsb25nZXIgdGhhbiBvdXIgd2FpdCB0 aW1lb3V0LiBUaGlzIHJlc3VsdHMgaW4gYSBmYWxzZQo+ID4gcG9zaXRpdmUgZXJyb3Igd2hlcmUg d2UgZmFpbCB0aGUgdGVzdCBiZWZvcmUgd2UgZXZlbiB0cmlnZ2VyIHRoZSByZXNldC4KPiA+IAo+ ID4gUmVvcmRlciB0aGUgdGVzdCBzbyB0aGF0IHdlIG9ubHkgZXZlciBtZWFzdXJlIHRoZSBkZWxh eSBmcm9tIHRyaWdnZXJpbmcKPiA+IHRoZSByZXNldCB1bnRpbCB3ZSB3YWtldXAsIGFuZCBhc3Nl cnQgdGhhdCBpcyBpbiBhIHRpbWVseSBmYXNoaW9uCj4gPiAobGVzcyB0aGFuIDI1MG1zKS4KPiA+ IAo+ID4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dp P2lkPTEwNTk1NAo+ID4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+Cj4gPiAtLS0KPiA+ICAgdGVzdHMvZ2VtX2Vpby5jIHwgNDUgKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgIDEgZmlsZSBjaGFuZ2Vk LCAyNCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBh L3Rlc3RzL2dlbV9laW8uYyBiL3Rlc3RzL2dlbV9laW8uYwo+ID4gaW5kZXggMzE2MmEzMTcwLi5i MjZiNGI4OTUgMTAwNjQ0Cj4gPiAtLS0gYS90ZXN0cy9nZW1fZWlvLmMKPiA+ICsrKyBiL3Rlc3Rz L2dlbV9laW8uYwo+ID4gQEAgLTE5MCw3ICsxOTAsOCBAQCBzdGF0aWMgaWd0X3NwaW5fdCAqIHNw aW5fc3luYyhpbnQgZmQsIHVpbnQzMl90IGN0eCwgdW5zaWduZWQgbG9uZyBmbGFncykKPiA+ICAg Cj4gPiAgIHN0cnVjdCBoYW5nX2N0eCB7Cj4gPiAgICAgICBpbnQgZGVidWdmczsKPiA+IC0gICAg IHN0cnVjdCB0aW1lc3BlYyB0czsKPiA+ICsgICAgIHN0cnVjdCB0aW1lc3BlYyBkZWxheTsKPiA+ ICsgICAgIHN0cnVjdCB0aW1lc3BlYyAqdHM7Cj4gPiAgICAgICB0aW1lcl90IHRpbWVyOwo+ID4g ICB9Owo+ID4gICAKPiA+IEBAIC0xOTgsOCArMTk5LDEwIEBAIHN0YXRpYyB2b2lkIGhhbmdfaGFu ZGxlcih1bmlvbiBzaWd2YWwgYXJnKQo+ID4gICB7Cj4gPiAgICAgICBzdHJ1Y3QgaGFuZ19jdHgg KmN0eCA9IGFyZy5zaXZhbF9wdHI7Cj4gPiAgIAo+ID4gLSAgICAgaWd0X2RlYnVnKCJoYW5nIGRl bGF5ID0gJS4yZnVzXG4iLCBpZ3RfbnNlY19lbGFwc2VkKCZjdHgtPnRzKSAvIDEwMDAuMCk7Cj4g PiArICAgICBpZ3RfZGVidWcoImhhbmcgZGVsYXkgPSAlLjJmdXNcbiIsCj4gPiArICAgICAgICAg ICAgICAgaWd0X25zZWNfZWxhcHNlZCgmY3R4LT5kZWxheSkgLyAxMDAwLjApOwo+ID4gICAKPiA+ ICsgICAgIGlndF9uc2VjX2VsYXBzZWQoY3R4LT50cyk7Cj4gPiAgICAgICBpZ3RfYXNzZXJ0KGln dF9zeXNmc19zZXQoY3R4LT5kZWJ1Z2ZzLCAiaTkxNV93ZWRnZWQiLCAiLTEiKSk7Cj4gPiAgIAo+ ID4gICAgICAgaWd0X2Fzc2VydF9lcSh0aW1lcl9kZWxldGUoY3R4LT50aW1lciksIDApOwo+ID4g QEAgLTIwNyw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCBoYW5nX2hhbmRsZXIodW5pb24gc2lndmFs IGFyZykKPiA+ICAgICAgIGZyZWUoY3R4KTsKPiA+ICAgfQo+ID4gICAKPiA+IC1zdGF0aWMgdm9p ZCBoYW5nX2FmdGVyKGludCBmZCwgdW5zaWduZWQgaW50IHVzKQo+ID4gK3N0YXRpYyB2b2lkIGhh bmdfYWZ0ZXIoaW50IGZkLCB1bnNpZ25lZCBpbnQgdXMsIHN0cnVjdCB0aW1lc3BlYyAqdHMpCj4g PiAgIHsKPiA+ICAgICAgIHN0cnVjdCBzaWdldmVudCBzZXYgPSB7Cj4gPiAgICAgICAgICAgICAg IC5zaWdldl9ub3RpZnkgPSBTSUdFVl9USFJFQUQsCj4gPiBAQCAtMjI5LDMwICsyMzIsMzAgQEAg c3RhdGljIHZvaWQgaGFuZ19hZnRlcihpbnQgZmQsIHVuc2lnbmVkIGludCB1cykKPiA+ICAgCj4g PiAgICAgICBpZ3RfYXNzZXJ0X2VxKHRpbWVyX2NyZWF0ZShDTE9DS19NT05PVE9OSUMsICZzZXYs ICZjdHgtPnRpbWVyKSwgMCk7Cj4gPiAgIAo+ID4gLSAgICAgaWd0X25zZWNfZWxhcHNlZCgmY3R4 LT50cyk7Cj4gPiArICAgICBjdHgtPnRzID0gdHM7Cj4gPiArICAgICBpZ3RfbnNlY19lbGFwc2Vk KCZjdHgtPmRlbGF5KTsKPiA+ICAgCj4gPiAgICAgICBpZ3RfYXNzZXJ0X2VxKHRpbWVyX3NldHRp bWUoY3R4LT50aW1lciwgMCwgJml0cywgTlVMTCksIDApOwo+ID4gICB9Cj4gPiAgIAo+ID4gLXN0 YXRpYyBpbnQgX19jaGVja193YWl0KGludCBmZCwgdWludDMyX3QgYm8sIHVuc2lnbmVkIGludCB3 YWl0KQo+ID4gK3N0YXRpYyB2b2lkIF9fY2hlY2tfd2FpdChpbnQgZmQsIHVpbnQzMl90IGJvLCB1 bnNpZ25lZCBpbnQgd2FpdCkKPiA+ICAgewo+ID4gLSAgICAgdW5zaWduZWQgbG9uZyB3YWl0X3Rp bWVvdXQgPSAyNTBlNjsgLyogU29tZSBtYXJnaW4gZm9yIGFjdHVhbCByZXNldC4gKi8KPiA+IC0g ICAgIGludCByZXQ7Cj4gPiArICAgICBzdHJ1Y3QgdGltZXNwZWMgdHMgPSB7fTsKPiA+ICsgICAg IHVpbnQ2NF90IGVsYXBzZWQ7Cj4gPiAgIAo+ID4gICAgICAgaWYgKHdhaXQpIHsKPiA+IC0gICAg ICAgICAgICAgLyoKPiA+IC0gICAgICAgICAgICAgICogRG91YmxlIHRoZSB3YWl0IHBsdXMgc29t ZSBmaXhlZCBtYXJnaW4gdG8gZW5zdXJlIGdlbV93YWl0Cj4gPiAtICAgICAgICAgICAgICAqIGNh biBuZXZlciB0aW1lIG91dCBiZWZvcmUgdGhlIGFzeW5jIGhhbmcgcnVucy4KPiA+IC0gICAgICAg ICAgICAgICovCj4gPiAtICAgICAgICAgICAgIHdhaXRfdGltZW91dCArPSB3YWl0ICogMjAwMCAr IDI1MGU2Owo+ID4gLSAgICAgICAgICAgICBoYW5nX2FmdGVyKGZkLCB3YWl0KTsKPiA+ICsgICAg ICAgICAgICAgaGFuZ19hZnRlcihmZCwgd2FpdCwgJnRzKTsKPiA+ICAgICAgIH0gZWxzZSB7Cj4g PiArICAgICAgICAgICAgIGlndF9uc2VjX2VsYXBzZWQoJnRzKTsKPiA+ICAgICAgICAgICAgICAg bWFudWFsX2hhbmcoZmQpOwo+ID4gICAgICAgfQo+ID4gICAKPiA+IC0gICAgIHJldCA9IF9fZ2Vt X3dhaXQoZmQsIGJvLCB3YWl0X3RpbWVvdXQpOwo+ID4gKyAgICAgZ2VtX3N5bmMoZmQsIGJvKTsK PiAKPiBPbmUgZHJhd2JhY2sgSSBjYW4gc2VlIGlzIGlmIHJlc2V0IGZhaWxzIHRvIHdvcmsgdGhl biB3ZSBoYW5nIHVudGlsIElHVCAKPiBydW5uZXIgdGltZW91dC4gQWx0ZXJuYXRpdmUgd291bGQg YmUgYSBzbWFsbGVyIHBhdGNoIHRvIGJ1bXAgdGhlIHdhaXQgCj4gZGVsYXkgd2hpY2ggc2hvdWxk IHdvcmsgZ2l2ZW4gaG93IHJhcmUgYXJlIHRoZSBmYWlsdXJlcy4gSXQgd2FzIG9uZSBvZiAKPiB0 aGUgZ29hbHMgb2YgdGhlIGdlbV9laW8gcmV3cml0ZSBJIHRoaW5rLCBidXQgd2hhdGV2ZXIsIEkg c3VwcG9zZSAKPiBydW50aW1lIG9mIHRlc3Qgd2hlbiByZXNldCBpcyBicm9rZW4gaXMgbm90IHRo YXQgaW1wb3J0YW50LgoKSXQgaGFyZCB0byBwdXQgYW4gdXBwZXIgYm91bmQgb24ganVzdCBob3cg bXVjaCB0aGUgc2NoZWR1bGVyIGlzIGdvaW5nIHRvCnNjcmV3IHVzIG92ZXIuIE9uIHRoZSBvdGhl ciBoYW5kLCB0aGlzIGxldCdzIHVzIHNheSBwcmVjaXNlbHkgd2hpY2gKcG9ydGlvbiBtdXN0IGJl IGRvbmUgaW4gdGhlIHRpbWVseSBmYXNoaW9uIChyZXNldCAtPiB3YWtldXApLCBhbmQgZm9yCnRo YXQgYm91bmQgY2FuIGJlIGludmFyaWFudC4gV2hpY2ggSSB0aGluayBpcyBuaWNlLgoKVGhlIGRv d25zaWRlIGlzIGluZGVlZCB0aGF0IGluc3RlYWQgb2YgZ2V0dGluZyBhIGNsZWFyIGZhaWwgd2l0 aApleHBsYW5hdGlvbiBpZiB0aGUgcmVzZXQgZmFpbHMgY29tcGxldGVseSAobm90IGV2ZW4gYWJs ZSB0byB3ZWRnZSB0aGUKZGV2aWNlKSwgYW5kIHRoYXQgaGFuZ2NoZWNrIGl0c2VsZiBmYWlscyB0 byB3ZWRnZSBldmVudHVhbGx5LCB0aGVuIHdlIGRvCnJlbHkgb24gdGhlIGV4dGVybmFsIHJ1bm5l ciB0byBkZWNsYXJlIHRoZSB0ZXN0IGJyb2tlbi4gSSB0aGluayB0aGF0J3MKZmFpciwgaXQgcmVx dWlyZXMgYSBzZXJpZXMgb2YgZXZlbnRzIHRvIGZhaWw7IGFuZCBpbiBwYXJ0aWN1bGFyCmhhbmdj aGVjayBpcyBzdXBwb3NlZCB0byBiZSBndWFyZGluZyBhZ2FpbnN0IGV2ZW4gaXRzIG93biBmYWls dXJlLgotQ2hyaXMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==