From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1BB206EFF0 for ; Wed, 19 Dec 2018 14:43:14 +0000 (UTC) From: Lionel Landwerlin Date: Wed, 19 Dec 2018 14:43:07 +0000 Message-Id: <20181219144308.9414-3-lionel.g.landwerlin@intel.com> In-Reply-To: <20181219144308.9414-1-lionel.g.landwerlin@intel.com> References: <20181219144308.9414-1-lionel.g.landwerlin@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [RFC 2/3] tests/perf: new tests for parameterized OA buffer polling 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: igt-dev@lists.freedesktop.org List-ID: MiBuZXcgdGVzdHMgdmVyaWZ5aW5nIHRoYXQgdGhlIE9BIGJ1ZmZlciBpcyBwcm9wZXJseSBjaGVj a2VkIGF0IHRoZQpmcmVxdWVuY3kgc3BlY2lmaWVkIGJ5IHVzZXJzcGFjZS4KClNpZ25lZC1vZmYt Ynk6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KLS0t CiB0ZXN0cy9wZXJmLmMgfCAyMDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTY0IGluc2VydGlvbnMoKyksIDQwIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL3BlcmYuYyBiL3Rlc3RzL3BlcmYuYwppbmRl eCA1NGU3ZjRmNC4uZWZhOWM0ZmQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3BlcmYuYworKysgYi90ZXN0 cy9wZXJmLmMKQEAgLTIxMCw2ICsyMTAsMjQgQEAgZ2V0X29hX2Zvcm1hdChlbnVtIGRybV9pOTE1 X29hX2Zvcm1hdCBmb3JtYXQpCiAJcmV0dXJuIGdlbjhfb2FfZm9ybWF0c1tmb3JtYXRdOwogfQog CitzdGF0aWMgY2hhciAqCitwcmV0dHlfcHJpbnRfb2FfcGVyaW9kKHVpbnQ2NF90IG9hX3Blcmlv ZF9ucykKK3sKKwlzdGF0aWMgY2hhciByZXN1bHRbMTAwXTsKKwlzdGF0aWMgY29uc3QgY2hhciAq dW5pdHNbNF0gPSB7ICJucyIsICJ1cyIsICJtcyIsICJzIiB9OworCWRvdWJsZSB2YWwgPSBvYV9w ZXJpb2RfbnM7CisJaW50IGl0ZXIgPSAwOworCisJd2hpbGUgKGl0ZXIgPCAoQVJSQVlfU0laRSh1 bml0cykgLSAxKSAmJgorCSAgICAgICB2YWwgPj0gMTAwMC4wZikgeworCQl2YWwgLz0gMTAwMC4w ZjsKKwkJaXRlcisrOworCX0KKworCXNucHJpbnRmKHJlc3VsdCwgc2l6ZW9mKHJlc3VsdCksICIl LjNmJXMiLCB2YWwsIHVuaXRzW2l0ZXJdKTsKKwlyZXR1cm4gcmVzdWx0OworfQorCiBzdGF0aWMg dm9pZAogX19wZXJmX2Nsb3NlKGludCBmZCkKIHsKQEAgLTE5OTMsMTUgKzIwMTEsMTIgQEAgZ2V0 X3RpbWUodm9pZCkKICAqIGtlcm5lbHNwYWNlLgogICovCiBzdGF0aWMgdm9pZAotdGVzdF9ibG9j a2luZyh2b2lkKQordGVzdF9ibG9ja2luZyh1aW50NjRfdCByZXF1ZXN0ZWRfb2FfcGVyaW9kLAor CSAgICAgIGJvb2wgc2V0X2tlcm5lbF9ocnRpbWVyLAorCSAgICAgIHVpbnQ2NF90IGtlcm5lbF9o cnRpbWVyLAorCSAgICAgIGJvb2wgdmVyaWZ5X2tlcm5lbF90aW1lKQogewotCS8qIH40MCBtaWxs aXNlY29uZHMKLQkgKgotCSAqIEhhdmluZyBhIHBlcmlvZCBzb21ld2hhdCA+IHN5c2NvbmYoX1ND X0NMS19UQ0spIGhlbHBzIHRvIHN0b3AKLQkgKiBzY2hlZHVsaW5nIChsaWFibGUgdG8ga2ljayBp biB3aGVuIHdlIG1ha2UgYmxvY2tpbmcgcG9sbCgpcy9yZWFkcykKLQkgKiBmcm9tIGludGVyZmVy aW5nIHdpdGggdGhlIHRlc3QuCi0JICovCi0JaW50IG9hX2V4cG9uZW50ID0gbWF4X29hX2V4cG9u ZW50X2Zvcl9wZXJpb2RfbHRlKDQwMDAwMDAwKTsKKwlpbnQgb2FfZXhwb25lbnQgPSBtYXhfb2Ff ZXhwb25lbnRfZm9yX3BlcmlvZF9sdGUocmVxdWVzdGVkX29hX3BlcmlvZCk7CiAJdWludDY0X3Qg b2FfcGVyaW9kID0gb2FfZXhwb25lbnRfdG9fbnMob2FfZXhwb25lbnQpOwogCXVpbnQ2NF90IHBy b3BlcnRpZXNbXSA9IHsKIAkJLyogSW5jbHVkZSBPQSByZXBvcnRzIGluIHNhbXBsZXMgKi8KQEAg LTIwMTEsMTEgKzIwMjYsMTYgQEAgdGVzdF9ibG9ja2luZyh2b2lkKQogCQlEUk1fSTkxNV9QRVJG X1BST1BfT0FfTUVUUklDU19TRVQsIHRlc3RfbWV0cmljX3NldF9pZCwKIAkJRFJNX0k5MTVfUEVS Rl9QUk9QX09BX0ZPUk1BVCwgdGVzdF9vYV9mb3JtYXQsCiAJCURSTV9JOTE1X1BFUkZfUFJPUF9P QV9FWFBPTkVOVCwgb2FfZXhwb25lbnQsCisKKwkJLyogS2VybmVsIGNvbmZpZ3VyYXRpb24gKG9w dGlvbmFsKSAqLworCQlEUk1fSTkxNV9QRVJGX1BST1BfUE9MTF9PQV9ERUxBWSwga2VybmVsX2hy dGltZXIsCiAJfTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcGVyZl9vcGVuX3BhcmFtIHBhcmFtID0gewog CQkuZmxhZ3MgPSBJOTE1X1BFUkZfRkxBR19GRF9DTE9FWEVDIHwKIAkJCUk5MTVfUEVSRl9GTEFH X0RJU0FCTEVELAotCQkubnVtX3Byb3BlcnRpZXMgPSBzaXplb2YocHJvcGVydGllcykgLyAxNiwK KwkJLm51bV9wcm9wZXJ0aWVzID0gKHNldF9rZXJuZWxfaHJ0aW1lciA/CisJCQkJICAgKEFSUkFZ X1NJWkUocHJvcGVydGllcykgLyAyKSA6CisJCQkJICAgKChBUlJBWV9TSVpFKHByb3BlcnRpZXMp IC8gMikgLSAxKSksCiAJCS5wcm9wZXJ0aWVzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihwcm9wZXJ0 aWVzKSwKIAl9OwogCXVpbnQ4X3QgYnVmWzEwMjQgKiAxMDI0XTsKQEAgLTIwMzcsNyArMjA1Nyw3 IEBAIHRlc3RfYmxvY2tpbmcodm9pZCkKIAkgKiB0aGUga25vd2xlZGdlIHRoYXQgdGhhdCB0aGUg ZHJpdmVyIHVzZXMgYSAyMDBIeiBocnRpbWVyICg1bXMgcGVyaW9kKQogCSAqIHRvIGNoZWNrIGZv ciBkYXRhIGFuZCBnaXZpbmcgc29tZSB0aW1lIHRvIHJlYWQoKS4KIAkgKi8KLQlpbnQgbWluX2l0 ZXJhdGlvbnMgPSAodGVzdF9kdXJhdGlvbl9ucyAvIChvYV9wZXJpb2QgKyA2MDAwMDAwdWxsKSk7 CisJaW50IG1pbl9pdGVyYXRpb25zID0gKHRlc3RfZHVyYXRpb25fbnMgLyAob2FfcGVyaW9kICsg a2VybmVsX2hydGltZXIgKyBrZXJuZWxfaHJ0aW1lciAvIDUpKTsKIAogCWludDY0X3Qgc3RhcnQs IGVuZDsKIAlpbnQgbiA9IDA7CkBAIC0yMDQ3LDkgKzIwNjcsMTAgQEAgdGVzdF9ibG9ja2luZyh2 b2lkKQogCXRpbWVzKCZzdGFydF90aW1lcyk7CiAKIAlpZ3RfZGVidWcoInRpY2sgbGVuZ3RoID0g JWRucywgdGVzdCBkdXJhdGlvbiA9ICUiUFJJdTY0Im5zLCBtaW4gaXRlci4gPSAlZCwiCi0JCSAg IiBlc3RpbWF0ZWQgbWF4IGl0ZXIuID0gJWQsIG9hX3BlcmlvZCA9ICUiUFJJdTY0Im5zXG4iLAor CQkgICIgZXN0aW1hdGVkIG1heCBpdGVyLiA9ICVkLCBvYV9wZXJpb2QgPSAlc1xuIiwKIAkJICAo aW50KXRpY2tfbnMsIHRlc3RfZHVyYXRpb25fbnMsCi0JCSAgbWluX2l0ZXJhdGlvbnMsIG1heF9p dGVyYXRpb25zLCBvYV9wZXJpb2QpOworCQkgIG1pbl9pdGVyYXRpb25zLCBtYXhfaXRlcmF0aW9u cywKKwkJICBwcmV0dHlfcHJpbnRfb2FfcGVyaW9kKG9hX3BlcmlvZCkpOwogCiAJLyogSW4gdGhl IGxvb3Agd2UgcGVyZm9ybSBibG9ja2luZyBwb2xscyB3aGlsZSB0aGUgSFcgaXMgc2FtcGxpbmcg YXQKIAkgKiB+MjVIeiwgd2l0aCB0aGUgZXhwZWN0YXRpb24gdGhhdCB3ZSBzcGVuZCBtb3N0IG9m IG91ciB0aW1lIGJsb2NrZWQKQEAgLTIxNDUsMjEgKzIxNjYsMjQgQEAgdGVzdF9ibG9ja2luZyh2 b2lkKQogCSAqLwogCWlndF9hc3NlcnQobiA+IChtaW5faXRlcmF0aW9ucyArIG5fZXh0cmFfaXRl cmF0aW9ucykpOwogCi0JaWd0X2Fzc2VydChrZXJuZWxfbnMgPD0gKHRlc3RfZHVyYXRpb25fbnMg LyAxMDB1bGwpKTsKKwkvKiBPbmx5IHZlcmlmeSB0aGUgYW1vdW50IG9mIHRpbWUgc3BlbnQgaW4g dGhlIGtlcm5lbCBpZgorCSAqIHJlcXVlc3RlZC4gV2l0aCB0aGUgZGVmYXVsdCBpOTE1L3BlcmYg dmFsdWUsIHdlJ3JlIHN1cHBvc2VkCisJICogdG8gc3BlbmQgbGVzcyB0aGFuIDElIG9mIHRoZSB0 aW1lIGRvaW5nIHdvcmssIGJ1dCB3aXRoIHVzZXIKKwkgKiBzcGVjaWZpZWQgdmFsdWVzIHRoaXMg aXMgb3V0IG9mIG91ciBoYW5kcy4KKwkgKi8KKwlpZiAodmVyaWZ5X2tlcm5lbF90aW1lKQorCQlp Z3RfYXNzZXJ0KGtlcm5lbF9ucyA8PSAodGVzdF9kdXJhdGlvbl9ucyAvIDEwMHVsbCkpOwogCiAJ X19wZXJmX2Nsb3NlKHN0cmVhbV9mZCk7CiB9CiAKIHN0YXRpYyB2b2lkCi10ZXN0X3BvbGxpbmco dm9pZCkKK3Rlc3RfcG9sbGluZyh1aW50NjRfdCByZXF1ZXN0ZWRfb2FfcGVyaW9kLAorCSAgICAg Ym9vbCBzZXRfa2VybmVsX2hydGltZXIsCisJICAgICB1aW50NjRfdCBrZXJuZWxfaHJ0aW1lciwK KwkgICAgIGJvb2wgdmVyaWZ5X2tlcm5lbF90aW1lKQogewotCS8qIH40MCBtaWxsaXNlY29uZHMK LQkgKgotCSAqIEhhdmluZyBhIHBlcmlvZCBzb21ld2hhdCA+IHN5c2NvbmYoX1NDX0NMS19UQ0sp IGhlbHBzIHRvIHN0b3AKLQkgKiBzY2hlZHVsaW5nIChsaWFibGUgdG8ga2ljayBpbiB3aGVuIHdl IG1ha2UgYmxvY2tpbmcgcG9sbCgpcy9yZWFkcykKLQkgKiBmcm9tIGludGVyZmVyaW5nIHdpdGgg dGhlIHRlc3QuCi0JICovCi0JaW50IG9hX2V4cG9uZW50ID0gbWF4X29hX2V4cG9uZW50X2Zvcl9w ZXJpb2RfbHRlKDQwMDAwMDAwKTsKKwlpbnQgb2FfZXhwb25lbnQgPSBtYXhfb2FfZXhwb25lbnRf Zm9yX3BlcmlvZF9sdGUocmVxdWVzdGVkX29hX3BlcmlvZCk7CiAJdWludDY0X3Qgb2FfcGVyaW9k ID0gb2FfZXhwb25lbnRfdG9fbnMob2FfZXhwb25lbnQpOwogCXVpbnQ2NF90IHByb3BlcnRpZXNb XSA9IHsKIAkJLyogSW5jbHVkZSBPQSByZXBvcnRzIGluIHNhbXBsZXMgKi8KQEAgLTIxNjksMTIg KzIxOTMsMTcgQEAgdGVzdF9wb2xsaW5nKHZvaWQpCiAJCURSTV9JOTE1X1BFUkZfUFJPUF9PQV9N RVRSSUNTX1NFVCwgdGVzdF9tZXRyaWNfc2V0X2lkLAogCQlEUk1fSTkxNV9QRVJGX1BST1BfT0Ff Rk9STUFULCB0ZXN0X29hX2Zvcm1hdCwKIAkJRFJNX0k5MTVfUEVSRl9QUk9QX09BX0VYUE9ORU5U LCBvYV9leHBvbmVudCwKKworCQkvKiBLZXJuZWwgY29uZmlndXJhdGlvbiAob3B0aW9uYWwpICov CisJCURSTV9JOTE1X1BFUkZfUFJPUF9QT0xMX09BX0RFTEFZLCBrZXJuZWxfaHJ0aW1lciwKIAl9 OwogCXN0cnVjdCBkcm1faTkxNV9wZXJmX29wZW5fcGFyYW0gcGFyYW0gPSB7CiAJCS5mbGFncyA9 IEk5MTVfUEVSRl9GTEFHX0ZEX0NMT0VYRUMgfAogCQkJSTkxNV9QRVJGX0ZMQUdfRElTQUJMRUQg fAogCQkJSTkxNV9QRVJGX0ZMQUdfRkRfTk9OQkxPQ0ssCi0JCS5udW1fcHJvcGVydGllcyA9IHNp emVvZihwcm9wZXJ0aWVzKSAvIDE2LAorCQkubnVtX3Byb3BlcnRpZXMgPSAoc2V0X2tlcm5lbF9o cnRpbWVyID8KKwkJCQkgICAoQVJSQVlfU0laRShwcm9wZXJ0aWVzKSAvIDIpIDoKKwkJCQkgICAo KEFSUkFZX1NJWkUocHJvcGVydGllcykgLyAyKSAtIDEpKSwKIAkJLnByb3BlcnRpZXNfcHRyID0g dG9fdXNlcl9wb2ludGVyKHByb3BlcnRpZXMpLAogCX07CiAJdWludDhfdCBidWZbMTAyNCAqIDEw MjRdOwpAQCAtMjE4OCwyNCArMjIxNywyNCBAQCB0ZXN0X3BvbGxpbmcodm9pZCkKIAlpbnQgbl9l eHRyYV9pdGVyYXRpb25zID0gMDsKIAogCS8qIEl0J3MgYSBiaXQgdHJpY2t5IHRvIHB1dCBhIGxv d2VyIGxpbWl0IGhlcmUsIGJ1dCB3ZSBleHBlY3QgYQotCSAqIHJlbGF0aXZlbHkgbG93IGxhdGVu Y3kgZm9yIHNlZWluZyByZXBvcnRzLCB3aGlsZSB3ZSBkb24ndCBjdXJyZW50bHkKLQkgKiBnaXZl IGFueSBjb250cm9sIG92ZXIgdGhpcyBpbiB0aGUgYXBpLgorCSAqIHJlbGF0aXZlbHkgbG93IGxh dGVuY3kgZm9yIHNlZWluZyByZXBvcnRzLgogCSAqCi0JICogV2UgYXNzdW1lIGEgbWF4aW11bSBs YXRlbmN5IG9mIDYgbWlsbGlzZWNvbmQgdG8gZGVsaXZlciBhIFBPTExJTiBhbmQKLQkgKiByZWFk KCkgYWZ0ZXIgYSBuZXcgc2FtcGxlIGlzIHdyaXR0ZW4gKDQ2bXMgcGVyIGl0ZXJhdGlvbikgY29u c2lkZXJpbmcKLQkgKiB0aGUga25vd2xlZGdlIHRoYXQgdGhhdCB0aGUgZHJpdmVyIHVzZXMgYSAy MDBIeiBocnRpbWVyICg1bXMgcGVyaW9kKQotCSAqIHRvIGNoZWNrIGZvciBkYXRhIGFuZCBnaXZp bmcgc29tZSB0aW1lIHRvIHJlYWQoKS4KKwkgKiBXZSBhc3N1bWUgYSBtYXhpbXVtIGxhdGVuY3kg b2Yga2VybmVsX2hydGltZXIgKyBzb21lIG1hcmdpbgorCSAqIHRvIGRlbGl2ZXIgYSBQT0xMSU4g YW5kIHJlYWQoKSBhZnRlciBhIG5ldyBzYW1wbGUgaXMKKwkgKiB3cml0dGVuICg0MG1zICsgaHJ0 aW1lciArIG1hcmdpbiBwZXIgaXRlcmF0aW9uKSBjb25zaWRlcmluZworCSAqIHRoZSBrbm93bGVk Z2UgdGhhdCB0aGF0IHRoZSBkcml2ZXIgdXNlcyBhIDIwMEh6IGhydGltZXIKKwkgKiAoNW1zIHBl cmlvZCkgdG8gY2hlY2sgZm9yIGRhdGEgYW5kIGdpdmluZyBzb21lIHRpbWUgdG8KKwkgKiByZWFk KCkuCiAJICovCi0JaW50IG1pbl9pdGVyYXRpb25zID0gKHRlc3RfZHVyYXRpb25fbnMgLyAob2Ff cGVyaW9kICsgNjAwMDAwMHVsbCkpOworCWludCBtaW5faXRlcmF0aW9ucyA9ICh0ZXN0X2R1cmF0 aW9uX25zIC8gKG9hX3BlcmlvZCArIChrZXJuZWxfaHJ0aW1lciArIGtlcm5lbF9ocnRpbWVyIC8g NSkpKTsKIAlpbnQ2NF90IHN0YXJ0LCBlbmQ7CiAJaW50IG4gPSAwOwogCiAJc3RyZWFtX2ZkID0g X19wZXJmX29wZW4oZHJtX2ZkLCAmcGFyYW0sIHRydWUgLyogcHJldmVudF9wbSAqLyk7CiAKLQl0 aW1lcygmc3RhcnRfdGltZXMpOwotCi0JaWd0X2RlYnVnKCJ0aWNrIGxlbmd0aCA9ICVkbnMsIHRl c3QgZHVyYXRpb24gPSAlIlBSSXU2NCJucywgbWluIGl0ZXIuID0gJWQsIG1heCBpdGVyLiA9ICVk XG4iLAotCQkgIChpbnQpdGlja19ucywgdGVzdF9kdXJhdGlvbl9ucywKKwlpZ3RfZGVidWcoInRp Y2sgbGVuZ3RoID0gJWRucywgb2EgcGVyaW9kID0gJXMsICIKKwkJICAidGVzdCBkdXJhdGlvbiA9 ICUiUFJJdTY0Im5zLCBtaW4gaXRlci4gPSAlZCwgbWF4IGl0ZXIuID0gJWRcbiIsCisJCSAgKGlu dCl0aWNrX25zLCBwcmV0dHlfcHJpbnRfb2FfcGVyaW9kKG9hX3BlcmlvZCksIHRlc3RfZHVyYXRp b25fbnMsCiAJCSAgbWluX2l0ZXJhdGlvbnMsIG1heF9pdGVyYXRpb25zKTsKIAogCS8qIEluIHRo ZSBsb29wIHdlIHBlcmZvcm0gYmxvY2tpbmcgcG9sbHMgd2hpbGUgdGhlIEhXIGlzIHNhbXBsaW5n IGF0CkBAIC0yMzEyLDggKzIzNDEsOCBAQCB0ZXN0X3BvbGxpbmcodm9pZCkKIAl1c2VyX25zID0g KGVuZF90aW1lcy50bXNfdXRpbWUgLSBzdGFydF90aW1lcy50bXNfdXRpbWUpICogdGlja19uczsK IAlrZXJuZWxfbnMgPSAoZW5kX3RpbWVzLnRtc19zdGltZSAtIHN0YXJ0X3RpbWVzLnRtc19zdGlt ZSkgKiB0aWNrX25zOwogCi0JaWd0X2RlYnVnKCIlZCBibG9ja2luZyByZWFkcyBkdXJpbmcgdGVz dCB3aXRoIH4yNUh6IE9BIHNhbXBsaW5nIChleHBlY3Qgbm8gbW9yZSB0aGFuICVkKVxuIiwKLQkJ ICBuLCBtYXhfaXRlcmF0aW9ucyk7CisJaWd0X2RlYnVnKCIlZCBibG9ja2luZyByZWFkcyBkdXJp bmcgdGVzdCB3aXRoICVzIE9BIHNhbXBsaW5nIChleHBlY3Qgbm8gbW9yZSB0aGFuICVkKVxuIiwK KwkJICBuLCBwcmV0dHlfcHJpbnRfb2FfcGVyaW9kKG9hX3BlcmlvZCksIG1heF9pdGVyYXRpb25z KTsKIAlpZ3RfZGVidWcoIiVkIGV4dHJhIGl0ZXJhdGlvbnMgc2Vlbiwgbm90IHJlbGF0ZWQgdG8g cGVyaW9kaWMgc2FtcGxpbmcgKGUuZy4gY29udGV4dCBzd2l0Y2hlcylcbiIsCiAJCSAgbl9leHRy YV9pdGVyYXRpb25zKTsKIAlpZ3RfZGVidWcoInRpbWUgaW4gdXNlcnNwYWNlID0gJSJQUkl1NjQi bnMgKCstJWRucykgKHN0YXJ0IHV0aW1lID0gJWQsIGVuZCA9ICVkKVxuIiwKQEAgLTIzMzMsNyAr MjM2MiwxMyBAQCB0ZXN0X3BvbGxpbmcodm9pZCkKIAkgKi8KIAlpZ3RfYXNzZXJ0KG4gPiAobWlu X2l0ZXJhdGlvbnMgKyBuX2V4dHJhX2l0ZXJhdGlvbnMpKTsKIAotCWlndF9hc3NlcnQoa2VybmVs X25zIDw9ICh0ZXN0X2R1cmF0aW9uX25zIC8gMTAwdWxsKSk7CisJLyogT25seSB2ZXJpZnkgdGhl IGFtb3VudCBvZiB0aW1lIHNwZW50IGluIHRoZSBrZXJuZWwgaWYKKwkgKiByZXF1ZXN0ZWQuIFdp dGggdGhlIGRlZmF1bHQgaTkxNS9wZXJmIHZhbHVlLCB3ZSdyZSBzdXBwb3NlZAorCSAqIHRvIHNw ZW5kIGxlc3MgdGhhbiAxJSBvZiB0aGUgdGltZSBkb2luZyB3b3JrLCBidXQgd2l0aCB1c2VyCisJ ICogc3BlY2lmaWVkIHZhbHVlcyB0aGlzIGlzIG91dCBvZiBvdXIgaGFuZHMuCisJICovCisJaWYg KHZlcmlmeV9rZXJuZWxfdGltZSkKKwkJaWd0X2Fzc2VydChrZXJuZWxfbnMgPD0gKHRlc3RfZHVy YXRpb25fbnMgLyAxMDB1bGwpKTsKIAogCV9fcGVyZl9jbG9zZShzdHJlYW1fZmQpOwogfQpAQCAt NDA4Myw2ICs0MTE4LDU0IEBAIHRlc3Rfc3lzY3RsX2RlZmF1bHRzKHZvaWQpCiAJaWd0X2Fzc2Vy dF9lcShtYXhfZnJlcSwgMTAwMDAwKTsKIH0KIAorc3RhdGljIHZvaWQKK3Rlc3RfaW52YWxpZF9w b2xsX2RlbGF5KHZvaWQpCit7CisJdWludDY0X3QgcHJvcGVydGllc1tdID0geworCQkvKiBJbmNs dWRlIE9BIHJlcG9ydHMgaW4gc2FtcGxlcyAqLworCQlEUk1fSTkxNV9QRVJGX1BST1BfU0FNUExF X09BLCB0cnVlLAorCisJCS8qIE9BIHVuaXQgY29uZmlndXJhdGlvbiAqLworCQlEUk1fSTkxNV9Q RVJGX1BST1BfT0FfTUVUUklDU19TRVQsIHRlc3RfbWV0cmljX3NldF9pZCwKKwkJRFJNX0k5MTVf UEVSRl9QUk9QX09BX0ZPUk1BVCwgdGVzdF9vYV9mb3JtYXQsCisJCURSTV9JOTE1X1BFUkZfUFJP UF9PQV9FWFBPTkVOVCwgb2FfZXhwXzFfbWlsbGlzZWMsCisJCURSTV9JOTE1X1BFUkZfUFJPUF9Q T0xMX09BX0RFTEFZLCAxMCAqIDEwMDAgLyogMTB1cyAqLywKKwl9OworCXN0cnVjdCBkcm1faTkx NV9wZXJmX29wZW5fcGFyYW0gcGFyYW0gPSB7CisJCS5mbGFncyA9IDAsCisJCS5udW1fcHJvcGVy dGllcyA9IEFSUkFZX1NJWkUocHJvcGVydGllcykgLyAyLAorCQkucHJvcGVydGllc19wdHIgPSB0 b191c2VyX3BvaW50ZXIocHJvcGVydGllcyksCisJfTsKKworCWRvX2lvY3RsX2Vycihkcm1fZmQs IERSTV9JT0NUTF9JOTE1X1BFUkZfT1BFTiwgJnBhcmFtLCBFSU5WQUwpOworfQorCitzdGF0aWMg Ym9vbAora2VybmVsX3N1cHBvcnRzX29wZW5fb3B0aW9uKGludCBmZCwgdWludDY0X3Qgb3B0aW9u LCB1aW50NjRfdCB2YWx1ZSkKK3sKKwl1aW50NjRfdCBwcm9wZXJ0aWVzW10gPSB7CisJCS8qIElu dGVudGlvbmFsbHkgd3JvbmcgaGFuZGxlICovCisJCURSTV9JOTE1X1BFUkZfUFJPUF9DVFhfSEFO RExFLCBVSU5UNjRfTUFYLAorCisJCURSTV9JOTE1X1BFUkZfUFJPUF9TQU1QTEVfT0EsIHRydWUs CisJCURSTV9JOTE1X1BFUkZfUFJPUF9PQV9NRVRSSUNTX1NFVCwgdGVzdF9tZXRyaWNfc2V0X2lk LAorCQlEUk1fSTkxNV9QRVJGX1BST1BfT0FfRk9STUFULCB0ZXN0X29hX2Zvcm1hdCwKKwkJRFJN X0k5MTVfUEVSRl9QUk9QX09BX0VYUE9ORU5ULCBtYXhfb2FfZXhwb25lbnRfZm9yX3BlcmlvZF9s dGUoNTAwMCksCisJCW9wdGlvbiwgdmFsdWUsCisJfTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcGVyZl9v cGVuX3BhcmFtIHBhcmFtID0geworCQkuZmxhZ3MgPSBJOTE1X1BFUkZfRkxBR19GRF9DTE9FWEVD LAorCQkubnVtX3Byb3BlcnRpZXMgPSBBUlJBWV9TSVpFKHByb3BlcnRpZXMpIC8gMiwKKwkJLnBy b3BlcnRpZXNfcHRyID0gdG9fdXNlcl9wb2ludGVyKHByb3BlcnRpZXMpLAorCX07CisJaW50IHJl dDsKKworCXJldCA9IGlndF9pb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfUEVSRl9PUEVOLCAmcGFy YW0pOworCWFzc2VydChyZXQgPT0gLTEpOworCisJcmV0dXJuIGVycm5vID09IEVOT0VOVDsKK30K KwogaWd0X21haW4KIHsKIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CkBAIC00MTY2LDExICs0 MjQ5LDUyIEBAIGlndF9tYWluCiAJaWd0X3N1YnRlc3QoImVuYWJsZS1kaXNhYmxlIikKIAkJdGVz dF9lbmFibGVfZGlzYWJsZSgpOwogCi0JaWd0X3N1YnRlc3QoImJsb2NraW5nIikKLQkJdGVzdF9i bG9ja2luZygpOworCWlndF9zdWJ0ZXN0KCJibG9ja2luZyIpIHsKKwkJdGVzdF9ibG9ja2luZyg0 MCAqIDEwMDAgKiAxMDAwIC8qIDQwbXMgb2EgcGVyaW9kICovLAorCQkJICAgICAgZmFsc2UgLyog c2V0X2tlcm5lbF9ocnRpbWVyICovLAorCQkJICAgICAgNSAqIDEwMDAgKiAxMDAwIC8qIGRlZmF1 bHQgNW1zLzIwMEh6IGhydGltZXIgKi8sCisJCQkgICAgICB0cnVlIC8qIHZlcmlmeV9rZXJuZWxf dGltZSAqLyk7CisJfQorCisJaWd0X3N1YnRlc3QoImJsb2NraW5nLXBhcmFtZXRlcml6ZWQiKSB7 CisJCWlndF9yZXF1aXJlKGtlcm5lbF9zdXBwb3J0c19vcGVuX29wdGlvbihkcm1fZmQsCisJCQkJ CQkJRFJNX0k5MTVfUEVSRl9QUk9QX1BPTExfT0FfREVMQVksCisJCQkJCQkJNDAgKiAxMDAwICog MTAwMCkpOworCisJCXRlc3RfYmxvY2tpbmcoMTAgKiAxMDAwICogMTAwMCAvKiAxMG1zIG9hIHBl cmlvZCAqLywKKwkJCSAgICAgIHRydWUgLyogc2V0X2tlcm5lbF9ocnRpbWVyICovLAorCQkJICAg ICAgNDAgKiAxMDAwICogMTAwMCAvKiBkZWZhdWx0IDQwbXMgaHJ0aW1lciAqLywKKwkJCSAgICAg IGZhbHNlIC8qIHZlcmlmeV9rZXJuZWxfdGltZSAqLyk7CisJCXRlc3RfYmxvY2tpbmcoNTAwICog MTAwMCAvKiA1MDB1cyBvYSBwZXJpb2QgKi8sCisJCQkgICAgICB0cnVlIC8qIHNldF9rZXJuZWxf aHJ0aW1lciAqLywKKwkJCSAgICAgIDEwMDAgKiAxMDAwIC8qIGRlZmF1bHQgMW1zIGhydGltZXIg Ki8sCisJCQkgICAgICBmYWxzZSAvKiB2ZXJpZnlfa2VybmVsX3RpbWUgKi8pOworCX0KKworCWln dF9zdWJ0ZXN0KCJwb2xsaW5nIikgeworCQl0ZXN0X3BvbGxpbmcoNDAgKiAxMDAwICogMTAwMCAv KiA0MG1zIG9hIHBlcmlvZCAqLywKKwkJCSAgICAgZmFsc2UgLyogc2V0X2tlcm5lbF9ocnRpbWVy ICovLAorCQkJICAgICA1ICogMTAwMCAqIDEwMDAgLyogZGVmYXVsdCA1bXMvMjAwSHogaHJ0aW1l ciAqLywKKwkJCSAgICAgdHJ1ZSAvKiB2ZXJpZnlfa2VybmVsX3RpbWUgKi8pOworCX0KKworCWln dF9zdWJ0ZXN0KCJwb2xsaW5nLXBhcmFtZXRlcml6ZWQiKSB7CisJCWlndF9yZXF1aXJlKGtlcm5l bF9zdXBwb3J0c19vcGVuX29wdGlvbihkcm1fZmQsCisJCQkJCQkJRFJNX0k5MTVfUEVSRl9QUk9Q X1BPTExfT0FfREVMQVksCisJCQkJCQkJNDAgKiAxMDAwICogMTAwMCkpOworCisJCXRlc3RfcG9s bGluZygxMCAqIDEwMDAgKiAxMDAwIC8qIDEwbXMgb2EgcGVyaW9kICovLAorCQkJICAgICB0cnVl IC8qIHNldF9rZXJuZWxfaHJ0aW1lciAqLywKKwkJCSAgICAgNDAgKiAxMDAwICogMTAwMCAvKiBk ZWZhdWx0IDQwbXMgaHJ0aW1lciAqLywKKwkJCSAgICAgZmFsc2UgLyogdmVyaWZ5X2tlcm5lbF90 aW1lICovKTsKKwkJdGVzdF9wb2xsaW5nKDUwMCAqIDEwMDAgLyogNTAwdXMgb2EgcGVyaW9kICov LAorCQkJICAgICB0cnVlIC8qIHNldF9rZXJuZWxfaHJ0aW1lciAqLywKKwkJCSAgICAgNTAwICog MTAwMCAvKiBkZWZhdWx0IDUwMHVzIGhydGltZXIgKi8sCisJCQkgICAgIGZhbHNlIC8qIHZlcmlm eV9rZXJuZWxfdGltZSAqLyk7CisJfQogCi0JaWd0X3N1YnRlc3QoInBvbGxpbmciKQotCQl0ZXN0 X3BvbGxpbmcoKTsKKwlpZ3Rfc3VidGVzdCgiaW52YWxpZC1wb2xsLWRlbGF5IikKKwkJdGVzdF9p bnZhbGlkX3BvbGxfZGVsYXkoKTsKIAogCWlndF9zdWJ0ZXN0KCJzaG9ydC1yZWFkcyIpCiAJCXRl c3Rfc2hvcnRfcmVhZHMoKTsKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pZ3QtZGV2Cg==