From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: References: <20180326105758.5211-1-tvrtko.ursulin@linux.intel.com> <20180403123825.7341-1-tvrtko.ursulin@linux.intel.com> <152276104904.32747.9344901902339011480@mail.alporthouse.com> From: Tvrtko Ursulin Message-ID: <0e9ca619-ac6b-ada1-cb2e-1cbbd8ae3170@linux.intel.com> Date: Tue, 3 Apr 2018 17:09:09 +0100 MIME-Version: 1.0 In-Reply-To: <152276104904.32747.9344901902339011480@mail.alporthouse.com> Content-Language: en-GB Subject: Re: [Intel-gfx] [PATCH i-g-t v2] tests/perf_pmu: Avoid RT thread for accuracy test 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 , Tvrtko Ursulin , igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-ID: Ck9uIDAzLzA0LzIwMTggMTQ6MTAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRr byBVcnN1bGluICgyMDE4LTA0LTAzIDEzOjM4OjI1KQo+PiBGcm9tOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pgo+PiBSZWFsdGltZSBzY2hlZHVsaW5nIGludGVy ZmVyZXMgd2l0aCBleGVjbGlzdHMgc3VibWlzc2lvbiAodGFza2xldCkgc28gdHJ5Cj4+IHRvIHNp bXBsaWZ5IHRoZSBQV00gbG9vcCBpbiBhIGZldyB3YXlzOgo+Pgo+PiAgICogRHJvcCBSVC4KPj4g ICAqIExvbmdlciBiYXRjaGVzIGZvciBzbWFsbGVyIHN5c3RlbWF0aWMgZXJyb3IuCj4+ICAgKiBN b3JlIHRydXRoZnVsIHRlc3QgZHVyYXRpb24gY2FsY3VsYXRpb24uCj4+ICAgKiBMZXNzIGNsb2Nr IHF1ZXJpZXMuCj4+ICAgKiBObyBzZWxmLWFkanVzdCAtIGluc3RlYWQganVzdCByZXBvcnQgdGhl IGFjaGlldmVkIGN5Y2xlIGFuZCBsZXQgdGhlCj4+ICAgICBwYXJlbnQgY2hlY2sgYWdhaW5zdCBp dC4KPj4gICAqIFJlcG9ydCBhYnNvbHV0ZSBjeWNsZSBlcnJvci4KPj4KPj4gdjI6Cj4+ICAgKiBC cmluZyBiYWNrIHNlbGYtYWRqdXN0LiAoQ2hyaXMgV2lsc29uKQo+PiAgICAgKEJ1dCBzbGlnaHRs eSBmaXhlZCB2ZXJzaW9uIHdpdGggbm8gb3ZlcmZsb3cuKQo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBU dnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+PiAtLS0KPj4gICB0ZXN0 cy9wZXJmX3BtdS5jIHwgOTcgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KPj4gICAxIGZpbGUgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwg NTQgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS90ZXN0cy9wZXJmX3BtdS5jIGIvdGVz dHMvcGVyZl9wbXUuYwo+PiBpbmRleCBmMjdiN2VjN2QyYzIuLjBjZmFjZDRhOGZiZSAxMDA2NDQK Pj4gLS0tIGEvdGVzdHMvcGVyZl9wbXUuYwo+PiArKysgYi90ZXN0cy9wZXJmX3BtdS5jCj4+IEBA IC0xNTA0LDEyICsxNTA0LDYgQEAgdGVzdF9lbmFibGVfcmFjZShpbnQgZ2VtX2ZkLCBjb25zdCBz dHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCj4+ICAgICAgICAgIGdlbV9xdWllc2Nl bnRfZ3B1KGdlbV9mZCk7Cj4+ICAgfQo+PiAgIAo+PiAtc3RhdGljIGRvdWJsZSBfX2Vycm9yKGRv dWJsZSB2YWwsIGRvdWJsZSByZWYpCj4+IC17Cj4+IC0gICAgICAgaWd0X2Fzc2VydChyZWYgPiAx ZS01IC8qIHNtYWxsdmFsICovKTsKPj4gLSAgICAgICByZXR1cm4gKDEwMC4wICogdmFsIC8gcmVm KSAtIDEwMC4wOwo+PiAtfQo+PiAtCj4+ICAgc3RhdGljIHZvaWQgX19yZWFybV9zcGluX2JhdGNo KGlndF9zcGluX3QgKnNwaW4pCj4+ICAgewo+PiAgICAgICAgICBjb25zdCB1aW50MzJfdCBtaV9h cmJfY2hrID0gMHg1IDw8IDIzOwo+PiBAQCAtMTUzMiwxMyArMTUyNiwxMiBAQCBzdGF0aWMgdm9p ZAo+PiAgIGFjY3VyYWN5KGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25f ZW5naW5lMiAqZSwKPj4gICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdGFyZ2V0X2J1c3lfcGN0KQo+ PiAgIHsKPj4gLSAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgbWluX3Rlc3RfbG9vcHMgPSA3Owo+ PiAtICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgbWluX3Rlc3RfdXMgPSAxZTY7Cj4+IC0gICAg ICAgdW5zaWduZWQgbG9uZyBidXN5X3VzID0gMjUwMDsKPj4gKyAgICAgICB1bnNpZ25lZCBsb25n IGJ1c3lfdXMgPSAxMDAwMCAtIDEwMCAqICgxICsgYWJzKDUwIC0gdGFyZ2V0X2J1c3lfcGN0KSk7 Cj4+ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgaWRsZV91cyA9IDEwMCAqIChidXN5X3VzIC0gdGFy Z2V0X2J1c3lfcGN0ICoKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVzeV91 cyAvIDEwMCkgLyB0YXJnZXRfYnVzeV9wY3Q7Cj4+IC0gICAgICAgdW5zaWduZWQgbG9uZyBwd21f Y2FsaWJyYXRpb25fdXM7Cj4+IC0gICAgICAgdW5zaWduZWQgbG9uZyB0ZXN0X3VzOwo+PiArICAg ICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgbWluX3Rlc3RfdXMgPSAxZTY7Cj4+ICsgICAgICAgY29u c3QgdW5zaWduZWQgbG9uZyBwd21fY2FsaWJyYXRpb25fdXMgPSBtaW5fdGVzdF91czsKPj4gKyAg ICAgICBjb25zdCB1bnNpZ25lZCBsb25nIHRlc3RfdXMgPSBtaW5fdGVzdF91czsKPj4gICAgICAg ICAgZG91YmxlIGJ1c3lfciwgZXhwZWN0ZWQ7Cj4+ICAgICAgICAgIHVpbnQ2NF90IHZhbFsyXTsK Pj4gICAgICAgICAgdWludDY0X3QgdHNbMl07Cj4+IEBAIC0xNTUzLDEzICsxNTQ2LDYgQEAgYWNj dXJhY3koaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICpl LAo+PiAgICAgICAgICAgICAgICAgIGlkbGVfdXMgKj0gMjsKPj4gICAgICAgICAgfQo+PiAgIAo+ PiAtICAgICAgIHB3bV9jYWxpYnJhdGlvbl91cyA9IG1pbl90ZXN0X2xvb3BzICogKGJ1c3lfdXMg KyBpZGxlX3VzKTsKPj4gLSAgICAgICB3aGlsZSAocHdtX2NhbGlicmF0aW9uX3VzIDwgbWluX3Rl c3RfdXMpCj4+IC0gICAgICAgICAgICAgICBwd21fY2FsaWJyYXRpb25fdXMgKz0gYnVzeV91cyAr IGlkbGVfdXM7Cj4+IC0gICAgICAgdGVzdF91cyA9IG1pbl90ZXN0X2xvb3BzICogKGlkbGVfdXMg KyBidXN5X3VzKTsKPj4gLSAgICAgICB3aGlsZSAodGVzdF91cyA8IG1pbl90ZXN0X3VzKQo+PiAt ICAgICAgICAgICAgICAgdGVzdF91cyArPSBidXN5X3VzICsgaWRsZV91czsKPj4gLQo+PiAgICAg ICAgICBpZ3RfaW5mbygiY2FsaWJyYXRpb249JWx1bXMsIHRlc3Q9JWx1bXM7IHJhdGlvPSUuMmYl JSAoJWx1dXMvJWx1dXMpXG4iLAo+PiAgICAgICAgICAgICAgICAgICBwd21fY2FsaWJyYXRpb25f dXMgLyAxMDAwLCB0ZXN0X3VzIC8gMTAwMCwKPj4gICAgICAgICAgICAgICAgICAgKGRvdWJsZSli dXN5X3VzIC8gKGJ1c3lfdXMgKyBpZGxlX3VzKSAqIDEwMC4wLAo+PiBAQCAtMTU3MiwyMCArMTU1 OCwxMSBAQCBhY2N1cmFjeShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9u X2VuZ2luZTIgKmUsCj4+ICAgCj4+ICAgICAgICAgIC8qIEVtaXQgUFdNIHBhdHRlcm4gb24gdGhl IGVuZ2luZSBmcm9tIGEgY2hpbGQuICovCj4+ICAgICAgICAgIGlndF9mb3JrKGNoaWxkLCAxKSB7 Cj4+IC0gICAgICAgICAgICAgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gcnQgPSB7IC5zY2hlZF9wcmlv cml0eSA9IDk5IH07Cj4+ICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyB0aW1l b3V0W10gPSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBwd21fY2FsaWJyYXRpb25fdXMg KiAxMDAwLCB0ZXN0X3VzICogMTAwMAo+PiAgICAgICAgICAgICAgICAgIH07Cj4+IC0gICAgICAg ICAgICAgICB1aW50NjRfdCB0b3RhbF9idXN5X25zID0gMCwgdG90YWxfaWRsZV9ucyA9IDA7Cj4+ ICsgICAgICAgICAgICAgICB1aW50NjRfdCB0b3RhbF9idXN5X25zID0gMCwgdG90YWxfbnMgPSAw Owo+PiAgICAgICAgICAgICAgICAgIGlndF9zcGluX3QgKnNwaW47Cj4+IC0gICAgICAgICAgICAg ICBpbnQgcmV0Owo+PiAtCj4+IC0gICAgICAgICAgICAgICAvKiBXZSBuZWVkIHRoZSBiZXN0IHNs ZWVwIGFjY3VyYWN5IHdlIGNhbiBnZXQuICovCj4+IC0gICAgICAgICAgICAgICByZXQgPSBzY2hl ZF9zZXRzY2hlZHVsZXIoMCwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTQ0hFRF9GSUZPIHwgU0NIRURfUkVTRVRfT05fRk9SSywKPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmcnQpOwo+PiAtICAgICAgICAgICAgICAgaWYgKHJl dCkKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgaWd0X3dhcm4oIkZhaWxlZCB0byBzZXQgc2No ZWR1bGluZyBwb2xpY3khXG4iKTsKPj4gICAKPj4gICAgICAgICAgICAgICAgICAvKiBBbGxvY2F0 ZSBvdXIgc3BpbiBiYXRjaCBhbmQgaWRsZSBpdC4gKi8KPj4gICAgICAgICAgICAgICAgICBzcGlu ID0gaWd0X3NwaW5fYmF0Y2hfbmV3KGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSksIDApOwo+ PiBAQCAtMTU5NCwzOSArMTU3MSw1MSBAQCBhY2N1cmFjeShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1 Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCj4+ICAgCj4+ICAgICAgICAgICAgICAgICAg LyogMXN0IHBhc3MgaXMgY2FsaWJyYXRpb24sIHNlY29uZCBwYXNzIGlzIHRoZSB0ZXN0LiAqLwo+ PiAgICAgICAgICAgICAgICAgIGZvciAoaW50IHBhc3MgPSAwOyBwYXNzIDwgQVJSQVlfU0laRSh0 aW1lb3V0KTsgcGFzcysrKSB7Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGJ1 c3lfbnMgPSAtdG90YWxfYnVzeV9uczsKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgdWludDY0 X3QgaWRsZV9ucyA9IC10b3RhbF9pZGxlX25zOwo+PiAtICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdGltZXNwZWMgdGVzdF9zdGFydCA9IHsgfTsKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgaW50IHRhcmdldF9pZGxlX3VzID0gaWRsZV91czsKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgdWludDY0X3QgYnVzeV9ucyA9IDAsIGlkbGVfbnMgPSAwOwo+PiArICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgc3RhcnQgPSB7IH07Cj4+ICsgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcGFzc19ucyA9IDA7Cj4+ICsKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgaWd0X25zZWNfZWxhcHNlZCgmc3RhcnQpOwo+PiAgIAo+PiAtICAg ICAgICAgICAgICAgICAgICAgICBpZ3RfbnNlY19lbGFwc2VkKCZ0ZXN0X3N0YXJ0KTsKPj4gICAg ICAgICAgICAgICAgICAgICAgICAgIGRvIHsKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgdGFyZ2V0X2lkbGVfdXMsIHRfYnVzeTsKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvb3BfbnMsIGxvb3BfYnVzeTsKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgX3RzID0geyB9 Owo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBlcnI7Cj4+ICsKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQV00gaWRsZSBzbGVlcC4gKi8KPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdHMudHZfbnNlYyA9IHRhcmdldF9pZGxl X3VzICogMTAwMDsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW5vc2xlZXAo Jl90cywgTlVMTCk7Cj4+ICAgCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IFJlc3RhcnQgdGhlIHNwaW5iYXRjaC4gKi8KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgX19yZWFybV9zcGluX2JhdGNoKHNwaW4pOwo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBfX3N1Ym1pdF9zcGluX2JhdGNoKGdlbV9mZCwgc3BpbiwgZSwgMCk7Cj4+ICAg Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKiBOb3RlIHRoYXQgdGhlIHN1Ym1pc3Npb24gbWF5IGJlIGRlbGF5 ZWQgdG8gYQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRhc2tsZXQgKGtz b2Z0aXJxZCkgd2hpY2ggY2Fubm90IHJ1biB1bnRpbCB3ZQo+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqIHNsZWVwIGFzIHdlIGhvZyB0aGUgY3B1ICh3ZSBhcmUgUlQpLgo+PiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwo+PiAtCj4+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdF9idXN5ID0gbWVhc3VyZWRfdXNsZWVwKGJ1c3lfdXMpOwo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBXTSBidXN5IHNsZWVwLiAqLwo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BfYnVzeSA9IGlndF9uc2VjX2VsYXBz ZWQoJnN0YXJ0KTsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdHMudHZfbnNl YyA9IGJ1c3lfdXMgKiAxMDAwOwo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h bm9zbGVlcCgmX3RzLCBOVUxMKTsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWd0X3NwaW5fYmF0Y2hfZW5kKHNwaW4pOwo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdlbV9zeW5jKGdlbV9mZCwgc3Bpbi0+aGFuZGxlKTsKPj4gLQo+PiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRvdGFsX2J1c3lfbnMgKz0gdF9idXN5Owo+PiAtCj4+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2lkbGVfdXMgPQo+PiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEwMCAqIHRvdGFsX2J1c3lfbnMgLyB0YXJn ZXRfYnVzeV9wY3QgLSAodG90YWxfYnVzeV9ucyArIHRvdGFsX2lkbGVfbnMpKSAvIDEwMDA7Cj4+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxfaWRsZV9ucyArPSBtZWFzdXJl ZF91c2xlZXAodGFyZ2V0X2lkbGVfdXMpOwo+PiAtICAgICAgICAgICAgICAgICAgICAgICB9IHdo aWxlIChpZ3RfbnNlY19lbGFwc2VkKCZ0ZXN0X3N0YXJ0KSA8IHRpbWVvdXRbcGFzc10pOwo+PiAt Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGJ1c3lfbnMgKz0gdG90YWxfYnVzeV9uczsKPj4g LSAgICAgICAgICAgICAgICAgICAgICAgaWRsZV9ucyArPSB0b3RhbF9pZGxlX25zOwo+PiAgIAo+ PiAtICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IChkb3VibGUpYnVzeV9ucyAvIChi dXN5X25zICsgaWRsZV9ucyk7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog VGltZSBhY2NvdW50aW5nLiAqLwo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv b3BfbnMgPSBpZ3RfbnNlY19lbGFwc2VkKCZzdGFydCk7Cj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbG9vcF9idXN5ID0gbG9vcF9ucyAtIGxvb3BfYnVzeTsKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsb29wX25zIC09IHBhc3NfbnM7Cj4+ICsKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBidXN5X25zICs9IGxvb3BfYnVzeTsKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF9idXN5X25zICs9IGxvb3BfYnVzeTsKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGxlX25zICs9IGxvb3BfbnMgLSBsb29w X2J1c3k7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc19ucyArPSBsb29w X25zOwo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsX25zICs9IGxvb3Bf bnM7Cj4+ICsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZS1jYWxpYnJh dGUuICovCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyID0gKGRvdWJsZSl0 b3RhbF9idXN5X25zIC8gdG90YWxfbnMgLQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChkb3VibGUpdGFyZ2V0X2J1c3lfcGN0IC8gMTAwLjA7Cj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2lkbGVfdXMgPSAoZG91YmxlKXRhcmdldF9pZGxl X3VzICoKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgxLjAgKyBlcnIpOwo+IAo+IFByZXZpb3VzbHkgdGhlIHF1ZXN0aW9uIHdlIGFuc3dlcmVkIHdh cyBob3cgbG9uZyBzaG91bGQgSSBzbGVlcCBmb3IgdGhlCj4gYnVzeTppZGxlIHJhdGlvIHRvIGhp dCB0aGUgdGFyZ2V0Lgo+IAo+IGV4cGVjdGVkX3RvdGFsX25zID0gMTAwLjAgKiB0b3RhbF9idXN5 X25zIC8gdGFyZ2V0X2J1c3lfcGN0Owo+IHRhcmdldF9pZGxlX3VzID0gKGV4cGVjdGVkX3RvdGFs X25zIC0gY3VycmVudF90b3RhbF9ucykgLyAxMDAwOwoKWWVzLCBhbmQgdGhlIG92ZXJmbG93IChv ciB1bmRlcmZsb3csIGRlcGVuZGluZyBob3cgeW91IGxvb2sgYXQgaXQpIHdhcyAKaGVyZS4gVXN1 YWxseSBpbiB0aGUgZmlyc3QgbG9vcCBpdGVyYXRpb24gZm9yIG1lLCB3aGVuIGV4cGVjdGVkX3Rv dGFsX25zIAppcyBzbWFsbGVyIHRoYW4gY3VycmVudF90b3RhbF9ucy4KCkJ1dCBtb3N0bHkgSSB0 aGluayB0aGlzIHNob3VsZCBoYXZlIGEgbWlub3IgZWZmZWN0LCB1bmxlc3Mgc29tZSBzeXN0ZW1z IApjYW4gaGl0IGl0IG1vcmUgb2Z0ZW4uCgo+IAo+IAl1bnNpZ25lZCBsb25nIGxvb3BfbnMsIGxv b3BfYnVzeTsKPiAJc3RydWN0IHRpbWVzcGVjIF90cyA9IHsgfTsKPiAJZG91YmxlIGVycjsKPiAK PiAJLyogUFdNIGlkbGUgc2xlZXAuICovCj4gCV90cy50dl9uc2VjID0gdGFyZ2V0X2lkbGVfdXMg KiAxMDAwOwo+IAluYW5vc2xlZXAoJl90cywgTlVMTCk7Cj4gCj4gQXNzdW1pbmcgbm8gPjFzIHNs ZWVwcy4KPiAoT2ssIHNvIHRoZSBzbGVlcCBhZnRlciByZWNhbGMgaXMgc3RpbGwgaGVyZS4pCj4g Cj4gCS8qIFJlc3RhcnQgdGhlIHNwaW5iYXRjaC4gKi8KPiAJX19yZWFybV9zcGluX2JhdGNoKHNw aW4pOwo+IAlfX3N1Ym1pdF9zcGluX2JhdGNoKGdlbV9mZCwgc3BpbiwgZSwgMCk7Cj4gICAgCj4g CS8qIFBXTSBidXN5IHNsZWVwLiAqLwo+IAlsb29wX2J1c3kgPSBpZ3RfbnNlY19lbGFwc2VkKCZz dGFydCk7Cj4gCV90cy50dl9uc2VjID0gYnVzeV91cyAqIDEwMDA7Cj4gCW5hbm9zbGVlcCgmX3Rz LCBOVUxMKTsKPiAJaWd0X3NwaW5fYmF0Y2hfZW5kKHNwaW4pOwo+IAo+IAkvKiBUaW1lIGFjY291 bnRpbmcuICovCj4gCWxvb3BfbnMgPSBpZ3RfbnNlY19lbGFwc2VkKCZzdGFydCk7Cj4gCWxvb3Bf YnVzeSA9IGxvb3BfbnMgLSBsb29wX2J1c3k7Cj4gCWxvb3BfbnMgLT0gcGFzc19uczsKPiAKPiBT byBwYXNzX25zIGlzIHRpbWUgZnJvbSBzdGFydCBvZiBjYWxpYnJhdGlvbiwgbG9vcF9ucyBpcyB0 aW1lIGZvciB0aGlzCj4gbG9vcC4KPiAKPiAJYnVzeV9ucyArPSBsb29wX2J1c3k7Cj4gCXRvdGFs X2J1c3lfbnMgKz0gbG9vcF9idXN5Owo+IAo+IGJ1c3lfbnMgd2lsbCBiZSBjYWxpYnJhdGlvbiBw YXNzLCB0b3RhbCBhbGwgcGFzc2VzPwoKYnVzeV9ucy9pZGxlX25zIGFyZSB0aGUgY3VycmVudCBw YXNzLiBUaGVyZSBpcyBhbHNvIHRvdGFsX2J1c3kvaWRsZV9ucyAKYXQgb25lIGxldmVsIHVwLCB3 aGljaCBhcmUgdGhlIHRvdGFscy4KCj4gCj4gCWlkbGVfbnMgKz0gbG9vcF9ucyAtIGxvb3BfYnVz eTsKPiAKPiBBbmQgaWRsZSBpcyB0aGUgcmVzaWR1YWwgYmV0d2VlbiB0aGUgdGltZSB1cCB0byB0 aGlzIHBvaW50LCBhbmQgd2hhdCBoYXMKPiBiZWVuIGJ1c3kuCgpZZXMsIEkgd2FudGVkIHRvIHNp bXBsaWZ5IGFuZCBoYXZlIHJlZHVjZWQgaXQgdG8gdHdvIGNsb2NrIHF1ZXJpZXMgcGVyIApsb29w IG9ubHkuIEl0IG1heWJlIGlzbid0IHRoZSBlYXNpZXN0IHRvIGZvbGxvdy4gOkkKCj4gCXBhc3Nf bnMgKz0gbG9vcF9uczsKPiAJdG90YWxfbnMgKz0gbG9vcF9uczsKPiAKPiAJLyogUmUtY2FsaWJy YXRlLiAqLwo+IAllcnIgPSAoZG91YmxlKXRvdGFsX2J1c3lfbnMgLyB0b3RhbF9ucyAtCj4gCSAg ICAgIChkb3VibGUpdGFyZ2V0X2J1c3lfcGN0IC8gMTAwLjA7Cj4gCj4gSG1tLCBJIHRob3VnaHQg eW91IGRpZG4ndCBsaWtlIHRoZSBydW4gb24gY2FsY3VsYXRpb25zLCBhbmQgd2FudGVkIHRvCj4g cmVzZXQgYmV0d2VlbiBwYXNzZXM/IChIYXZlIEkgZ290IHRvdGFsX2J1c3lfbnMgYW5kIGJ1c3lf bnMgY29uZnVzZWQ/KQoKTm8sIEkgZGlkIG5vdCBsaWtlIHRoZSBhZ2dyZWdhdGUgaW4gaWd0X2lu Zm8gb25seS4gRm9yIGNhbGlicmF0aW9uIHRvdGFsIAp0aW1lcyBhcmUgYmV0dGVyIEkgdGhpbmsu CgpXaXRoIGFuIGV4Y2VwdGlvbiB0aGF0IHRoZSAiZXhwZWN0ZWQiIHJhdGlvLCBhcyByZXBvcnRl ZCB0byB0aGUgcGFyZW50LCAKaXMgYmFzZWQgb24gdGhlIDJuZCBwYXNzLiBUaGF0IGlzIHNvIHRo ZSBlcnJvciBvZiB0aGUgZmlyc3QgcGFzcywgdGhlIAppbml0aWFsIGFuZCBob3BlZnVsbHkgYWxs IGNhbGlicmF0aW9uIHRoYXQgaXMgbmVlZGVkLCBpcyBub3QgaW5jbHVkZWQgaW4gCnRoZSB2YWx1 ZSB3ZSBhc3NlcnQgYWdhaW5zdCwgc2luY2UgaXQgaXMgbm90IHRoZSBvbmUgcGFyZW50IHdpbGwg c2FtcGxlIApQTVUgYnVzeW5lc3MgZWl0aGVyLgoKPiAJdGFyZ2V0X2lkbGVfdXMgPSAoZG91Ymxl KXRhcmdldF9pZGxlX3VzICogKDEuMCArIGVycik7Cj4gCj4gT2ssIEknbSB0aXJlZCwgYnV0Li4u IFNvLCBpZiBidXN5IGlzIDEwJSBsYXJnZXIgdGhhbiBleHBlY3RlZCwgc2xlZXAgMTAlCj4gbG9u Z2VyIHRvIHRyeSBhbmQgY29tcGVuc2F0ZSwgd291bGQgYmUgdGhlIGdpc3QuCgpDb3JyZWN0LgoK PiBBbmQgdGhpcyBpcyBiZWNhdXNlIHlvdSBhbHdheXMgc2xlZXAgYW5kIHNwaW4gdG9nZXRoZXIg YW5kIHNvIGNhbm5vdAo+IGp1c3Qgc2xlZXAgdG8gY29tcGVuc2F0ZSBmb3IgdGhlIGVhcmxpZXIg aW5hY2N1cmFjeS4gV2hpY2ggbWVhbnMgd2UKPiBuZXZlciB0cnVseSB0cnkgdG8gY29ycmVjdCB0 aGUgZXJyb3IgaW4gdGhlIHNhbWUgcGFzcywgYnV0IGFwcGx5IGEKPiBjb3JyZWN0aW9uIGZhY3Rv ciBmb3IgdGhlIG5leHQuCgpDb3JyZWN0Lgo+IFRvIG1lIGl0IHNlZW1zIGxpa2UgdGhlIGNsb3Nl ZCBzeXN0ZW0gd2l0aCBlYWNoIGxvb3AgYmVpbmcgInNwaW4gdGhlbgo+IGFkanVzdGVkIHNsZWVw IiB3aWxsIGF1dG9jb3JyZWN0IGFuZCBtb3JlIGxpa2VseSB0byBmaW5pc2ggY29ycmVjdCAoYXMK PiB3ZSBhcmUgbGVzcyByZWxpYW50IG9uIHRoZSBuZXh0IGxvb3AgZm9yIHRoZSBhY2N1cmFjeSku IEl0J3MgcHJldHR5IG11Y2gKPiBpbW1hdGVyaWFsLCBhcyB3ZSBleHBlY3QgdGhlIHBtdSB0byBt YXRjaCB0aGUgbWVhc3VyZW1lbnRzIChhbmQgbm90IG91cgo+IGV4cGVjdGF0aW9ucyksIGJ1dCBJ IGZpbmQgdGhlIG9uZSBwYXNzIGRvZXMgYWxsIG11Y2ggc2ltcGxlciB0byBmb2xsb3cuCgpTaW5j ZSB3ZSBkbyBhIGdvb2QgbnVtYmVyIG9mIGxvb3BzLCBhbmQgaG9wZSB0aGUgY2FsaWJyYXRpb24g d2lsbCAKY29udmVyZ2UgcXVpY2tseSAod2hpY2ggaXQgZG9lcyBmb3IgbWUpLCBJIGRvbid0IHNl ZSB0aGF0IHRoZXJlIGlzIGFuIAppc3N1ZSB0aGVyZS4KCldpdGggdGhpcyBsb29wIGl0LCBmb3Ig bWUgbG9jYWxseSwgY29uc2lzdGVudGx5IHVuZGVyZXN0aW1hdGVzIGJ5IH4rMC4wMyAKLSArMC4w NCUgZm9yIDIlIGFuZCA5OCUgdGVzdHMsIGFuZCB+KzAuMjAgLSArMC42MCUuIEluIGFtIG5vdCBz byBoYXBweSAKd2l0aCB0aGUgZmFjdCBlcnJvciBzZWVtcyBzeXN0ZW1hdGljIChzZWVtcyB0byBi ZSB0aGF0IGVhY2ggbG9vcCBhZGRzIH4gCiswLjAwOCAtICswLjAxMiUgb2YgZXJyb3IpIC0gYnV0 IGRvbid0IGhhdmUgYW4gaWRlYSBvbiBob3cgdG8gaW1wcm92ZSBpdCAKZnVydGhlci4KCk1vcmUg b2YgYSBwcm9ibGVtIHdpbGwgYmUgaWYgdGhpcyBzdGlsbCBkb2Vzbid0IHdvcmsgdGhhdCBncmVh dCBvbiB0aGUgCkNJIGxpa2UgZm9yIGluc3RhbmNlIGlmIHRoZXJlIGxhdGVuY2llcyB3aWxsIGJl IG1vcmUgcmFuZG9tLiBJR1RfVFJBQ0UgCmVxdWl2YWxlbnQgdG8gR0VNX1RSQUNFIGFuZCBkdW1w IHRoZSBjYWxpYnJhdGlvbiBwYXNzZXMgY29tZXMgdG8gbWluZC4gOikKClJlZ2FyZHMsCgpUdnJ0 a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==