From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH i-g-t] igt/gem_eio: Measure reset delay from thread Date: Fri, 27 Jul 2018 12:13:24 +0100 Message-ID: <20180727111324.7471-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: igt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org V2UgYXNzZXJ0IHRoYXQgd2UgY29tcGxldGUgYSB3ZWRnZSB3aXRoaW4gMjUwbXMuIEhvd2V2ZXIs IHdoZW4gd2UgdXNlIGEKdGhyZWFkIHRvIGRlbGF5IHRoZSB3ZWRnaW5nIHVudGlsIGFmdGVyIHdl IHN0YXJ0IHdhaXRpbmcsIHRoYXQgdGhyZWFkCml0c2VsZiBpcyBkZWxheWVkIGxvbmdlciB0aGFu IG91ciB3YWl0IHRpbWVvdXQuIFRoaXMgcmVzdWx0cyBpbiBhIGZhbHNlCnBvc2l0aXZlIGVycm9y IHdoZXJlIHdlIGZhaWwgdGhlIHRlc3QgYmVmb3JlIHdlIGV2ZW4gdHJpZ2dlciB0aGUgcmVzZXQu CgpSZW9yZGVyIHRoZSB0ZXN0IHNvIHRoYXQgd2Ugb25seSBldmVyIG1lYXN1cmUgdGhlIGRlbGF5 IGZyb20gdHJpZ2dlcmluZwp0aGUgcmVzZXQgdW50aWwgd2Ugd2FrZXVwLCBhbmQgYXNzZXJ0IHRo YXQgaXMgaW4gYSB0aW1lbHkgZmFzaGlvbgoobGVzcyB0aGFuIDI1MG1zKS4KCkJ1Z3ppbGxhOiBo dHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU5NTQKU2lnbmVk LW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogdGVz dHMvZ2VtX2Vpby5jIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2Vpby5jIGIvdGVzdHMvZ2VtX2Vpby5jCmluZGV4IDMx NjJhMzE3MC4uYjI2YjRiODk1IDEwMDY0NAotLS0gYS90ZXN0cy9nZW1fZWlvLmMKKysrIGIvdGVz dHMvZ2VtX2Vpby5jCkBAIC0xOTAsNyArMTkwLDggQEAgc3RhdGljIGlndF9zcGluX3QgKiBzcGlu X3N5bmMoaW50IGZkLCB1aW50MzJfdCBjdHgsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAKIHN0cnVj dCBoYW5nX2N0eCB7CiAJaW50IGRlYnVnZnM7Ci0Jc3RydWN0IHRpbWVzcGVjIHRzOworCXN0cnVj dCB0aW1lc3BlYyBkZWxheTsKKwlzdHJ1Y3QgdGltZXNwZWMgKnRzOwogCXRpbWVyX3QgdGltZXI7 CiB9OwogCkBAIC0xOTgsOCArMTk5LDEwIEBAIHN0YXRpYyB2b2lkIGhhbmdfaGFuZGxlcih1bmlv biBzaWd2YWwgYXJnKQogewogCXN0cnVjdCBoYW5nX2N0eCAqY3R4ID0gYXJnLnNpdmFsX3B0cjsK IAotCWlndF9kZWJ1ZygiaGFuZyBkZWxheSA9ICUuMmZ1c1xuIiwgaWd0X25zZWNfZWxhcHNlZCgm Y3R4LT50cykgLyAxMDAwLjApOworCWlndF9kZWJ1ZygiaGFuZyBkZWxheSA9ICUuMmZ1c1xuIiwK KwkJICBpZ3RfbnNlY19lbGFwc2VkKCZjdHgtPmRlbGF5KSAvIDEwMDAuMCk7CiAKKwlpZ3RfbnNl Y19lbGFwc2VkKGN0eC0+dHMpOwogCWlndF9hc3NlcnQoaWd0X3N5c2ZzX3NldChjdHgtPmRlYnVn ZnMsICJpOTE1X3dlZGdlZCIsICItMSIpKTsKIAogCWlndF9hc3NlcnRfZXEodGltZXJfZGVsZXRl KGN0eC0+dGltZXIpLCAwKTsKQEAgLTIwNyw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCBoYW5nX2hh bmRsZXIodW5pb24gc2lndmFsIGFyZykKIAlmcmVlKGN0eCk7CiB9CiAKLXN0YXRpYyB2b2lkIGhh bmdfYWZ0ZXIoaW50IGZkLCB1bnNpZ25lZCBpbnQgdXMpCitzdGF0aWMgdm9pZCBoYW5nX2FmdGVy KGludCBmZCwgdW5zaWduZWQgaW50IHVzLCBzdHJ1Y3QgdGltZXNwZWMgKnRzKQogewogCXN0cnVj dCBzaWdldmVudCBzZXYgPSB7CiAJCS5zaWdldl9ub3RpZnkgPSBTSUdFVl9USFJFQUQsCkBAIC0y MjksMzAgKzIzMiwzMCBAQCBzdGF0aWMgdm9pZCBoYW5nX2FmdGVyKGludCBmZCwgdW5zaWduZWQg aW50IHVzKQogCiAJaWd0X2Fzc2VydF9lcSh0aW1lcl9jcmVhdGUoQ0xPQ0tfTU9OT1RPTklDLCAm c2V2LCAmY3R4LT50aW1lciksIDApOwogCi0JaWd0X25zZWNfZWxhcHNlZCgmY3R4LT50cyk7CisJ Y3R4LT50cyA9IHRzOworCWlndF9uc2VjX2VsYXBzZWQoJmN0eC0+ZGVsYXkpOwogCiAJaWd0X2Fz c2VydF9lcSh0aW1lcl9zZXR0aW1lKGN0eC0+dGltZXIsIDAsICZpdHMsIE5VTEwpLCAwKTsKIH0K IAotc3RhdGljIGludCBfX2NoZWNrX3dhaXQoaW50IGZkLCB1aW50MzJfdCBibywgdW5zaWduZWQg aW50IHdhaXQpCitzdGF0aWMgdm9pZCBfX2NoZWNrX3dhaXQoaW50IGZkLCB1aW50MzJfdCBibywg dW5zaWduZWQgaW50IHdhaXQpCiB7Ci0JdW5zaWduZWQgbG9uZyB3YWl0X3RpbWVvdXQgPSAyNTBl NjsgLyogU29tZSBtYXJnaW4gZm9yIGFjdHVhbCByZXNldC4gKi8KLQlpbnQgcmV0OworCXN0cnVj dCB0aW1lc3BlYyB0cyA9IHt9OworCXVpbnQ2NF90IGVsYXBzZWQ7CiAKIAlpZiAod2FpdCkgewot CQkvKgotCQkgKiBEb3VibGUgdGhlIHdhaXQgcGx1cyBzb21lIGZpeGVkIG1hcmdpbiB0byBlbnN1 cmUgZ2VtX3dhaXQKLQkJICogY2FuIG5ldmVyIHRpbWUgb3V0IGJlZm9yZSB0aGUgYXN5bmMgaGFu ZyBydW5zLgotCQkgKi8KLQkJd2FpdF90aW1lb3V0ICs9IHdhaXQgKiAyMDAwICsgMjUwZTY7Ci0J CWhhbmdfYWZ0ZXIoZmQsIHdhaXQpOworCQloYW5nX2FmdGVyKGZkLCB3YWl0LCAmdHMpOwogCX0g ZWxzZSB7CisJCWlndF9uc2VjX2VsYXBzZWQoJnRzKTsKIAkJbWFudWFsX2hhbmcoZmQpOwogCX0K IAotCXJldCA9IF9fZ2VtX3dhaXQoZmQsIGJvLCB3YWl0X3RpbWVvdXQpOworCWdlbV9zeW5jKGZk LCBibyk7CiAKLQlyZXR1cm4gcmV0OworCWVsYXBzZWQgPSBpZ3RfbnNlY19lbGFwc2VkKCZ0cyk7 CisJaWd0X2Fzc2VydF9mKGVsYXBzZWQgPCAyNTBlNiwKKwkJICAgICAiV2FrZSB1cCBmb2xsb3dp bmcgcmVzZXQrd2VkZ2UgdG9vayAlLjNmbXNcbiIsCisJCSAgICAgZWxhcHNlZCoxZS02KTsKIH0K IAogc3RhdGljIHZvaWQgX190ZXN0X2Jhbm5lZChpbnQgZmQpCkBAIC0zMjIsNyArMzI1LDcgQEAg c3RhdGljIHZvaWQgdGVzdF93YWl0KGludCBmZCwgdW5zaWduZWQgaW50IGZsYWdzLCB1bnNpZ25l ZCBpbnQgd2FpdCkKIAogCWhhbmcgPSBzcGluX3N5bmMoZmQsIDAsIEk5MTVfRVhFQ19ERUZBVUxU KTsKIAotCWlndF9hc3NlcnRfZXEoX19jaGVja193YWl0KGZkLCBoYW5nLT5oYW5kbGUsIHdhaXQp LCAwKTsKKwlfX2NoZWNrX3dhaXQoZmQsIGhhbmctPmhhbmRsZSwgd2FpdCk7CiAKIAlpZ3Rfc3Bp bl9iYXRjaF9mcmVlKGZkLCBoYW5nKTsKIApAQCAtMzkyLDcgKzM5NSw3IEBAIHN0YXRpYyB2b2lk IHRlc3RfaW5mbGlnaHQoaW50IGZkLCB1bnNpZ25lZCBpbnQgd2FpdCkKIAkJCWlndF9hc3NlcnQo ZmVuY2Vbbl0gIT0gLTEpOwogCQl9CiAKLQkJaWd0X2Fzc2VydF9lcShfX2NoZWNrX3dhaXQoZmQs IG9ialsxXS5oYW5kbGUsIHdhaXQpLCAwKTsKKwkJX19jaGVja193YWl0KGZkLCBvYmpbMV0uaGFu ZGxlLCB3YWl0KTsKIAogCQlmb3IgKHVuc2lnbmVkIGludCBuID0gMDsgbiA8IEFSUkFZX1NJWkUo ZmVuY2UpOyBuKyspIHsKIAkJCWlndF9hc3NlcnRfZXEoc3luY19mZW5jZV9zdGF0dXMoZmVuY2Vb bl0pLCAtRUlPKTsKQEAgLTQ0Myw3ICs0NDYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2luZmxpZ2h0 X3N1c3BlbmQoaW50IGZkKQogCWlndF9zZXRfYXV0b3Jlc3VtZV9kZWxheSgzMCk7CiAJaWd0X3N5 c3RlbV9zdXNwZW5kX2F1dG9yZXN1bWUoU1VTUEVORF9TVEFURV9NRU0sIFNVU1BFTkRfVEVTVF9O T05FKTsKIAotCWlndF9hc3NlcnRfZXEoX19jaGVja193YWl0KGZkLCBvYmpbMV0uaGFuZGxlLCAx MCksIDApOworCV9fY2hlY2tfd2FpdChmZCwgb2JqWzFdLmhhbmRsZSwgMTApOwogCiAJZm9yICh1 bnNpZ25lZCBpbnQgbiA9IDA7IG4gPCBBUlJBWV9TSVpFKGZlbmNlKTsgbisrKSB7CiAJCWlndF9h c3NlcnRfZXEoc3luY19mZW5jZV9zdGF0dXMoZmVuY2Vbbl0pLCAtRUlPKTsKQEAgLTUyMSw3ICs1 MjQsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2luZmxpZ2h0X2NvbnRleHRzKGludCBmZCwgdW5zaWdu ZWQgaW50IHdhaXQpCiAJCQlpZ3RfYXNzZXJ0KGZlbmNlW25dICE9IC0xKTsKIAkJfQogCi0JCWln dF9hc3NlcnRfZXEoX19jaGVja193YWl0KGZkLCBvYmpbMV0uaGFuZGxlLCB3YWl0KSwgMCk7CisJ CV9fY2hlY2tfd2FpdChmZCwgb2JqWzFdLmhhbmRsZSwgd2FpdCk7CiAKIAkJZm9yICh1bnNpZ25l ZCBpbnQgbiA9IDA7IG4gPCBBUlJBWV9TSVpFKGZlbmNlKTsgbisrKSB7CiAJCQlpZ3RfYXNzZXJ0 X2VxKHN5bmNfZmVuY2Vfc3RhdHVzKGZlbmNlW25dKSwgLUVJTyk7CkBAIC02MzAsNyArNjMzLDcg QEAgc3RhdGljIHZvaWQgdGVzdF9pbmZsaWdodF9pbnRlcm5hbChpbnQgZmQsIHVuc2lnbmVkIGlu dCB3YWl0KQogCQluZmVuY2UrKzsKIAl9CiAKLQlpZ3RfYXNzZXJ0X2VxKF9fY2hlY2tfd2FpdChm ZCwgb2JqWzFdLmhhbmRsZSwgd2FpdCksIDApOworCV9fY2hlY2tfd2FpdChmZCwgb2JqWzFdLmhh bmRsZSwgd2FpdCk7CiAKIAl3aGlsZSAobmZlbmNlLS0pIHsKIAkJaWd0X2Fzc2VydF9lcShzeW5j X2ZlbmNlX3N0YXR1cyhmZW5jZXNbbmZlbmNlXSksIC1FSU8pOwpAQCAtNjgyLDcgKzY4NSw3IEBA IHN0YXRpYyB2b2lkIHRlc3RfcmVzZXRfc3RyZXNzKGludCBmZCwgdW5zaWduZWQgaW50IGZsYWdz KQogCQkJZ2VtX2V4ZWNidWYoZmQsICZleGVjYnVmKTsKIAogCQkvKiBXZWRnZSBhZnRlciBhIHNt YWxsIGRlbGF5LiAqLwotCQlpZ3RfYXNzZXJ0X2VxKF9fY2hlY2tfd2FpdChmZCwgb2JqLmhhbmRs ZSwgMTAwZTMpLCAwKTsKKwkJX19jaGVja193YWl0KGZkLCBvYmouaGFuZGxlLCAxMDBlMyk7CiAK IAkJLyogVW53ZWRnZSBieSBmb3JjaW5nIGEgcmVzZXQuICovCiAJCWlndF9hc3NlcnQoaTkxNV9y ZXNldF9jb250cm9sKHRydWUpKTsKLS0gCjIuMTguMAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Chris Wilson Date: Fri, 27 Jul 2018 12:13:24 +0100 Message-Id: <20180727111324.7471-1-chris@chris-wilson.co.uk> Subject: [igt-dev] [PATCH i-g-t] igt/gem_eio: Measure reset delay from thread List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: intel-gfx@lists.freedesktop.org Cc: igt-dev@lists.freedesktop.org List-ID: V2UgYXNzZXJ0IHRoYXQgd2UgY29tcGxldGUgYSB3ZWRnZSB3aXRoaW4gMjUwbXMuIEhvd2V2ZXIs IHdoZW4gd2UgdXNlIGEKdGhyZWFkIHRvIGRlbGF5IHRoZSB3ZWRnaW5nIHVudGlsIGFmdGVyIHdl IHN0YXJ0IHdhaXRpbmcsIHRoYXQgdGhyZWFkCml0c2VsZiBpcyBkZWxheWVkIGxvbmdlciB0aGFu IG91ciB3YWl0IHRpbWVvdXQuIFRoaXMgcmVzdWx0cyBpbiBhIGZhbHNlCnBvc2l0aXZlIGVycm9y IHdoZXJlIHdlIGZhaWwgdGhlIHRlc3QgYmVmb3JlIHdlIGV2ZW4gdHJpZ2dlciB0aGUgcmVzZXQu CgpSZW9yZGVyIHRoZSB0ZXN0IHNvIHRoYXQgd2Ugb25seSBldmVyIG1lYXN1cmUgdGhlIGRlbGF5 IGZyb20gdHJpZ2dlcmluZwp0aGUgcmVzZXQgdW50aWwgd2Ugd2FrZXVwLCBhbmQgYXNzZXJ0IHRo YXQgaXMgaW4gYSB0aW1lbHkgZmFzaGlvbgoobGVzcyB0aGFuIDI1MG1zKS4KCkJ1Z3ppbGxhOiBo dHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU5NTQKU2lnbmVk LW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogdGVz dHMvZ2VtX2Vpby5jIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2Vpby5jIGIvdGVzdHMvZ2VtX2Vpby5jCmluZGV4IDMx NjJhMzE3MC4uYjI2YjRiODk1IDEwMDY0NAotLS0gYS90ZXN0cy9nZW1fZWlvLmMKKysrIGIvdGVz dHMvZ2VtX2Vpby5jCkBAIC0xOTAsNyArMTkwLDggQEAgc3RhdGljIGlndF9zcGluX3QgKiBzcGlu X3N5bmMoaW50IGZkLCB1aW50MzJfdCBjdHgsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAKIHN0cnVj dCBoYW5nX2N0eCB7CiAJaW50IGRlYnVnZnM7Ci0Jc3RydWN0IHRpbWVzcGVjIHRzOworCXN0cnVj dCB0aW1lc3BlYyBkZWxheTsKKwlzdHJ1Y3QgdGltZXNwZWMgKnRzOwogCXRpbWVyX3QgdGltZXI7 CiB9OwogCkBAIC0xOTgsOCArMTk5LDEwIEBAIHN0YXRpYyB2b2lkIGhhbmdfaGFuZGxlcih1bmlv biBzaWd2YWwgYXJnKQogewogCXN0cnVjdCBoYW5nX2N0eCAqY3R4ID0gYXJnLnNpdmFsX3B0cjsK IAotCWlndF9kZWJ1ZygiaGFuZyBkZWxheSA9ICUuMmZ1c1xuIiwgaWd0X25zZWNfZWxhcHNlZCgm Y3R4LT50cykgLyAxMDAwLjApOworCWlndF9kZWJ1ZygiaGFuZyBkZWxheSA9ICUuMmZ1c1xuIiwK KwkJICBpZ3RfbnNlY19lbGFwc2VkKCZjdHgtPmRlbGF5KSAvIDEwMDAuMCk7CiAKKwlpZ3RfbnNl Y19lbGFwc2VkKGN0eC0+dHMpOwogCWlndF9hc3NlcnQoaWd0X3N5c2ZzX3NldChjdHgtPmRlYnVn ZnMsICJpOTE1X3dlZGdlZCIsICItMSIpKTsKIAogCWlndF9hc3NlcnRfZXEodGltZXJfZGVsZXRl KGN0eC0+dGltZXIpLCAwKTsKQEAgLTIwNyw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCBoYW5nX2hh bmRsZXIodW5pb24gc2lndmFsIGFyZykKIAlmcmVlKGN0eCk7CiB9CiAKLXN0YXRpYyB2b2lkIGhh bmdfYWZ0ZXIoaW50IGZkLCB1bnNpZ25lZCBpbnQgdXMpCitzdGF0aWMgdm9pZCBoYW5nX2FmdGVy KGludCBmZCwgdW5zaWduZWQgaW50IHVzLCBzdHJ1Y3QgdGltZXNwZWMgKnRzKQogewogCXN0cnVj dCBzaWdldmVudCBzZXYgPSB7CiAJCS5zaWdldl9ub3RpZnkgPSBTSUdFVl9USFJFQUQsCkBAIC0y MjksMzAgKzIzMiwzMCBAQCBzdGF0aWMgdm9pZCBoYW5nX2FmdGVyKGludCBmZCwgdW5zaWduZWQg aW50IHVzKQogCiAJaWd0X2Fzc2VydF9lcSh0aW1lcl9jcmVhdGUoQ0xPQ0tfTU9OT1RPTklDLCAm c2V2LCAmY3R4LT50aW1lciksIDApOwogCi0JaWd0X25zZWNfZWxhcHNlZCgmY3R4LT50cyk7CisJ Y3R4LT50cyA9IHRzOworCWlndF9uc2VjX2VsYXBzZWQoJmN0eC0+ZGVsYXkpOwogCiAJaWd0X2Fz c2VydF9lcSh0aW1lcl9zZXR0aW1lKGN0eC0+dGltZXIsIDAsICZpdHMsIE5VTEwpLCAwKTsKIH0K IAotc3RhdGljIGludCBfX2NoZWNrX3dhaXQoaW50IGZkLCB1aW50MzJfdCBibywgdW5zaWduZWQg aW50IHdhaXQpCitzdGF0aWMgdm9pZCBfX2NoZWNrX3dhaXQoaW50IGZkLCB1aW50MzJfdCBibywg dW5zaWduZWQgaW50IHdhaXQpCiB7Ci0JdW5zaWduZWQgbG9uZyB3YWl0X3RpbWVvdXQgPSAyNTBl NjsgLyogU29tZSBtYXJnaW4gZm9yIGFjdHVhbCByZXNldC4gKi8KLQlpbnQgcmV0OworCXN0cnVj dCB0aW1lc3BlYyB0cyA9IHt9OworCXVpbnQ2NF90IGVsYXBzZWQ7CiAKIAlpZiAod2FpdCkgewot CQkvKgotCQkgKiBEb3VibGUgdGhlIHdhaXQgcGx1cyBzb21lIGZpeGVkIG1hcmdpbiB0byBlbnN1 cmUgZ2VtX3dhaXQKLQkJICogY2FuIG5ldmVyIHRpbWUgb3V0IGJlZm9yZSB0aGUgYXN5bmMgaGFu ZyBydW5zLgotCQkgKi8KLQkJd2FpdF90aW1lb3V0ICs9IHdhaXQgKiAyMDAwICsgMjUwZTY7Ci0J CWhhbmdfYWZ0ZXIoZmQsIHdhaXQpOworCQloYW5nX2FmdGVyKGZkLCB3YWl0LCAmdHMpOwogCX0g ZWxzZSB7CisJCWlndF9uc2VjX2VsYXBzZWQoJnRzKTsKIAkJbWFudWFsX2hhbmcoZmQpOwogCX0K IAotCXJldCA9IF9fZ2VtX3dhaXQoZmQsIGJvLCB3YWl0X3RpbWVvdXQpOworCWdlbV9zeW5jKGZk LCBibyk7CiAKLQlyZXR1cm4gcmV0OworCWVsYXBzZWQgPSBpZ3RfbnNlY19lbGFwc2VkKCZ0cyk7 CisJaWd0X2Fzc2VydF9mKGVsYXBzZWQgPCAyNTBlNiwKKwkJICAgICAiV2FrZSB1cCBmb2xsb3dp bmcgcmVzZXQrd2VkZ2UgdG9vayAlLjNmbXNcbiIsCisJCSAgICAgZWxhcHNlZCoxZS02KTsKIH0K IAogc3RhdGljIHZvaWQgX190ZXN0X2Jhbm5lZChpbnQgZmQpCkBAIC0zMjIsNyArMzI1LDcgQEAg c3RhdGljIHZvaWQgdGVzdF93YWl0KGludCBmZCwgdW5zaWduZWQgaW50IGZsYWdzLCB1bnNpZ25l ZCBpbnQgd2FpdCkKIAogCWhhbmcgPSBzcGluX3N5bmMoZmQsIDAsIEk5MTVfRVhFQ19ERUZBVUxU KTsKIAotCWlndF9hc3NlcnRfZXEoX19jaGVja193YWl0KGZkLCBoYW5nLT5oYW5kbGUsIHdhaXQp LCAwKTsKKwlfX2NoZWNrX3dhaXQoZmQsIGhhbmctPmhhbmRsZSwgd2FpdCk7CiAKIAlpZ3Rfc3Bp bl9iYXRjaF9mcmVlKGZkLCBoYW5nKTsKIApAQCAtMzkyLDcgKzM5NSw3IEBAIHN0YXRpYyB2b2lk IHRlc3RfaW5mbGlnaHQoaW50IGZkLCB1bnNpZ25lZCBpbnQgd2FpdCkKIAkJCWlndF9hc3NlcnQo ZmVuY2Vbbl0gIT0gLTEpOwogCQl9CiAKLQkJaWd0X2Fzc2VydF9lcShfX2NoZWNrX3dhaXQoZmQs IG9ialsxXS5oYW5kbGUsIHdhaXQpLCAwKTsKKwkJX19jaGVja193YWl0KGZkLCBvYmpbMV0uaGFu ZGxlLCB3YWl0KTsKIAogCQlmb3IgKHVuc2lnbmVkIGludCBuID0gMDsgbiA8IEFSUkFZX1NJWkUo ZmVuY2UpOyBuKyspIHsKIAkJCWlndF9hc3NlcnRfZXEoc3luY19mZW5jZV9zdGF0dXMoZmVuY2Vb bl0pLCAtRUlPKTsKQEAgLTQ0Myw3ICs0NDYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2luZmxpZ2h0 X3N1c3BlbmQoaW50IGZkKQogCWlndF9zZXRfYXV0b3Jlc3VtZV9kZWxheSgzMCk7CiAJaWd0X3N5 c3RlbV9zdXNwZW5kX2F1dG9yZXN1bWUoU1VTUEVORF9TVEFURV9NRU0sIFNVU1BFTkRfVEVTVF9O T05FKTsKIAotCWlndF9hc3NlcnRfZXEoX19jaGVja193YWl0KGZkLCBvYmpbMV0uaGFuZGxlLCAx MCksIDApOworCV9fY2hlY2tfd2FpdChmZCwgb2JqWzFdLmhhbmRsZSwgMTApOwogCiAJZm9yICh1 bnNpZ25lZCBpbnQgbiA9IDA7IG4gPCBBUlJBWV9TSVpFKGZlbmNlKTsgbisrKSB7CiAJCWlndF9h c3NlcnRfZXEoc3luY19mZW5jZV9zdGF0dXMoZmVuY2Vbbl0pLCAtRUlPKTsKQEAgLTUyMSw3ICs1 MjQsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2luZmxpZ2h0X2NvbnRleHRzKGludCBmZCwgdW5zaWdu ZWQgaW50IHdhaXQpCiAJCQlpZ3RfYXNzZXJ0KGZlbmNlW25dICE9IC0xKTsKIAkJfQogCi0JCWln dF9hc3NlcnRfZXEoX19jaGVja193YWl0KGZkLCBvYmpbMV0uaGFuZGxlLCB3YWl0KSwgMCk7CisJ CV9fY2hlY2tfd2FpdChmZCwgb2JqWzFdLmhhbmRsZSwgd2FpdCk7CiAKIAkJZm9yICh1bnNpZ25l ZCBpbnQgbiA9IDA7IG4gPCBBUlJBWV9TSVpFKGZlbmNlKTsgbisrKSB7CiAJCQlpZ3RfYXNzZXJ0 X2VxKHN5bmNfZmVuY2Vfc3RhdHVzKGZlbmNlW25dKSwgLUVJTyk7CkBAIC02MzAsNyArNjMzLDcg QEAgc3RhdGljIHZvaWQgdGVzdF9pbmZsaWdodF9pbnRlcm5hbChpbnQgZmQsIHVuc2lnbmVkIGlu dCB3YWl0KQogCQluZmVuY2UrKzsKIAl9CiAKLQlpZ3RfYXNzZXJ0X2VxKF9fY2hlY2tfd2FpdChm ZCwgb2JqWzFdLmhhbmRsZSwgd2FpdCksIDApOworCV9fY2hlY2tfd2FpdChmZCwgb2JqWzFdLmhh bmRsZSwgd2FpdCk7CiAKIAl3aGlsZSAobmZlbmNlLS0pIHsKIAkJaWd0X2Fzc2VydF9lcShzeW5j X2ZlbmNlX3N0YXR1cyhmZW5jZXNbbmZlbmNlXSksIC1FSU8pOwpAQCAtNjgyLDcgKzY4NSw3IEBA IHN0YXRpYyB2b2lkIHRlc3RfcmVzZXRfc3RyZXNzKGludCBmZCwgdW5zaWduZWQgaW50IGZsYWdz KQogCQkJZ2VtX2V4ZWNidWYoZmQsICZleGVjYnVmKTsKIAogCQkvKiBXZWRnZSBhZnRlciBhIHNt YWxsIGRlbGF5LiAqLwotCQlpZ3RfYXNzZXJ0X2VxKF9fY2hlY2tfd2FpdChmZCwgb2JqLmhhbmRs ZSwgMTAwZTMpLCAwKTsKKwkJX19jaGVja193YWl0KGZkLCBvYmouaGFuZGxlLCAxMDBlMyk7CiAK IAkJLyogVW53ZWRnZSBieSBmb3JjaW5nIGEgcmVzZXQuICovCiAJCWlndF9hc3NlcnQoaTkxNV9y ZXNldF9jb250cm9sKHRydWUpKTsKLS0gCjIuMTguMAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3QtZGV2Cg==