From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 2/3] igt/gem_pread: Support to verify pread/pwrite for non-shmem backed obj Date: Tue, 15 Sep 2015 16:35:49 +0100 Message-ID: <55F83AD5.6060800@linux.intel.com> References: <1442306188-25779-1-git-send-email-ankitprasad.r.sharma@intel.com> <1442306188-25779-3-git-send-email-ankitprasad.r.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 87B906E50D for ; Tue, 15 Sep 2015 08:35:51 -0700 (PDT) In-Reply-To: <1442306188-25779-3-git-send-email-ankitprasad.r.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ankitprasad.r.sharma@intel.com, intel-gfx@lists.freedesktop.org Cc: akash.goel@intel.com, shashidhar.hiremath@intel.com List-Id: intel-gfx@lists.freedesktop.org CgpPbiAwOS8xNS8yMDE1IDA5OjM2IEFNLCBhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20g d3JvdGU6Cj4gRnJvbTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBp bnRlbC5jb20+Cj4KPiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCB0byB2ZXJpZnkgcHJlYWQvcHdy aXRlIGZvciBub24tc2htZW0gYmFja2VkCj4gb2JqZWN0cy4gSXQgYWxzbyBzaG93cyB0aGUgcHJl YWQvcHdyaXRlIHNwZWVkLgo+IEl0IGFsc28gdGVzdHMgc3BlZWRzIGZvciBwcmVhZCB3aXRoIGFu ZCB3aXRob3V0IHVzZXIgc2lkZSBwYWdlIGZhdWx0cwo+Cj4gdjI6IEZpeGVkIFJlYmFzZSBjb25m bGljdHMgKEFua2l0KQo+Cj4gdjM6IFByZWNhbGN1bGF0aW5nIHZhbHVlcyB0byBhdm9pZCByZWR1 bmRhbnQgZnVuY3Rpb24gY2FsbHMgKERhdmUpCj4gUmVwbGFjZWQgaWd0X3N1YnRlc3QgYnkgaWd0 X3N1YnRlc3RfZiwgYWRkZWQgYXNzZXJ0cyBmb3IgbW1hcCwgY29ycmVjdGVkCj4gaW5kZW50YXRp b24gKFR2cnRrbykKPgo+IHY0OiBVcGRhdGVkIGRhdGEgdHlwZXMgdG8gYXZvaWQgcmVkdW5kYW50 IHR5cGUgY29udmVyc2lvbnMgKFR2cnRrbykKPiBDb3JyZWN0ZWQgcGFnZWZhdWx0LXByZWFkIHRp bWUgY2FsY3VsYXRpb24gKEFua2l0KQo+Cj4gU2lnbmVkLW9mZi1ieTogQW5raXRwcmFzYWQgU2hh cm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYSBhdCBpbnRlbC5jb20+Cj4gLS0tCj4gICB0ZXN0cy9n ZW1fcHJlYWQuYyAgfCAxMDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0KPiAgIHRlc3RzL2dlbV9wd3JpdGUuYyB8ICA1NSArKysrKysrKysrKysr KysrKysrKysrKystLS0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgMTUwIGluc2VydGlvbnMoKyksIDEz IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9wcmVhZC5jIGIvdGVzdHMv Z2VtX3ByZWFkLmMKPiBpbmRleCBjYzgzOTQ4Li40MTU1M2I4IDEwMDY0NAo+IC0tLSBhL3Rlc3Rz L2dlbV9wcmVhZC5jCj4gKysrIGIvdGVzdHMvZ2VtX3ByZWFkLmMKPiBAQCAtNDEsNiArNDEsMTAg QEAKPiAgICNpbmNsdWRlICJkcm10ZXN0LmgiCj4KPiAgICNkZWZpbmUgT0JKRUNUX1NJWkUgMTYz ODQKPiArI2RlZmluZSBMQVJHRV9PQkpFQ1RfU0laRSAxMDI0ICogMTAyNAo+ICsjZGVmaW5lIEtH Uk4gIlx4MUJbMzJtIgo+ICsjZGVmaW5lIEtSRUQgIlx4MUJbMzFtIgo+ICsjZGVmaW5lIEtOUk0g Ilx4MUJbMG0iCj4KPiAgIHN0YXRpYyB2b2lkIGRvX2dlbV9yZWFkKGludCBmZCwgdWludDMyX3Qg aGFuZGxlLCB2b2lkICpidWYsIGludCBsZW4sIGludCBsb29wcykKPiAgIHsKPiBAQCAtNzYsMTIg KzgwLDE2IEBAIHN0YXRpYyBjb25zdCBjaGFyICpieXRlc19wZXJfc2VjKGNoYXIgKmJ1ZiwgZG91 YmxlIHYpCj4KPgo+ICAgdWludDMyX3QgKnNyYywgZHN0Owo+ICt1aW50MzJfdCAqZHN0X3VzZXIs IHNyY19zdG9sZW4sIGxhcmdlX3N0b2xlbjsKPiArdWludDMyX3QgKnN0b2xlbl9wZl91c2VyLCAq c3RvbGVuX25vcGZfdXNlcjsKPiAgIGludCBmZCwgY291bnQ7Cj4KPiAgIGludCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKPiAgIHsKPiAgIAlpbnQgb2JqZWN0X3NpemUgPSAwOwo+IC0JdWlu dDMyX3QgYnVmWzIwXTsKPiArCWRvdWJsZSB1c2VjczsKPiArCWNoYXIgYnVmWzEwMF07Cj4gKwlj aGFyKiBicHM7Cj4gICAJY29uc3Qgc3RydWN0IHsKPiAgIAkJaW50IGxldmVsOwo+ICAgCQljb25z dCBjaGFyICpuYW1lOwo+IEBAIC0xMDYsNiArMTE0LDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQo+Cj4gICAJCWRzdCA9IGdlbV9jcmVhdGUoZmQsIG9iamVjdF9zaXplKTsKPiAg IAkJc3JjID0gbWFsbG9jKG9iamVjdF9zaXplKTsKPiArCQlzcmNfc3RvbGVuID0gZ2VtX2NyZWF0 ZV9zdG9sZW4oZmQsIG9iamVjdF9zaXplKTsKPiArCQlkc3RfdXNlciA9IG1hbGxvYyhvYmplY3Rf c2l6ZSk7Cj4gICAJfQo+Cj4gICAJaWd0X3N1YnRlc3QoIm5vcm1hbCIpIHsKPiBAQCAtMTE1LDEw ICsxMjUsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAgCQkJZ2V0dGlt ZW9mZGF5KCZzdGFydCwgTlVMTCk7Cj4gICAJCQlkb19nZW1fcmVhZChmZCwgZHN0LCBzcmMsIG9i amVjdF9zaXplLCBjb3VudCk7Cj4gICAJCQlnZXR0aW1lb2ZkYXkoJmVuZCwgTlVMTCk7Cj4gKwkJ CXVzZWNzID0gZWxhcHNlZCgmc3RhcnQsICZlbmQsIGNvdW50KTsKPiArCQkJYnBzID0gYnl0ZXNf cGVyX3NlYyhidWYsIG9iamVjdF9zaXplL3VzZWNzKjFlNik7Cj4gICAJCQlpZ3RfaW5mbygiVGlt ZSB0byBwcmVhZCAlZCBieXRlcyB4ICU2ZDoJJTcuM2bCtXMsICVzXG4iLAo+IC0JCQkJIG9iamVj dF9zaXplLCBjb3VudCwKPiAtCQkJCSBlbGFwc2VkKCZzdGFydCwgJmVuZCwgY291bnQpLAo+IC0J CQkJIGJ5dGVzX3Blcl9zZWMoKGNoYXIgKilidWYsIG9iamVjdF9zaXplL2VsYXBzZWQoJnN0YXJ0 LCAmZW5kLCBjb3VudCkqMWU2KSk7Cj4gKwkJCQkgb2JqZWN0X3NpemUsIGNvdW50LCB1c2Vjcywg YnBzKTsKPiAgIAkJCWZmbHVzaChzdGRvdXQpOwo+ICAgCQl9Cj4gICAJfQo+IEBAIC0xMzMsMTgg KzE0MywxMDIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAgCQkJCWdldHRp bWVvZmRheSgmc3RhcnQsIE5VTEwpOwo+ICAgCQkJCWRvX2dlbV9yZWFkKGZkLCBkc3QsIHNyYywg b2JqZWN0X3NpemUsIGNvdW50KTsKPiAgIAkJCQlnZXR0aW1lb2ZkYXkoJmVuZCwgTlVMTCk7Cj4g KwkJCQl1c2VjcyA9IGVsYXBzZWQoJnN0YXJ0LCAmZW5kLCBjb3VudCk7Cj4gKwkJCQlicHMgPSBi eXRlc19wZXJfc2VjKGJ1Ziwgb2JqZWN0X3NpemUvdXNlY3MqMWU2KTsKPiAgIAkJCQlpZ3RfaW5m bygiVGltZSB0byAlcyBwcmVhZCAlZCBieXRlcyB4ICU2ZDoJJTcuM2bCtXMsICVzXG4iLAo+IC0J CQkJCSBjLT5uYW1lLCBvYmplY3Rfc2l6ZSwgY291bnQsCj4gLQkJCQkJIGVsYXBzZWQoJnN0YXJ0 LCAmZW5kLCBjb3VudCksCj4gLQkJCQkJIGJ5dGVzX3Blcl9zZWMoKGNoYXIgKilidWYsIG9iamVj dF9zaXplL2VsYXBzZWQoJnN0YXJ0LCAmZW5kLCBjb3VudCkqMWU2KSk7Cj4gKwkJCQkJIGMtPm5h bWUsIG9iamVjdF9zaXplLCBjb3VudCwgdXNlY3MsIGJwcyk7Cj4gICAJCQkJZmZsdXNoKHN0ZG91 dCk7Cj4gICAJCQl9Cj4gICAJCX0KPiAgIAl9Cj4KPiArCWlndF9zdWJ0ZXN0KCJzdG9sZW4tbm9y bWFsIikgewo+ICsJCWZvciAoY291bnQgPSAxOyBjb3VudCA8PSAxPDwxNzsgY291bnQgPDw9IDEp IHsKPiArCQkJc3RydWN0IHRpbWV2YWwgc3RhcnQsIGVuZDsKPiArCj4gKwkJCWdldHRpbWVvZmRh eSgmc3RhcnQsIE5VTEwpOwo+ICsJCQlkb19nZW1fcmVhZChmZCwgc3JjX3N0b2xlbiwgZHN0X3Vz ZXIsIG9iamVjdF9zaXplLCBjb3VudCk7Cj4gKwkJCWdldHRpbWVvZmRheSgmZW5kLCBOVUxMKTsK PiArCQkJdXNlY3MgPSBlbGFwc2VkKCZzdGFydCwgJmVuZCwgY291bnQpOwo+ICsJCQlicHMgPSBi eXRlc19wZXJfc2VjKGJ1Ziwgb2JqZWN0X3NpemUvdXNlY3MqMWU2KTsKPiArCQkJaWd0X2luZm8o IlRpbWUgdG8gcHJlYWQgJWQgYnl0ZXMgeCAlNmQ6CSU3LjNmwrVzLCAlc1xuIiwKPiArCQkJCSBv YmplY3Rfc2l6ZSwgY291bnQsIHVzZWNzLCBicHMpOwo+ICsJCQlmZmx1c2goc3Rkb3V0KTsKPiAr CQl9Cj4gKwl9Cj4gKwlmb3IgKGMgPSBjYWNoZTsgYy0+bGV2ZWwgIT0gLTE7IGMrKykgewo+ICsJ CWlndF9zdWJ0ZXN0X2YoInN0b2xlbi0lcyIsIGMtPm5hbWUpIHsKPiArCQkJZ2VtX3NldF9jYWNo aW5nKGZkLCBzcmNfc3RvbGVuLCBjLT5sZXZlbCk7Cj4gKwo+ICsJCQlmb3IgKGNvdW50ID0gMTsg Y291bnQgPD0gMTw8MTc7IGNvdW50IDw8PSAxKSB7Cj4gKwkJCQlzdHJ1Y3QgdGltZXZhbCBzdGFy dCwgZW5kOwo+ICsKPiArCQkJCWdldHRpbWVvZmRheSgmc3RhcnQsIE5VTEwpOwo+ICsJCQkJZG9f Z2VtX3JlYWQoZmQsIHNyY19zdG9sZW4sIGRzdF91c2VyLAo+ICsJCQkJCSAgICBvYmplY3Rfc2l6 ZSwgY291bnQpOwo+ICsJCQkJZ2V0dGltZW9mZGF5KCZlbmQsIE5VTEwpOwo+ICsJCQkJdXNlY3Mg PSBlbGFwc2VkKCZzdGFydCwgJmVuZCwgY291bnQpOwo+ICsJCQkJYnBzID0gYnl0ZXNfcGVyX3Nl YyhidWYsIG9iamVjdF9zaXplL3VzZWNzKjFlNik7Cj4gKwkJCQlpZ3RfaW5mbygiVGltZSB0byBz dG9sZW4tJXMgcHJlYWQgJWQgYnl0ZXMgeCAlNmQ6ICAgICAgJTcuM2bCtXMsICVzXG4iLAo+ICsJ CQkJCSBjLT5uYW1lLCBvYmplY3Rfc2l6ZSwgY291bnQsIHVzZWNzLCBicHMpOwo+ICsJCQkJZmZs dXNoKHN0ZG91dCk7Cj4gKwkJCX0KPiArCQl9Cj4gKwl9Cj4gKwo+ICsJLyogTGlzdCB0aGUgdGlt ZSB0YWtlbiBpbiBwcmVhZCBvcGVyYXRpb24gZm9yIHN0b2xlbiBvYmplY3RzLCB3aXRoCj4gKwkg KiBhbmQgd2l0aG91dCB0aGUgb3ZlcmhlYWQgb2YgcGFnZSBmYXVsdCBoYW5kbGluZyBvbiBhY2Nl c3NpbmcgdGhlCj4gKwkgKiB1c2VyIHNwYWNlIGJ1ZmZlcgo+ICsJICovCj4gKwlpZ3Rfc3VidGVz dCgicGFnZWZhdWx0LXByZWFkIikgewo+ICsJCWxhcmdlX3N0b2xlbiA9IGdlbV9jcmVhdGVfc3Rv bGVuKGZkLCBMQVJHRV9PQkpFQ1RfU0laRSk7Cj4gKwkJc3RvbGVuX25vcGZfdXNlciA9ICh1aW50 MzJfdCAqKSBtbWFwKE5VTEwsIExBUkdFX09CSkVDVF9TSVpFLAo+ICsJCQkJCQlQUk9UX1dSSVRF LAo+ICsJCQkJCQlNQVBfQU5PTllNT1VTfE1BUF9QUklWQVRFLAo+ICsJCQkJCQktMSwgMCk7Cj4g KwkJaWd0X2Fzc2VydChzdG9sZW5fbm9wZl91c2VyKTsKPiArCj4gKwkJZm9yIChjb3VudCA9IDE7 IGNvdW50IDw9IDEwOyBjb3VudCArKykgewo+ICsJCQlzdHJ1Y3QgdGltZXZhbCBzdGFydCwgZW5k Owo+ICsJCQlkb3VibGUgdF9lbGFwc2VkID0gMDsKPiArCj4gKwkJCWdldHRpbWVvZmRheSgmc3Rh cnQsIE5VTEwpOwo+ICsJCQlkb19nZW1fcmVhZChmZCwgbGFyZ2Vfc3RvbGVuLCBzdG9sZW5fbm9w Zl91c2VyLAo+ICsJCQkJICAgIExBUkdFX09CSkVDVF9TSVpFLCAxKTsKPiArCQkJZ2V0dGltZW9m ZGF5KCZlbmQsIE5VTEwpOwo+ICsJCQl0X2VsYXBzZWQgPSBlbGFwc2VkKCZzdGFydCwgJmVuZCwg Y291bnQpOwo+ICsJCQlicHMgPSBieXRlc19wZXJfc2VjKGJ1Ziwgb2JqZWN0X3NpemUvdF9lbGFw c2VkKjFlNik7Cj4gKwkJCWlndF9pbmZvKCJQYWdlZmF1bHQtTiAtIFRpbWUgdG8gcHJlYWQgJWQg Ynl0ZXM6ICU3LjNmwrVzLCAlc1xuIiwKPiArCQkJCSBMQVJHRV9PQkpFQ1RfU0laRSwgdF9lbGFw c2VkLCBicHMpOwo+ICsKPiArCQkJc3RvbGVuX3BmX3VzZXIgPSAodWludDMyX3QgKikgbW1hcChO VUxMLCBMQVJHRV9PQkpFQ1RfU0laRSwKPiArCQkJCQkJICAgICAgUFJPVF9XUklURSwKPiArCQkJ CQkJICAgICAgTUFQX0FOT05ZTU9VU3xNQVBfUFJJVkFURSwKPiArCQkJCQkJICAgICAgLTEsIDAp Owo+ICsJCQlpZ3RfYXNzZXJ0KHN0b2xlbl9wZl91c2VyKTsKPiArCj4gKwkJCWdldHRpbWVvZmRh eSgmc3RhcnQsIE5VTEwpOwo+ICsJCQlkb19nZW1fcmVhZChmZCwgbGFyZ2Vfc3RvbGVuLCBzdG9s ZW5fcGZfdXNlciwKPiArCQkJCSAgICBMQVJHRV9PQkpFQ1RfU0laRSwgMSk7Cj4gKwkJCWdldHRp bWVvZmRheSgmZW5kLCBOVUxMKTsKPiArCQkJdXNlY3MgPSBlbGFwc2VkKCZzdGFydCwgJmVuZCwg Y291bnQpOwo+ICsJCQlicHMgPSBieXRlc19wZXJfc2VjKGJ1Ziwgb2JqZWN0X3NpemUvdXNlY3Mq MWU2KTsKPiArCQkJaWd0X2luZm8oIlBhZ2VmYXVsdC1ZIC0gVGltZSB0byBwcmVhZCAlZCBieXRl czogJTcuM2bCtXMsICVzJXMlc1xuIiwKPiArCQkJCSBMQVJHRV9PQkpFQ1RfU0laRSwgdXNlY3Ms Cj4gKwkJCQkgdF9lbGFwc2VkIDwgdXNlY3MgPyBLR1JOIDogS1JFRCwgYnBzLCBLTlJNKTsKPiAr CQkJZmZsdXNoKHN0ZG91dCk7Cj4gKwkJCW11bm1hcChzdG9sZW5fcGZfdXNlciwgTEFSR0VfT0JK RUNUX1NJWkUpOwo+ICsJCX0KPiArCQltdW5tYXAoc3RvbGVuX25vcGZfdXNlciwgTEFSR0VfT0JK RUNUX1NJWkUpOwo+ICsJCWdlbV9jbG9zZShmZCwgbGFyZ2Vfc3RvbGVuKTsKPiArCX0KPiArCj4g Kwo+ICAgCWlndF9maXh0dXJlIHsKPiAgIAkJZnJlZShzcmMpOwo+ICAgCQlnZW1fY2xvc2UoZmQs IGRzdCk7Cj4gKwkJZnJlZShkc3RfdXNlcik7Cj4gKwkJZ2VtX2Nsb3NlKGZkLCBzcmNfc3RvbGVu KTsKPgo+ICAgCQljbG9zZShmZCk7Cj4gICAJfQo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fcHdy aXRlLmMgYi90ZXN0cy9nZW1fcHdyaXRlLmMKPiBpbmRleCA1YjZhNzdmLi4yMzUwOWM1IDEwMDY0 NAo+IC0tLSBhL3Rlc3RzL2dlbV9wd3JpdGUuYwo+ICsrKyBiL3Rlc3RzL2dlbV9wd3JpdGUuYwo+ IEBAIC0xMzUsMTIgKzEzNSwxNSBAQCBzdGF0aWMgdm9pZCB0ZXN0X2JpZ19ndHQoaW50IGZkLCBp bnQgc2NhbGUpCj4gICB9Cj4KPiAgIHVpbnQzMl90ICpzcmMsIGRzdDsKPiArdWludDMyX3QgKnNy Y191c2VyLCBkc3Rfc3RvbGVuOwo+ICAgaW50IGZkOwo+Cj4gICBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCj4gICB7Cj4gICAJaW50IG9iamVjdF9zaXplID0gMDsKPiAtCXVpbnQzMl90 IGJ1ZlsyMF07Cj4gKwlkb3VibGUgdXNlY3M7Cj4gKwljaGFyKiBicHM7Cj4gKwljaGFyIGJ1Zlsx MDBdOwo+ICAgCWludCBjb3VudDsKPiAgIAljb25zdCBzdHJ1Y3Qgewo+ICAgCQlpbnQgbGV2ZWw7 Cj4gQEAgLTE2Nyw2ICsxNzAsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4K PiAgIAkJZHN0ID0gZ2VtX2NyZWF0ZShmZCwgb2JqZWN0X3NpemUpOwo+ICAgCQlzcmMgPSBtYWxs b2Mob2JqZWN0X3NpemUpOwo+ICsJCWRzdF9zdG9sZW4gPSBnZW1fY3JlYXRlX3N0b2xlbihmZCwg b2JqZWN0X3NpemUpOwo+ICsJCXNyY191c2VyID0gbWFsbG9jKG9iamVjdF9zaXplKTsKPiAgIAl9 Cj4KPiAgIAlpZ3Rfc3VidGVzdCgibm9ybWFsIikgewo+IEBAIC0xNzYsMTAgKzE4MSwxMCBAQCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gICAJCQlnZXR0aW1lb2ZkYXkoJnN0YXJ0 LCBOVUxMKTsKPiAgIAkJCWRvX2dlbV93cml0ZShmZCwgZHN0LCBzcmMsIG9iamVjdF9zaXplLCBj b3VudCk7Cj4gICAJCQlnZXR0aW1lb2ZkYXkoJmVuZCwgTlVMTCk7Cj4gKwkJCXVzZWNzID0gZWxh cHNlZCgmc3RhcnQsICZlbmQsIGNvdW50KTsKPiArCQkJYnBzID0gYnl0ZXNfcGVyX3NlYyhidWYs IG9iamVjdF9zaXplL3VzZWNzKjFlNik7Cj4gICAJCQlpZ3RfaW5mbygiVGltZSB0byBwd3JpdGUg JWQgYnl0ZXMgeCAlNmQ6CSU3LjNmwrVzLCAlc1xuIiwKPiAtCQkJCSBvYmplY3Rfc2l6ZSwgY291 bnQsCj4gLQkJCQkgZWxhcHNlZCgmc3RhcnQsICZlbmQsIGNvdW50KSwKPiAtCQkJCSBieXRlc19w ZXJfc2VjKChjaGFyICopYnVmLCBvYmplY3Rfc2l6ZS9lbGFwc2VkKCZzdGFydCwgJmVuZCwgY291 bnQpKjFlNikpOwo+ICsJCQkJIG9iamVjdF9zaXplLCBjb3VudCwgdXNlY3MsIGJwcyk7Cj4gICAJ CQlmZmx1c2goc3Rkb3V0KTsKPiAgIAkJfQo+ICAgCX0KPiBAQCAtMTk0LDEwICsxOTksNDYgQEAg aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAgCQkJCWdldHRpbWVvZmRheSgmc3Rh cnQsIE5VTEwpOwo+ICAgCQkJCWRvX2dlbV93cml0ZShmZCwgZHN0LCBzcmMsIG9iamVjdF9zaXpl LCBjb3VudCk7Cj4gICAJCQkJZ2V0dGltZW9mZGF5KCZlbmQsIE5VTEwpOwo+ICsJCQkJdXNlY3Mg PSBlbGFwc2VkKCZzdGFydCwgJmVuZCwgY291bnQpOwo+ICsJCQkJYnBzID0gYnl0ZXNfcGVyX3Nl YyhidWYsIG9iamVjdF9zaXplL3VzZWNzKjFlNik7Cj4gICAJCQkJaWd0X2luZm8oIlRpbWUgdG8g JXMgcHdyaXRlICVkIGJ5dGVzIHggJTZkOgklNy4zZsK1cywgJXNcbiIsCj4gKwkJCQkJIGMtPm5h bWUsIG9iamVjdF9zaXplLCBjb3VudCwgdXNlY3MsIGJwcyk7Cj4gKwkJCQlmZmx1c2goc3Rkb3V0 KTsKPiArCQkJfQo+ICsJCX0KPiArCX0KPiArCj4gKwlpZ3Rfc3VidGVzdCgic3RvbGVuLW5vcm1h bCIpIHsKPiArCQlmb3IgKGNvdW50ID0gMTsgY291bnQgPD0gMTw8MTc7IGNvdW50IDw8PSAxKSB7 Cj4gKwkJCXN0cnVjdCB0aW1ldmFsIHN0YXJ0LCBlbmQ7Cj4gKwo+ICsJCQlnZXR0aW1lb2ZkYXko JnN0YXJ0LCBOVUxMKTsKPiArCQkJZG9fZ2VtX3dyaXRlKGZkLCBkc3Rfc3RvbGVuLCBzcmNfdXNl ciwKPiArCQkJCSAgICAgb2JqZWN0X3NpemUsIGNvdW50KTsKPiArCQkJZ2V0dGltZW9mZGF5KCZl bmQsIE5VTEwpOwo+ICsJCQl1c2VjcyA9IGVsYXBzZWQoJnN0YXJ0LCAmZW5kLCBjb3VudCk7Cj4g KwkJCWJwcyA9IGJ5dGVzX3Blcl9zZWMoYnVmLCBvYmplY3Rfc2l6ZS91c2VjcyoxZTYpOwo+ICsJ CQlpZ3RfaW5mbygiVGltZSB0byBwd3JpdGUgJWQgYnl0ZXMgeCAlNmQ6ICAgICAgICAlNy4zZsK1 cywgJXNcbiIsCj4gKwkJCQkgb2JqZWN0X3NpemUsIGNvdW50LCB1c2VjcywgYnBzKTsKPiArCQkJ ZmZsdXNoKHN0ZG91dCk7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCWZvciAoYyA9IGNhY2hlOyBjLT5s ZXZlbCAhPSAtMTsgYysrKSB7Cj4gKwkJaWd0X3N1YnRlc3RfZigic3RvbGVuLSVzIiwgYy0+bmFt ZSkgewo+ICsJCQlnZW1fc2V0X2NhY2hpbmcoZmQsIGRzdCwgYy0+bGV2ZWwpOwo+ICsJCQlmb3Ig KGNvdW50ID0gMTsgY291bnQgPD0gMTw8MTc7IGNvdW50IDw8PSAxKSB7Cj4gKwkJCQlzdHJ1Y3Qg dGltZXZhbCBzdGFydCwgZW5kOwo+ICsKPiArCQkJCWdldHRpbWVvZmRheSgmc3RhcnQsIE5VTEwp Owo+ICsJCQkJZG9fZ2VtX3dyaXRlKGZkLCBkc3Rfc3RvbGVuLCBzcmNfdXNlciwKPiArCQkJCQkg ICAgIG9iamVjdF9zaXplLCBjb3VudCk7Cj4gKwkJCQlnZXR0aW1lb2ZkYXkoJmVuZCwgTlVMTCk7 Cj4gKwkJCQlicHMgPSBieXRlc19wZXJfc2VjKGJ1ZiwKPiArCQkJCQkJICAgIG9iamVjdF9zaXpl L3VzZWNzKjFlNik7Cj4gKwkJCQlpZ3RfaW5mbygiVGltZSB0byBzdG9sZW4tJXMgcHdyaXRlICVk IGJ5dGVzIHggJTZkOiAgICAgJTcuM2bCtXMsICVzXG4iLAo+ICAgCQkJCQkgYy0+bmFtZSwgb2Jq ZWN0X3NpemUsIGNvdW50LAo+IC0JCQkJCSBlbGFwc2VkKCZzdGFydCwgJmVuZCwgY291bnQpLAo+ IC0JCQkJCSBieXRlc19wZXJfc2VjKChjaGFyICopYnVmLCBvYmplY3Rfc2l6ZS9lbGFwc2VkKCZz dGFydCwgJmVuZCwgY291bnQpKjFlNikpOwo+ICsJCQkJCSB1c2VjcywgYnBzKTsKPiAgIAkJCQlm Zmx1c2goc3Rkb3V0KTsKPiAgIAkJCX0KPiAgIAkJfQo+IEBAIC0yMDYsNiArMjQ3LDggQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAgCWlndF9maXh0dXJlIHsKPiAgIAkJZnJl ZShzcmMpOwo+ICAgCQlnZW1fY2xvc2UoZmQsIGRzdCk7Cj4gKwkJZnJlZShzcmNfdXNlcik7Cj4g KwkJZ2VtX2Nsb3NlKGZkLCBkc3Rfc3RvbGVuKTsKPiAgIAl9Cj4KPiAgIAlpZ3Rfc3VidGVzdCgi YmlnLWNwdSIpCj4KClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5A aW50ZWwuY29tPgoKUmVnYXJkcywKClR2cnRrbwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==