From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7FA606E9D3 for ; Tue, 19 Nov 2019 22:56:08 +0000 (UTC) From: Umesh Nerlige Ramappa Date: Tue, 19 Nov 2019 14:56:06 -0800 Message-Id: <20191119225607.11085-3-umesh.nerlige.ramappa@intel.com> In-Reply-To: <20191119225607.11085-1-umesh.nerlige.ramappa@intel.com> References: <20191119225607.11085-1-umesh.nerlige.ramappa@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3 3/4] test/perf: Add test for TGL OAR unit 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, Lionel G Landwerlin Cc: Chris Wilson List-ID: QWRkIGEgdGVzdCB0aGF0IG1lYXN1cmVzIHdvcmsgdXNpbmcgTUktUlBDIGZvciB0aGUgc3BlY2lm aWMgY29udGV4dAp3aXRob3V0IHVzaW5nIHJlcG9ydHMgZnJvbSB0aGUgT0EgYnVmZmVyLgoKVGln ZXJsYWtlIGludHJvZHVjZXMgYW4gT0EgdW5pdCB0aGF0IG1lYXN1cmVzIHdvcmsgc3BlY2lmaWMg dG8gcmVuZGVyCndvcmtsb2Fkcy4gVGhpcyBtZWFucyB3ZSBkbyBub3QgaGF2ZSB0byByZWx5IG9u IHJlcG9ydHMgZnJvbSB0aGUgT0EKYnVmZmVyIHRvIG5vcm1hbGl6ZSB0aGUgcmVwb3J0cyBvYnRh aW5lZCBmcm9tIE1JIFJFUE9SVCBQRVJGIENPVU5UCmFueW1vcmUuCgp2MjoKLSBBZGQgaWd0X2Ry b3Bfcm9vdCB0byBtYWtlIHRoZSB0ZXN0IHJ1biBpbiBub24tcHJpdmlsZWdlZCBtb2RlIChMaW9u ZWwpCi0gTW92ZSBwYXJhbWV0ZXIgdG8gX19wZXJmX29wZW4gaW5zaWRlIHRoZSBzYW1lIGZ1bmN0 aW9uIChMaW9uZWwpCgp2MzoKLSBBZGQgZGVzY3JpcHRpb24KClNpZ25lZC1vZmYtYnk6IFVtZXNo IE5lcmxpZ2UgUmFtYXBwYSA8dW1lc2gubmVybGlnZS5yYW1hcHBhQGludGVsLmNvbT4KLS0tCiB0 ZXN0cy9wZXJmLmMgfCAzMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMzM0IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS90ZXN0cy9wZXJmLmMgYi90ZXN0cy9wZXJmLmMKaW5kZXggNTA2YjY0ZWMuLmY4MzhkNGVm IDEwMDY0NAotLS0gYS90ZXN0cy9wZXJmLmMKKysrIGIvdGVzdHMvcGVyZi5jCkBAIC0zNjAwLDYg KzM2MDAsMzM0IEBAIGdlbjhfdGVzdF9zaW5nbGVfY3R4X3JlbmRlcl90YXJnZXRfd3JpdGVzX2Ff Y291bnRlcih2b2lkKQogCX0gd2hpbGUgKFdFWElUU1RBVFVTKGNoaWxkX3JldCkgPT0gRUFHQUlO KTsKIH0KIAorc3RhdGljIHZvaWQgZ2VuMTJfc2luZ2xlX2N0eF9oZWxwZXIodm9pZCkKK3sKKwl1 aW50NjRfdCBwcm9wZXJ0aWVzW10gPSB7CisJCS8qIEhhdmUgYSByYW5kb20gdmFsdWUgaGVyZSBm b3IgdGhlIGNvbnRleHQgaWQsIGJ1dCBpbml0aWFsaXplCisJCSAqIGl0IG9uY2UgeW91IGZpZ3Vy ZSBvdXQgdGhlIGNvbnRleHQgSUQgZm9yIHRoZSB3b3JrIHRvIGJlCisJCSAqIG1lYXN1cmVkCisJ CSAqLworCQlEUk1fSTkxNV9QRVJGX1BST1BfQ1RYX0hBTkRMRSwgVUlOVDY0X01BWCwKKworCQkv KiBPQSB1bml0IGNvbmZpZ3VyYXRpb246CisJCSAqIERSTV9JOTE1X1BFUkZfUFJPUF9TQU1QTEVf T0EgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkIGZvciBHZW4xMgorCQkgKiBiZWNhdXNlIHRoZSBPQVIg dW5pdCBpbmNyZW1lbnRzIGNvdW50ZXJzIG9ubHkgZm9yIHRoZQorCQkgKiByZWxldmFudCBjb250 ZXh0LiBObyBvdGhlciBwYXJhbWV0ZXJzIGFyZSBuZWVkZWQgc2luY2Ugd2UgZG8KKwkJICogbm90 IHJlbHkgb24gdGhlIE9BIGJ1ZmZlciBhbnltb3JlIHRvIG5vcm1hbGl6ZSB0aGUgY291bnRlcgor CQkgKiB2YWx1ZXMuCisJCSAqLworCQlEUk1fSTkxNV9QRVJGX1BST1BfT0FfTUVUUklDU19TRVQs IHRlc3RfbWV0cmljX3NldF9pZCwKKwkJRFJNX0k5MTVfUEVSRl9QUk9QX09BX0ZPUk1BVCwgdGVz dF9vYV9mb3JtYXQsCisJfTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcGVyZl9vcGVuX3BhcmFtIHBhcmFt ID0geworCQkuZmxhZ3MgPSBJOTE1X1BFUkZfRkxBR19GRF9DTE9FWEVDLAorCQkubnVtX3Byb3Bl cnRpZXMgPSBBUlJBWV9TSVpFKHByb3BlcnRpZXMpIC8gMiwKKwkJLnByb3BlcnRpZXNfcHRyID0g dG9fdXNlcl9wb2ludGVyKHByb3BlcnRpZXMpLAorCX07CisJZHJtX2ludGVsX2J1Zm1nciAqYnVm bWdyOworCWRybV9pbnRlbF9jb250ZXh0ICpjb250ZXh0MCwgKmNvbnRleHQxOworCXN0cnVjdCBp bnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2g7CisJc3RydWN0IGlndF9idWYgc3JjWzNdLCBkc3RbM107 CisJZHJtX2ludGVsX2JvICpibzsKKwl1aW50MzJfdCAqcmVwb3J0MF8zMiwgKnJlcG9ydDFfMzIs ICpyZXBvcnQyXzMyLCAqcmVwb3J0M18zMjsKKwl1aW50NjRfdCB0aW1lc3RhbXAwXzY0LCB0aW1l c3RhbXAxXzY0OworCXVpbnQzMl90IGRlbHRhX3RzNjQsIGRlbHRhX29hMzI7CisJdWludDY0X3Qg ZGVsdGFfdHM2NF9ucywgZGVsdGFfb2EzMl9uczsKKwl1aW50MzJfdCBkZWx0YV9kZWx0YTsKKwlp bnQgd2lkdGggPSA4MDA7CisJaW50IGhlaWdodCA9IDYwMDsKKyNkZWZpbmUgSU5WQUxJRF9DVFhf SUQgMHhmZmZmZmZmZgorCXVpbnQzMl90IGN0eDBfaWQgPSBJTlZBTElEX0NUWF9JRDsKKwl1aW50 MzJfdCBjdHgxX2lkID0gSU5WQUxJRF9DVFhfSUQ7CisJaW50IHJldDsKKwlzdHJ1Y3QgYWNjdW11 bGF0b3IgYWNjdW11bGF0b3IgPSB7CisJCS5mb3JtYXQgPSB0ZXN0X29hX2Zvcm1hdAorCX07CisK KwlidWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGRybV9mZCwgNDA5Nik7CisJZHJt X2ludGVsX2J1Zm1ncl9nZW1fZW5hYmxlX3JldXNlKGJ1Zm1ncik7CisKKwlmb3IgKGludCBpID0g MDsgaSA8IEFSUkFZX1NJWkUoc3JjKTsgaSsrKSB7CisJCXNjcmF0Y2hfYnVmX2luaXQoYnVmbWdy LCAmc3JjW2ldLCB3aWR0aCwgaGVpZ2h0LCAweGZmMDAwMGZmKTsKKwkJc2NyYXRjaF9idWZfaW5p dChidWZtZ3IsICZkc3RbaV0sIHdpZHRoLCBoZWlnaHQsIDB4MDBmZjAwZmYpOworCX0KKworCWJh dGNoID0gaW50ZWxfYmF0Y2hidWZmZXJfYWxsb2MoYnVmbWdyLCBkZXZpZCk7CisKKwljb250ZXh0 MCA9IGRybV9pbnRlbF9nZW1fY29udGV4dF9jcmVhdGUoYnVmbWdyKTsKKwlpZ3RfYXNzZXJ0KGNv bnRleHQwKTsKKworCWNvbnRleHQxID0gZHJtX2ludGVsX2dlbV9jb250ZXh0X2NyZWF0ZShidWZt Z3IpOworCWlndF9hc3NlcnQoY29udGV4dDEpOworCisJaWd0X2RlYnVnKCJzdWJtaXR0aW5nIHdh cm0gdXAgcmVuZGVyX2NvcHlcbiIpOworCisJLyogU3VibWl0IHNvbWUgZWFybHksIHVubWVhc3Vy ZWQsIHdvcmsgdG8gdGhlIGNvbnRleHQgd2Ugd2FudAorCSAqIHRvIG1lYXN1cmUgdG8gdHJ5IGFu ZCBjYXRjaCBpc3N1ZXMgd2l0aCBpOTE1LXBlcmYKKwkgKiBpbml0aWFsaXppbmcgdGhlIEhXIGNv bnRleHQgSUQgZm9yIGZpbHRlcmluZy4KKwkgKgorCSAqIFdlIGRvIHRoaXMgYmVjYXVzZSBpOTE1 LXBlcmYgc2luZ2xlIGNvbnRleHQgZmlsdGVyaW5nIGhhZAorCSAqIHByZXZpb3VzbHkgb25seSBy ZWxpZWQgb24gYSBob29rIGludG8gY29udGV4dCBwaW5uaW5nIHRvCisJICogaW5pdGlhbGl6ZSB0 aGUgSFcgY29udGV4dCBJRCwgaW5zdGVhZCBvZiBhbHNvIHRyeWluZyB0bworCSAqIGRldGVybWlu ZSB0aGUgSFcgSUQgd2hpbGUgb3BlbmluZyB0aGUgc3RyZWFtLCBpbiBjYXNlIGl0CisJICogaGFz IGFscmVhZHkgYmVlbiBwaW5uZWQuCisJICoKKwkgKiBUaGlzIHdhc24ndCBub3RpY2VkIGJ5IHRo ZSBwcmV2aW91cyB1bml0IHRlc3QgYmVjYXVzZSB3ZQorCSAqIHdlcmUgb3BlbmluZyB0aGUgc3Ry ZWFtIHdoaWxlIHRoZSBjb250ZXh0IGhhZG4ndCBiZWVuCisJICogdG91Y2hlZCBvciBwaW5uZWQg eWV0IGFuZCBzbyBpdCB3b3JrZWQgb3V0IGNvcnJlY3RseSB0byB3YWl0CisJICogZm9yIHRoZSBw aW5uaW5nIGhvb2suCisJICoKKwkgKiBOb3cgYSBidWdneSB2ZXJzaW9uIG9mIGk5MTUtcGVyZiB3 aWxsIGZhaWwgdG8gbWVhc3VyZQorCSAqIGFueXRoaW5nIGZvciBjb250ZXh0MCBvbmNlIHRoaXMg aW5pdGlhbCByZW5kZXJfY29weSgpIGVuZHMKKwkgKiB1cCBwaW5uaW5nIHRoZSBjb250ZXh0IHNp bmNlIHRoZXJlIHdvbid0IGV2ZXIgYmUgYSBwaW5uaW5nCisJICogaG9vayBjYWxsYmFjay4KKwkg Ki8KKwlyZW5kZXJfY29weShiYXRjaCwgY29udGV4dDAsCisJCSAgICAmc3JjWzBdLCAwLCAwLCB3 aWR0aCwgaGVpZ2h0LAorCQkgICAgJmRzdFswXSwgMCwgMCk7CisKKwkvKiBJbml0aWFsaXplIHRo ZSBjb250ZXh0IHBhcmFtZXRlciB0byB0aGUgcGVyZiBvcGVuIGlvY3RsIGhlcmUgKi8KKwlyZXQg PSBkcm1faW50ZWxfZ2VtX2NvbnRleHRfZ2V0X2lkKGNvbnRleHQwLCAmY3R4MF9pZCk7CisJaWd0 X2Fzc2VydF9lcShyZXQsIDApOworCWlndF9hc3NlcnRfbmVxKGN0eDBfaWQsIDB4ZmZmZmZmZmYp OworCXByb3BlcnRpZXNbMV0gPSBjdHgwX2lkOworCisJaWd0X2RlYnVnKCJvcGVuaW5nIGk5MTUt cGVyZiBzdHJlYW1cbiIpOworCXN0cmVhbV9mZCA9IF9fcGVyZl9vcGVuKGRybV9mZCwgJnBhcmFt LCBmYWxzZSk7CisKKwlibyA9IGRybV9pbnRlbF9ib19hbGxvYyhidWZtZ3IsICJtaV9ycGMgZGVz dCBibyIsIDQwOTYsIDY0KTsKKworCS8qIFNldCB3cml0ZSBkb21haW4gdG8gY3B1IGJyaWVmbHkg dG8gZmlsbCB0aGUgYnVmZmVyIHdpdGggODBzICovCisJcmV0ID0gZHJtX2ludGVsX2JvX21hcChi bywgdHJ1ZSk7CisJaWd0X2Fzc2VydF9lcShyZXQsIDApOworCW1lbXNldChiby0+dmlydHVhbCwg MHg4MCwgMjA0OCk7CisJbWVtc2V0KGJvLT52aXJ0dWFsICsgMjA0OCwgMCwgMjA0OCk7CisJZHJt X2ludGVsX2JvX3VubWFwKGJvKTsKKworCS8qIFN1Ym1pdCBhbiBtaS1ycGMgdG8gY29udGV4dDAg YmVmb3JlIG1lYXN1cmFibGUgd29yayAqLworI2RlZmluZSBCT19USU1FU1RBTVBfT0ZGU0VUMCAx MDI0CisjZGVmaW5lIEJPX1JFUE9SVF9PRkZTRVQwIDAKKyNkZWZpbmUgQk9fUkVQT1JUX0lEMCAw eGRlYWRiZWVmCisJZW1pdF9zdGFsbF90aW1lc3RhbXBfYW5kX3JwYyhiYXRjaCwKKwkJCQkgICAg IGJvLAorCQkJCSAgICAgQk9fVElNRVNUQU1QX09GRlNFVDAsCisJCQkJICAgICBCT19SRVBPUlRf T0ZGU0VUMCwKKwkJCQkgICAgIEJPX1JFUE9SVF9JRDApOworCWludGVsX2JhdGNoYnVmZmVyX2Zs dXNoX3dpdGhfY29udGV4dChiYXRjaCwgY29udGV4dDApOworCisJLyogVGhpcyBpcyB0aGUgd29y ay9jb250ZXh0IHRoYXQgaXMgbWVhc3VyZWQgZm9yIGNvdW50ZXIgaW5jcmVtZW50cyAqLworCXJl bmRlcl9jb3B5KGJhdGNoLCBjb250ZXh0MCwKKwkJICAgICZzcmNbMF0sIDAsIDAsIHdpZHRoLCBo ZWlnaHQsCisJCSAgICAmZHN0WzBdLCAwLCAwKTsKKwlpbnRlbF9iYXRjaGJ1ZmZlcl9mbHVzaF93 aXRoX2NvbnRleHQoYmF0Y2gsIGNvbnRleHQwKTsKKworCS8qIFN1Ym1pdCBhbiBtaS1ycGMgdG8g Y29udGV4dDEgYmVmb3JlIHdvcmsKKwkgKgorCSAqIE9uIGdlbjEyLCB0aGlzIG1lYXN1cmVtZW50 IHNob3VsZCBqdXN0IHlpZWxkIGNvdW50ZXJzIHRoYXQgYXJlCisJICogYWxsIHplcm9lcywgc2lu Y2UgdGhlIGNvdW50ZXJzIHdpbGwgb25seSBpbmNyZW1lbnQgZm9yIHRoZQorCSAqIGNvbnRleHQg cGFzc2VkIHRvIHBlcmYgb3BlbiBpb2N0bAorCSAqLworI2RlZmluZSBCT19USU1FU1RBTVBfT0ZG U0VUMiAxMDQwCisjZGVmaW5lIEJPX1JFUE9SVF9PRkZTRVQyIDUxMgorI2RlZmluZSBCT19SRVBP UlRfSUQyIDB4MDBjMGZmZWUKKwllbWl0X3N0YWxsX3RpbWVzdGFtcF9hbmRfcnBjKGJhdGNoLAor CQkJCSAgICAgYm8sCisJCQkJICAgICBCT19USU1FU1RBTVBfT0ZGU0VUMiwKKwkJCQkgICAgIEJP X1JFUE9SVF9PRkZTRVQyLAorCQkJCSAgICAgQk9fUkVQT1JUX0lEMik7CisJaW50ZWxfYmF0Y2hi dWZmZXJfZmx1c2hfd2l0aF9jb250ZXh0KGJhdGNoLCBjb250ZXh0MSk7CisKKwkvKiBTdWJtaXQg dHdvIGNvcGllcyBvbiB0aGUgb3RoZXIgY29udGV4dCB0byBhdm9pZCBhIGZhbHNlCisJICogcG9z aXRpdmUgaW4gY2FzZSB0aGUgZHJpdmVyIHNvbWVob3cgZW5kZWQgdXAgZmlsdGVyaW5nIGZvcgor CSAqIGNvbnRleHQxCisJICovCisJcmVuZGVyX2NvcHkoYmF0Y2gsIGNvbnRleHQxLAorCQkgICAg JnNyY1sxXSwgMCwgMCwgd2lkdGgsIGhlaWdodCwKKwkJICAgICZkc3RbMV0sIDAsIDApOworCXJl dCA9IGRybV9pbnRlbF9nZW1fY29udGV4dF9nZXRfaWQoY29udGV4dDEsICZjdHgxX2lkKTsKKwlp Z3RfYXNzZXJ0X2VxKHJldCwgMCk7CisJaWd0X2Fzc2VydF9uZXEoY3R4MV9pZCwgMHhmZmZmZmZm Zik7CisKKwlyZW5kZXJfY29weShiYXRjaCwgY29udGV4dDEsCisJCSAgICAmc3JjWzJdLCAwLCAw LCB3aWR0aCwgaGVpZ2h0LAorCQkgICAgJmRzdFsyXSwgMCwgMCk7CisJaW50ZWxfYmF0Y2hidWZm ZXJfZmx1c2hfd2l0aF9jb250ZXh0KGJhdGNoLCBjb250ZXh0MSk7CisKKwkvKiBTdWJtaXQgYW4g bWktcnBjIHRvIGNvbnRleHQxIGFmdGVyIGFsbCB3b3JrICovCisjZGVmaW5lIEJPX1RJTUVTVEFN UF9PRkZTRVQzIDEwNDgKKyNkZWZpbmUgQk9fUkVQT1JUX09GRlNFVDMgNzY4CisjZGVmaW5lIEJP X1JFUE9SVF9JRDMgMHgwMWMwZmZlZQorCWVtaXRfc3RhbGxfdGltZXN0YW1wX2FuZF9ycGMoYmF0 Y2gsCisJCQkJICAgICBibywKKwkJCQkgICAgIEJPX1RJTUVTVEFNUF9PRkZTRVQzLAorCQkJCSAg ICAgQk9fUkVQT1JUX09GRlNFVDMsCisJCQkJICAgICBCT19SRVBPUlRfSUQzKTsKKwlpbnRlbF9i YXRjaGJ1ZmZlcl9mbHVzaF93aXRoX2NvbnRleHQoYmF0Y2gsIGNvbnRleHQxKTsKKworCS8qIFN1 Ym1pdCBhbiBtaS1ycGMgdG8gY29udGV4dDAgYWZ0ZXIgYWxsIG1lYXN1cmFibGUgd29yayAqLwor I2RlZmluZSBCT19USU1FU1RBTVBfT0ZGU0VUMSAxMDMyCisjZGVmaW5lIEJPX1JFUE9SVF9PRkZT RVQxIDI1NgorI2RlZmluZSBCT19SRVBPUlRfSUQxIDB4YmVlZmJlZWYKKwllbWl0X3N0YWxsX3Rp bWVzdGFtcF9hbmRfcnBjKGJhdGNoLAorCQkJCSAgICAgYm8sCisJCQkJICAgICBCT19USU1FU1RB TVBfT0ZGU0VUMSwKKwkJCQkgICAgIEJPX1JFUE9SVF9PRkZTRVQxLAorCQkJCSAgICAgQk9fUkVQ T1JUX0lEMSk7CisJaW50ZWxfYmF0Y2hidWZmZXJfZmx1c2hfd2l0aF9jb250ZXh0KGJhdGNoLCBj b250ZXh0MCk7CisKKwkvKiBTZXQgd3JpdGUgZG9tYWluIHRvIG5vbmUgKi8KKwlyZXQgPSBkcm1f aW50ZWxfYm9fbWFwKGJvLCBmYWxzZSk7CisJaWd0X2Fzc2VydF9lcShyZXQsIDApOworCisJLyog U2FuaXR5IGNoZWNrIHJlcG9ydHMKKwkgKiByZXBvcnRYXzMyWzBdOiByZXBvcnQgaWQgcGFzc2Vk IHdpdGggbWktcnBjCisJICogcmVwb3J0WF8zMlsxXTogdGltZXN0YW1wCisJICogcmVwb3J0WF8z MlsyXTogY29udGV4dCBpZAorCSAqCisJICogcmVwb3J0MF8zMjogc3RhcnQgb2YgbWVhc3VyYWJs ZSB3b3JrCisJICogcmVwb3J0MV8zMjogZW5kIG9mIG1lYXN1cmFibGUgd29yaworCSAqIHJlcG9y dDJfMzI6IHN0YXJ0IG9mIG90aGVyIHdvcmsKKwkgKiByZXBvcnQzXzMyOiBlbmQgb2Ygb3RoZXIg d29yaworCSAqLworCXJlcG9ydDBfMzIgPSBiby0+dmlydHVhbDsKKwlpZ3RfYXNzZXJ0X2VxKHJl cG9ydDBfMzJbMF0sIDB4ZGVhZGJlZWYpOworCWlndF9hc3NlcnRfbmVxKHJlcG9ydDBfMzJbMV0s IDApOworCWN0eDBfaWQgPSByZXBvcnQwXzMyWzJdOworCWlndF9kZWJ1ZygiTUlfUlBDKHN0YXJ0 KSBDVFggSUQ6ICV1XG4iLCBjdHgwX2lkKTsKKwlkdW1wX3JlcG9ydChyZXBvcnQwXzMyLCA2NCwg InJlcG9ydDBfMzIiKTsKKworCXJlcG9ydDFfMzIgPSByZXBvcnQwXzMyICsgNjQ7CisJaWd0X2Fz c2VydF9lcShyZXBvcnQxXzMyWzBdLCAweGJlZWZiZWVmKTsKKwlpZ3RfYXNzZXJ0X25lcShyZXBv cnQxXzMyWzFdLCAwKTsKKwljdHgxX2lkID0gcmVwb3J0MV8zMlsyXTsKKwlkdW1wX3JlcG9ydChy ZXBvcnQxXzMyLCA2NCwgInJlcG9ydDFfMzIiKTsKKworCS8qIFZlcmlmeSB0aGF0IGNvdW50ZXJz IGluIGNvbnRleHQxIGFyZSBhbGwgemVyb2VzICovCisJcmVwb3J0Ml8zMiA9IHJlcG9ydDBfMzIg KyAxMjg7CisJaWd0X2Fzc2VydF9lcShyZXBvcnQyXzMyWzBdLCAweDAwYzBmZmVlKTsKKwlpZ3Rf YXNzZXJ0X25lcShyZXBvcnQyXzMyWzFdLCAwKTsKKwlkdW1wX3JlcG9ydChyZXBvcnQyXzMyLCA2 NCwgInJlcG9ydDJfMzIiKTsKKwlpZ3RfYXNzZXJ0X2VxKDAsIG1lbWNtcCgmcmVwb3J0Ml8zMls0 XSwKKwkJCQliby0+dmlydHVhbCArIDIwNDgsCisJCQkJMjQwKSk7CisKKwlyZXBvcnQzXzMyID0g cmVwb3J0MF8zMiArIDE5MjsKKwlpZ3RfYXNzZXJ0X2VxKHJlcG9ydDNfMzJbMF0sIDB4MDFjMGZm ZWUpOworCWlndF9hc3NlcnRfbmVxKHJlcG9ydDNfMzJbMV0sIDApOworCWR1bXBfcmVwb3J0KHJl cG9ydDNfMzIsIDY0LCAicmVwb3J0M18zMiIpOworCWlndF9hc3NlcnRfZXEoMCwgbWVtY21wKCZy ZXBvcnQzXzMyWzRdLAorCQkJCWJvLT52aXJ0dWFsICsgMjA0OCwKKwkJCQkyNDApKTsKKworCS8q IEFjY3VtdWxhdGUgZGVsdGFzIGZvciBjb3VudGVycyAtIEEwLCBBMjEgYW5kIEEyNiAqLworCW1l bXNldChhY2N1bXVsYXRvci5kZWx0YXMsIDAsIHNpemVvZihhY2N1bXVsYXRvci5kZWx0YXMpKTsK KwlhY2N1bXVsYXRlX3JlcG9ydHMoJmFjY3VtdWxhdG9yLCByZXBvcnQwXzMyLCByZXBvcnQxXzMy KTsKKwlpZ3RfZGVidWcoInRvdGFsOiBBMCA9ICUiUFJJdTY0IiwgQTIxID0gJSJQUkl1NjQiLCBB MjYgPSAlIlBSSXU2NCJcbiIsCisJCQlhY2N1bXVsYXRvci5kZWx0YXNbMiArIDBdLAorCQkJYWNj dW11bGF0b3IuZGVsdGFzWzIgKyAyMV0sCisJCQlhY2N1bXVsYXRvci5kZWx0YXNbMiArIDI2XSk7 CisKKwlpZ3RfZGVidWcoIm9hX3RpbWVzdGFtcDMyIDAgPSAldVxuIiwgcmVwb3J0MF8zMlsxXSk7 CisJaWd0X2RlYnVnKCJvYV90aW1lc3RhbXAzMiAxID0gJXVcbiIsIHJlcG9ydDFfMzJbMV0pOwor CWlndF9kZWJ1ZygiY3R4X2lkIDAgPSAldVxuIiwgcmVwb3J0MF8zMlsyXSk7CisJaWd0X2RlYnVn KCJjdHhfaWQgMSA9ICV1XG4iLCByZXBvcnQxXzMyWzJdKTsKKworCS8qIFRoZSBkZWx0YSBhcyBj YWxjdWxhdGVkIHZpYSB0aGUgUElQRV9DT05UUk9MIHRpbWVzdGFtcCBvcgorCSAqIHRoZSBPQSBy ZXBvcnQgdGltZXN0YW1wcyBzaG91bGQgYmUgYWxtb3N0IGlkZW50aWNhbCBidXQKKwkgKiBhbGxv dyBhIDUwMCBuYW5vc2Vjb25kcyBtYXJnaW4uCisJICovCisJdGltZXN0YW1wMF82NCA9ICoodWlu dDY0X3QgKikoKCh1aW50OF90ICopYm8tPnZpcnR1YWwpICsgQk9fVElNRVNUQU1QX09GRlNFVDAp OworCXRpbWVzdGFtcDFfNjQgPSAqKHVpbnQ2NF90ICopKCgodWludDhfdCAqKWJvLT52aXJ0dWFs KSArIEJPX1RJTUVTVEFNUF9PRkZTRVQxKTsKKworCWlndF9kZWJ1ZygidHNfdGltZXN0YW1wNjQg MCA9ICUiUFJJdTY0IlxuIiwgdGltZXN0YW1wMF82NCk7CisJaWd0X2RlYnVnKCJ0c190aW1lc3Rh bXA2NCAxID0gJSJQUkl1NjQiXG4iLCB0aW1lc3RhbXAxXzY0KTsKKworCWRlbHRhX3RzNjQgPSB0 aW1lc3RhbXAxXzY0IC0gdGltZXN0YW1wMF82NDsKKwlkZWx0YV9vYTMyID0gcmVwb3J0MV8zMlsx XSAtIHJlcG9ydDBfMzJbMV07CisKKwkvKiBTYW5pdHkgY2hlY2sgdGhhdCB3ZSBjYW4gcGFzcyB0 aGUgZGVsdGEgdG8gdGltZWJhc2Vfc2NhbGUgKi8KKwlpZ3RfYXNzZXJ0KGRlbHRhX3RzNjQgPCBV SU5UMzJfTUFYKTsKKwlkZWx0YV9vYTMyX25zID0gdGltZWJhc2Vfc2NhbGUoZGVsdGFfb2EzMik7 CisJZGVsdGFfdHM2NF9ucyA9IHRpbWViYXNlX3NjYWxlKGRlbHRhX3RzNjQpOworCisJaWd0X2Rl YnVnKCJvYTMyIGRlbHRhID0gJXUsID0gJXVuc1xuIiwKKwkJCWRlbHRhX29hMzIsICh1bnNpZ25l ZClkZWx0YV9vYTMyX25zKTsKKwlpZ3RfZGVidWcoInRzNjQgZGVsdGEgPSAldSwgPSAldW5zXG4i LAorCQkJZGVsdGFfdHM2NCwgKHVuc2lnbmVkKWRlbHRhX3RzNjRfbnMpOworCisJZGVsdGFfZGVs dGEgPSBkZWx0YV90czY0X25zID4gZGVsdGFfb2EzMl9ucyA/CisJCSAgICAgIChkZWx0YV90czY0 X25zIC0gZGVsdGFfb2EzMl9ucykgOgorCQkgICAgICAoZGVsdGFfb2EzMl9ucyAtIGRlbHRhX3Rz NjRfbnMpOworCWlmIChkZWx0YV9kZWx0YSA+IDUwMCkgeworCQlpZ3RfZGVidWcoImRlbHRhX2Rl bHRhIGV4Y2VlZHMgbWFyZ2luLCBza2lwcGluZy4uXG4iKTsKKwkJZXhpdChFQUdBSU4pOworCX0K KworCWlndF9kZWJ1ZygibiBzYW1wbGVzIHdyaXR0ZW4gPSAlIlBSSXU2NCIvJSJQUkl1NjQiICgl aXglaSlcbiIsCisJCSAgYWNjdW11bGF0b3IuZGVsdGFzWzIgKyAyMV0sCisJCSAgYWNjdW11bGF0 b3IuZGVsdGFzWzIgKyAyNl0sCisJCSAgd2lkdGgsIGhlaWdodCk7CisJYWNjdW11bGF0b3JfcHJp bnQoJmFjY3VtdWxhdG9yLCAiZmlsdGVyZWQiKTsKKworCS8qIFZlcmlmeSB0aGF0IHRoZSB3b3Jr IGFjdHVhbGx5IGhhcHBlbmVkIGJ5IGNvbXBhcmluZyB0aGUgc3JjCisJICogYW5kIGRzdCBidWZm ZXJzCisJICovCisJcmV0ID0gZHJtX2ludGVsX2JvX21hcChzcmNbMF0uYm8sIGZhbHNlKTsKKwlp Z3RfYXNzZXJ0X2VxKHJldCwgMCk7CisJcmV0ID0gZHJtX2ludGVsX2JvX21hcChkc3RbMF0uYm8s IGZhbHNlKTsKKwlpZ3RfYXNzZXJ0X2VxKHJldCwgMCk7CisKKwlyZXQgPSBtZW1jbXAoc3JjWzBd LmJvLT52aXJ0dWFsLCBkc3RbMF0uYm8tPnZpcnR1YWwsIDQgKiB3aWR0aCAqIGhlaWdodCk7CisJ aWYgKHJldCAhPSAwKSB7CisJCWFjY3VtdWxhdG9yX3ByaW50KCZhY2N1bXVsYXRvciwgInRvdGFs Iik7CisJCWV4aXQoRUFHQUlOKTsKKwl9CisKKwlkcm1faW50ZWxfYm9fdW5tYXAoc3JjWzBdLmJv KTsKKwlkcm1faW50ZWxfYm9fdW5tYXAoZHN0WzBdLmJvKTsKKworCS8qIENoZWNrIHRoYXQgdGhp cyB0ZXN0IHBhc3NlZC4gVGhlIHRlc3QgbWVhc3VyZXMgdGhlIG51bWJlciBvZiAyeDIKKwkgKiBz YW1wbGVzIHdyaXR0ZW4gdG8gdGhlIHJlbmRlciB0YXJnZXQgdXNpbmcgdGhlIGNvdW50ZXIgQTI2 LiBGb3IKKwkgKiBPQVIsIHRoaXMgY291bnRlciB3aWxsIG9ubHkgaGF2ZSBpbmNyZW1lbnRzIHJl bGV2YW50IHRvIHRoaXMgc3BlY2lmaWMKKwkgKiBjb250ZXh0LiBUaGUgdmFsdWUgZXF1YWxzIHRo ZSB3aWR0aCAqIGhlaWdodCBvZiB0aGUgcmVuZGVyZWQgd29yay4KKwkgKi8KKwlpZ3RfYXNzZXJ0 X2VxKGFjY3VtdWxhdG9yLmRlbHRhc1syICsgMjZdLCB3aWR0aCAqIGhlaWdodCk7CisKKwkvKiBD bGVhbiB1cCAqLworCWZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRShzcmMpOyBpKyspIHsK KwkJZHJtX2ludGVsX2JvX3VucmVmZXJlbmNlKHNyY1tpXS5ibyk7CisJCWRybV9pbnRlbF9ib191 bnJlZmVyZW5jZShkc3RbaV0uYm8pOworCX0KKworCWRybV9pbnRlbF9ib191bm1hcChibyk7CisJ ZHJtX2ludGVsX2JvX3VucmVmZXJlbmNlKGJvKTsKKwlpbnRlbF9iYXRjaGJ1ZmZlcl9mcmVlKGJh dGNoKTsKKwlkcm1faW50ZWxfZ2VtX2NvbnRleHRfZGVzdHJveShjb250ZXh0MCk7CisJZHJtX2lu dGVsX2dlbV9jb250ZXh0X2Rlc3Ryb3koY29udGV4dDEpOworCWRybV9pbnRlbF9idWZtZ3JfZGVz dHJveShidWZtZ3IpOworCV9fcGVyZl9jbG9zZShzdHJlYW1fZmQpOworfQorCitzdGF0aWMgdm9p ZAorZ2VuMTJfdGVzdF9zaW5nbGVfY3R4X3JlbmRlcl90YXJnZXRfd3JpdGVzX2FfY291bnRlcih2 b2lkKQoreworCWludCBjaGlsZF9yZXQ7CisJc3RydWN0IGlndF9oZWxwZXJfcHJvY2VzcyBjaGls ZCA9IHt9OworCisJLyogRW5zdXJlIHBlcmZfc3RyZWFtX3BhcmFub2lkIGlzIHNldCB0byAxIGJ5 IGRlZmF1bHQgKi8KKwl3cml0ZV91NjRfZmlsZSgiL3Byb2Mvc3lzL2Rldi9pOTE1L3BlcmZfc3Ry ZWFtX3BhcmFub2lkIiwgMSk7CisKKwlkbyB7CisJCWlndF9mb3JrX2hlbHBlcigmY2hpbGQpIHsK KwkJCWlndF9kcm9wX3Jvb3QoKTsKKwkJCWdlbjEyX3NpbmdsZV9jdHhfaGVscGVyKCk7CisJCX0K KwkJY2hpbGRfcmV0ID0gaWd0X3dhaXRfaGVscGVyKCZjaGlsZCk7CisJCWlndF9hc3NlcnQoV0VY SVRTVEFUVVMoY2hpbGRfcmV0KSA9PSBFQUdBSU4gfHwKKwkJCSAgIFdFWElUU1RBVFVTKGNoaWxk X3JldCkgPT0gMCk7CisJfSB3aGlsZSAoV0VYSVRTVEFUVVMoY2hpbGRfcmV0KSA9PSBFQUdBSU4p OworfQorCiBzdGF0aWMgdW5zaWduZWQgbG9uZyByYzZfcmVzaWRlbmN5X21zKHZvaWQpCiB7CiAJ cmV0dXJuIHN5c2ZzX3JlYWQoInBvd2VyL3JjNl9yZXNpZGVuY3lfbXMiKTsKQEAgLTQyMjUsNiAr NDU1MywxMiBAQCBpZ3RfbWFpbgogCQlnZW44X3Rlc3Rfc2luZ2xlX2N0eF9yZW5kZXJfdGFyZ2V0 X3dyaXRlc19hX2NvdW50ZXIoKTsKIAl9CiAKKwlpZ3Rfc3VidGVzdCgiZ2VuMTItdW5wcml2aWxl Z2VkLXNpbmdsZS1jdHgtY291bnRlcnMiKSB7CisJCWlndF9kZXNjcmliZSgiTWVhc3VyZSBwZXJm b3JtYW5jZSBmb3IgYSBzcGVjaWZpYyBjb250ZXh0IHVzaW5nIE9BUiBpbiBHZW4gMTIiKTsKKwkJ aWd0X3JlcXVpcmUoaW50ZWxfZ2VuKGRldmlkKSA+PSAxMik7CisJCWdlbjEyX3Rlc3Rfc2luZ2xl X2N0eF9yZW5kZXJfdGFyZ2V0X3dyaXRlc19hX2NvdW50ZXIoKTsKKwl9CisKIAlpZ3Rfc3VidGVz dCgicmM2LWRpc2FibGUiKQogCQl0ZXN0X3JjNl9kaXNhYmxlKCk7CiAKLS0gCjIuMjMuMAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWls aW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2