From mboxrd@z Thu Jan 1 00:00:00 1970 From: Umesh Nerlige Ramappa Subject: [PATCH 2/2] drm/i915/perf: Configure OAR for specific context Date: Thu, 14 Nov 2019 11:21:14 -0800 Message-ID: <20191114192114.61547-2-umesh.nerlige.ramappa@intel.com> References: <20191114192114.61547-1-umesh.nerlige.ramappa@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7DFA86EEBD for ; Thu, 14 Nov 2019 19:22:12 +0000 (UTC) In-Reply-To: <20191114192114.61547-1-umesh.nerlige.ramappa@intel.com> 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, Lionel G Landwerlin , Chris Wilson List-Id: intel-gfx@lists.freedesktop.org R2VuMTIgc3VwcG9ydHMgc2F2aW5nL3Jlc3RvcmluZyByZW5kZXIgY291bnRlcnMgcGVyIGNvbnRl eHQuIEFwcGx5IE9BUgpjb25maWd1cmF0aW9uIG9ubHkgZm9yIHRoZSBjb250ZXh0IHRoYXQgaXMg cGFzc2VkIGluIHRvIHBlcmYuCgp2MjoKLSBGaXggT0FDVFhDT05UUk9MIHZhbHVlIHRvIG9ubHkg c3RvcC9yZXN1bWUgY291bnRlcnMuCi0gUmVtb3ZlIGdlbjEyX3VwZGF0ZV9yZWdfc3RhdGVfdW5s b2NrZWQgYXMgcG93ZXIgc3RhdGUgaXMgYWxyZWFkeQogIGFwcGxpZWQgYnkgdGhlIGNhbGxlci4K ClNpZ25lZC1vZmYtYnk6IFVtZXNoIE5lcmxpZ2UgUmFtYXBwYSA8dW1lc2gubmVybGlnZS5yYW1h cHBhQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyB8IDE5 MyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTA4IGlu c2VydGlvbnMoKyksIDg1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGVyZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKaW5k ZXggMjIxYzEwOTBhZTkzLi4yZjBiZTVmYmVmNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGVyZi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5j CkBAIC0yMDc4LDIwICsyMDc4LDEyIEBAIGdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChj b25zdCBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJdTMyICpyZWdfc3RhdGUgPSBjZS0+bHJj X3JlZ19zdGF0ZTsKIAlpbnQgaTsKIAotCWlmIChJU19HRU4oc3RyZWFtLT5wZXJmLT5pOTE1LCAx MikpIHsKLQkJdTMyIGZvcm1hdCA9IHN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdDsKKwlyZWdfc3Rh dGVbY3R4X29hY3R4Y3RybCArIDFdID0KKwkJKHN0cmVhbS0+cGVyaW9kX2V4cG9uZW50IDw8IEdF TjhfT0FfVElNRVJfUEVSSU9EX1NISUZUKSB8CisJCShzdHJlYW0tPnBlcmlvZGljID8gR0VOOF9P QV9USU1FUl9FTkFCTEUgOiAwKSB8CisJCUdFTjhfT0FfQ09VTlRFUl9SRVNVTUU7CiAKLQkJcmVn X3N0YXRlW2N0eF9vYWN0eGN0cmwgKyAxXSA9Ci0JCQkoZm9ybWF0IDw8IEdFTjEyX09BUl9PQUNP TlRST0xfQ09VTlRFUl9GT1JNQVRfU0hJRlQpIHwKLQkJCShzdHJlYW0tPm9hX2NvbmZpZyA/IEdF TjEyX09BUl9PQUNPTlRST0xfQ09VTlRFUl9FTkFCTEUgOiAwKTsKLQl9IGVsc2UgewotCQlyZWdf c3RhdGVbY3R4X29hY3R4Y3RybCArIDFdID0KLQkJCShzdHJlYW0tPnBlcmlvZF9leHBvbmVudCA8 PCBHRU44X09BX1RJTUVSX1BFUklPRF9TSElGVCkgfAotCQkJKHN0cmVhbS0+cGVyaW9kaWMgPyBH RU44X09BX1RJTUVSX0VOQUJMRSA6IDApIHwKLQkJCUdFTjhfT0FfQ09VTlRFUl9SRVNVTUU7Ci0J fQotCi0JZm9yIChpID0gMDsgISFjdHhfZmxleGV1MCAmJiBpIDwgQVJSQVlfU0laRShmbGV4X3Jl Z3MpOyBpKyspCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmxleF9yZWdzKTsgaSsrKQog CQlyZWdfc3RhdGVbY3R4X2ZsZXhldTAgKyBpICogMiArIDFdID0KIAkJCW9hX2NvbmZpZ19mbGV4 X3JlZyhzdHJlYW0tPm9hX2NvbmZpZywgZmxleF9yZWdzW2ldKTsKIApAQCAtMjIyNCwzNCArMjIx Niw0OSBAQCBzdGF0aWMgaW50IGdlbjhfY29uZmlndXJlX2NvbnRleHQoc3RydWN0IGk5MTVfZ2Vt X2NvbnRleHQgKmN0eCwKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgaW50IGdlbjEyX2VtaXRf b2FyX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIGJvb2wgZW5hYmxlKQorc3RhdGlj IGludCBnZW4xMl9jb25maWd1cmVfb2FyX2NvbnRleHQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0g KnN0cmVhbSwgYm9vbCBlbmFibGUpCiB7Ci0Jc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Ci0JdTMy ICpjczsKLQlpbnQgZXJyID0gMDsKLQotCXJxID0gaTkxNV9yZXF1ZXN0X2NyZWF0ZShjZSk7Ci0J aWYgKElTX0VSUihycSkpCi0JCXJldHVybiBQVFJfRVJSKHJxKTsKKwlpbnQgZXJyOworCXN0cnVj dCBpbnRlbF9jb250ZXh0ICpjZSA9IHN0cmVhbS0+cGlubmVkX2N0eDsKKwlzdHJ1Y3QgZmxleCBy ZWdzX2NvbnRleHRbXSA9IHsKKwkJeworCQkJR0VOOF9PQUNUWENPTlRST0wsCisJCQlzdHJlYW0t PnBlcmYtPmN0eF9vYWN0eGN0cmxfb2Zmc2V0ICsgMSwKKwkJCWVuYWJsZSA/IEdFTjhfT0FfQ09V TlRFUl9SRVNVTUUgOiAwLAorCQl9LAorCX07CisJc3RydWN0IGZsZXggcmVnc19scmlbXSA9IHsK KwkJeworCQkJR0VOMTJfT0FSX09BQ09OVFJPTCwKKwkJfSwKKwkJeworCQkJUklOR19DT05URVhU X0NPTlRST0woY2UtPmVuZ2luZS0+bW1pb19iYXNlKSwKKwkJfSwKKwl9OworCXUzMiBmb3JtYXQg PSBzdHJlYW0tPm9hX2J1ZmZlci5mb3JtYXQ7CiAKLQljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEs IDQpOwotCWlmIChJU19FUlIoY3MpKSB7Ci0JCWVyciA9IFBUUl9FUlIoY3MpOwotCQlnb3RvIG91 dDsKLQl9CisJcmVnc19scmlbMF0udmFsdWUgPQorCQkoZm9ybWF0IDw8IEdFTjEyX09BUl9PQUNP TlRST0xfQ09VTlRFUl9GT1JNQVRfU0hJRlQpIHwKKwkJKGVuYWJsZSA/IEdFTjEyX09BUl9PQUNP TlRST0xfQ09VTlRFUl9FTkFCTEUgOiAwKTsKIAotCSpjcysrID0gTUlfTE9BRF9SRUdJU1RFUl9J TU0oMSk7Ci0JKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChSSU5HX0NPTlRFWFRfQ09OVFJP TChjZS0+ZW5naW5lLT5tbWlvX2Jhc2UpKTsKLQkqY3MrKyA9IF9NQVNLRURfRklFTEQoR0VOMTJf Q1RYX0NUUkxfT0FSX0NPTlRFWFRfRU5BQkxFLAotCQkJICAgICAgZW5hYmxlID8gR0VOMTJfQ1RY X0NUUkxfT0FSX0NPTlRFWFRfRU5BQkxFIDogMCk7Ci0JKmNzKysgPSBNSV9OT09QOworCXJlZ3Nf bHJpWzFdLnZhbHVlID0KKwkJX01BU0tFRF9GSUVMRChHRU4xMl9DVFhfQ1RSTF9PQVJfQ09OVEVY VF9FTkFCTEUsCisJCQkgICAgICBlbmFibGUgPworCQkJICAgICAgR0VOMTJfQ1RYX0NUUkxfT0FS X0NPTlRFWFRfRU5BQkxFIDoKKwkJCSAgICAgIDApOwogCi0JaW50ZWxfcmluZ19hZHZhbmNlKHJx LCBjcyk7CisJLyogTW9kaWZ5IHRoZSBjb250ZXh0IGltYWdlIG9mIHBpbm5lZCBjb250ZXh0IHdp dGggcmVnc19jb250ZXh0Ki8KKwllcnIgPSBpbnRlbF9jb250ZXh0X2xvY2tfcGlubmVkKGNlKTsK KwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOwogCi1vdXQ6Ci0JaTkxNV9yZXF1ZXN0X2FkZChycSk7 CisJZXJyID0gZ2VuOF9tb2RpZnlfY29udGV4dChjZSwgcmVnc19jb250ZXh0LCBBUlJBWV9TSVpF KHJlZ3NfY29udGV4dCkpOworCWludGVsX2NvbnRleHRfdW5sb2NrX3Bpbm5lZChjZSk7CisJaWYg KGVycikKKwkJcmV0dXJuIGVycjsKIAotCXJldHVybiBlcnI7CisJLyogQXBwbHkgcmVnc19scmkg dXNpbmcgTFJJIHdpdGggcGlubmVkIGNvbnRleHQgKi8KKwlyZXR1cm4gZ2VuOF9tb2RpZnlfc2Vs ZihjZSwgcmVnc19scmksIEFSUkFZX1NJWkUocmVnc19scmkpKTsKIH0KIAogLyoKQEAgLTIyNzcs NTMgKzIyODQsMTYgQEAgc3RhdGljIGludCBnZW4xMl9lbWl0X29hcl9jb25maWcoc3RydWN0IGlu dGVsX2NvbnRleHQgKmNlLCBib29sIGVuYWJsZSkKICAqICAgcGVyLWNvbnRleHQgT0Egc3RhdGUu CiAgKgogICogTm90ZTogaXQncyBvbmx5IHRoZSBSQ1MvUmVuZGVyIGNvbnRleHQgdGhhdCBoYXMg YW55IE9BIHN0YXRlLgorICogTm90ZTogdGhlIGZpcnN0IGZsZXggcmVnaXN0ZXIgcGFzc2VkIG11 c3QgYWx3YXlzIGJlIFJfUFdSX0NMS19TVEFURQogICovCi1zdGF0aWMgaW50IGxyY19jb25maWd1 cmVfYWxsX2NvbnRleHRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCi0JCQkJICAg ICAgY29uc3Qgc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcpCitzdGF0aWMgaW50IG9h X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwK KwkJCQkgICAgIHN0cnVjdCBmbGV4ICpyZWdzLAorCQkJCSAgICAgc2l6ZV90IG51bV9yZWdzKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gc3RyZWFtLT5wZXJmLT5pOTE1Owot CS8qIFRoZSBNTUlPIG9mZnNldHMgZm9yIEZsZXggRVUgcmVnaXN0ZXJzIGFyZW4ndCBjb250aWd1 b3VzICovCi0JY29uc3QgdTMyIGN0eF9mbGV4ZXUwID0gc3RyZWFtLT5wZXJmLT5jdHhfZmxleGV1 MF9vZmZzZXQ7Ci0jZGVmaW5lIGN0eF9mbGV4ZXVOKE4pIChjdHhfZmxleGV1MCArIDIgKiAoTikg KyAxKQotCXN0cnVjdCBmbGV4IHJlZ3NbXSA9IHsKLQkJewotCQkJR0VOOF9SX1BXUl9DTEtfU1RB VEUsCi0JCQlDVFhfUl9QV1JfQ0xLX1NUQVRFLAotCQl9LAotCQl7Ci0JCQlJU19HRU4oaTkxNSwg MTIpID8KLQkJCUdFTjEyX09BUl9PQUNPTlRST0wgOiBHRU44X09BQ1RYQ09OVFJPTCwKLQkJCXN0 cmVhbS0+cGVyZi0+Y3R4X29hY3R4Y3RybF9vZmZzZXQgKyAxLAotCQl9LAotCQl7IEVVX1BFUkZf Q05UTDAsIGN0eF9mbGV4ZXVOKDApIH0sCi0JCXsgRVVfUEVSRl9DTlRMMSwgY3R4X2ZsZXhldU4o MSkgfSwKLQkJeyBFVV9QRVJGX0NOVEwyLCBjdHhfZmxleGV1TigyKSB9LAotCQl7IEVVX1BFUkZf Q05UTDMsIGN0eF9mbGV4ZXVOKDMpIH0sCi0JCXsgRVVfUEVSRl9DTlRMNCwgY3R4X2ZsZXhldU4o NCkgfSwKLQkJeyBFVV9QRVJGX0NOVEw1LCBjdHhfZmxleGV1Tig1KSB9LAotCQl7IEVVX1BFUkZf Q05UTDYsIGN0eF9mbGV4ZXVOKDYpIH0sCi0JfTsKLSN1bmRlZiBjdHhfZmxleGV1TgogCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4 LCAqY247Ci0Jc2l6ZV90IGFycmF5X3NpemUgPSBJU19HRU4oaTkxNSwgMTIpID8gMiA6IEFSUkFZ X1NJWkUocmVncyk7Ci0JaW50IGksIGVycjsKLQotCWlmIChJU19HRU4oaTkxNSwgMTIpKSB7Ci0J CXUzMiBmb3JtYXQgPSBzdHJlYW0tPm9hX2J1ZmZlci5mb3JtYXQ7Ci0KLQkJcmVnc1sxXS52YWx1 ZSA9Ci0JCQkoZm9ybWF0IDw8IEdFTjEyX09BUl9PQUNPTlRST0xfQ09VTlRFUl9GT1JNQVRfU0hJ RlQpIHwKLQkJCShvYV9jb25maWcgPyBHRU4xMl9PQVJfT0FDT05UUk9MX0NPVU5URVJfRU5BQkxF IDogMCk7Ci0JfSBlbHNlIHsKLQkJcmVnc1sxXS52YWx1ZSA9Ci0JCQkoc3RyZWFtLT5wZXJpb2Rf ZXhwb25lbnQgPDwgR0VOOF9PQV9USU1FUl9QRVJJT0RfU0hJRlQpIHwKLQkJCShzdHJlYW0tPnBl cmlvZGljID8gR0VOOF9PQV9USU1FUl9FTkFCTEUgOiAwKSB8Ci0JCQlHRU44X09BX0NPVU5URVJf UkVTVU1FOwotCX0KLQotCWZvciAoaSA9IDI7ICEhY3R4X2ZsZXhldTAgJiYgaSA8IGFycmF5X3Np emU7IGkrKykKLQkJcmVnc1tpXS52YWx1ZSA9IG9hX2NvbmZpZ19mbGV4X3JlZyhvYV9jb25maWcs IHJlZ3NbaV0ucmVnKTsKKwlpbnQgZXJyOwogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmc3RyZWFt LT5wZXJmLT5sb2NrKTsKIApAQCAtMjM1Myw3ICsyMzIzLDcgQEAgc3RhdGljIGludCBscmNfY29u ZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCiAJ CXNwaW5fdW5sb2NrKCZpOTE1LT5nZW0uY29udGV4dHMubG9jayk7CiAKLQkJZXJyID0gZ2VuOF9j b25maWd1cmVfY29udGV4dChjdHgsIHJlZ3MsIGFycmF5X3NpemUpOworCQllcnIgPSBnZW44X2Nv bmZpZ3VyZV9jb250ZXh0KGN0eCwgcmVncywgbnVtX3JlZ3MpOwogCQlpZiAoZXJyKSB7CiAJCQlp OTE1X2dlbV9jb250ZXh0X3B1dChjdHgpOwogCQkJcmV0dXJuIGVycjsKQEAgLTIzNzgsNyArMjM0 OCw3IEBAIHN0YXRpYyBpbnQgbHJjX2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGk5MTVf cGVyZl9zdHJlYW0gKnN0cmVhbSwKIAogCQlyZWdzWzBdLnZhbHVlID0gaW50ZWxfc3NldV9tYWtl X3JwY3MoaTkxNSwgJmNlLT5zc2V1KTsKIAotCQllcnIgPSBnZW44X21vZGlmeV9zZWxmKGNlLCBy ZWdzLCBhcnJheV9zaXplKTsKKwkJZXJyID0gZ2VuOF9tb2RpZnlfc2VsZihjZSwgcmVncywgbnVt X3JlZ3MpOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKIAl9CkBAIC0yMzg2LDYgKzIzNTYs NTYgQEAgc3RhdGljIGludCBscmNfY29uZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1Y3QgaTkxNV9w ZXJmX3N0cmVhbSAqc3RyZWFtLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGdlbjEyX2Nv bmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKKwkJ CQkJY29uc3Qgc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcpCit7CisJc3RydWN0IGZs ZXggcmVnc1tdID0geworCQl7CisJCQlHRU44X1JfUFdSX0NMS19TVEFURSwKKwkJCUNUWF9SX1BX Ul9DTEtfU1RBVEUsCisJCX0sCisJfTsKKworCXJldHVybiBvYV9jb25maWd1cmVfYWxsX2NvbnRl eHRzKHN0cmVhbSwgcmVncywgQVJSQVlfU0laRShyZWdzKSk7Cit9CisKK3N0YXRpYyBpbnQgbHJj X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwK KwkJCQkgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9jb25maWcgKm9hX2NvbmZpZykKK3sKKwkv KiBUaGUgTU1JTyBvZmZzZXRzIGZvciBGbGV4IEVVIHJlZ2lzdGVycyBhcmVuJ3QgY29udGlndW91 cyAqLworCWNvbnN0IHUzMiBjdHhfZmxleGV1MCA9IHN0cmVhbS0+cGVyZi0+Y3R4X2ZsZXhldTBf b2Zmc2V0OworI2RlZmluZSBjdHhfZmxleGV1TihOKSAoY3R4X2ZsZXhldTAgKyAyICogKE4pICsg MSkKKwlzdHJ1Y3QgZmxleCByZWdzW10gPSB7CisJCXsKKwkJCUdFTjhfUl9QV1JfQ0xLX1NUQVRF LAorCQkJQ1RYX1JfUFdSX0NMS19TVEFURSwKKwkJfSwKKwkJeworCQkJR0VOOF9PQUNUWENPTlRS T0wsCisJCQlzdHJlYW0tPnBlcmYtPmN0eF9vYWN0eGN0cmxfb2Zmc2V0ICsgMSwKKwkJfSwKKwkJ eyBFVV9QRVJGX0NOVEwwLCBjdHhfZmxleGV1TigwKSB9LAorCQl7IEVVX1BFUkZfQ05UTDEsIGN0 eF9mbGV4ZXVOKDEpIH0sCisJCXsgRVVfUEVSRl9DTlRMMiwgY3R4X2ZsZXhldU4oMikgfSwKKwkJ eyBFVV9QRVJGX0NOVEwzLCBjdHhfZmxleGV1TigzKSB9LAorCQl7IEVVX1BFUkZfQ05UTDQsIGN0 eF9mbGV4ZXVOKDQpIH0sCisJCXsgRVVfUEVSRl9DTlRMNSwgY3R4X2ZsZXhldU4oNSkgfSwKKwkJ eyBFVV9QRVJGX0NOVEw2LCBjdHhfZmxleGV1Tig2KSB9LAorCX07CisjdW5kZWYgY3R4X2ZsZXhl dU4KKwlpbnQgaTsKKworCXJlZ3NbMV0udmFsdWUgPQorCQkoc3RyZWFtLT5wZXJpb2RfZXhwb25l bnQgPDwgR0VOOF9PQV9USU1FUl9QRVJJT0RfU0hJRlQpIHwKKwkJKHN0cmVhbS0+cGVyaW9kaWMg PyBHRU44X09BX1RJTUVSX0VOQUJMRSA6IDApIHwKKwkJR0VOOF9PQV9DT1VOVEVSX1JFU1VNRTsK KworCWZvciAoaSA9IDI7IGkgPCBBUlJBWV9TSVpFKHJlZ3MpOyBpKyspCisJCXJlZ3NbaV0udmFs dWUgPSBvYV9jb25maWdfZmxleF9yZWcob2FfY29uZmlnLCByZWdzW2ldLnJlZyk7CisKKwlyZXR1 cm4gb2FfY29uZmlndXJlX2FsbF9jb250ZXh0cyhzdHJlYW0sIHJlZ3MsIEFSUkFZX1NJWkUocmVn cykpOworfQorCiBzdGF0aWMgaW50IGdlbjhfZW5hYmxlX21ldHJpY19zZXQoc3RydWN0IGk5MTVf cGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBz dHJlYW0tPnVuY29yZTsKQEAgLTI0NjksNyArMjQ4OSw3IEBAIHN0YXRpYyBpbnQgZ2VuMTJfZW5h YmxlX21ldHJpY19zZXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAkgKiB0byBt YWtlIHN1cmUgYWxsIHNsaWNlcy9zdWJzbGljZXMgYXJlIE9OIGJlZm9yZSB3cml0aW5nIHRvIE5P QQogCSAqIHJlZ2lzdGVycy4KIAkgKi8KLQlyZXQgPSBscmNfY29uZmlndXJlX2FsbF9jb250ZXh0 cyhzdHJlYW0sIG9hX2NvbmZpZyk7CisJcmV0ID0gZ2VuMTJfY29uZmlndXJlX2FsbF9jb250ZXh0 cyhzdHJlYW0sIG9hX2NvbmZpZyk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMjQ3 OSw4ICsyNDk5LDcgQEAgc3RhdGljIGludCBnZW4xMl9lbmFibGVfbWV0cmljX3NldChzdHJ1Y3Qg aTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogCSAqIHJlcXVlc3RlZCB0aGlzLgogCSAqLwogCWlm IChzdHJlYW0tPmN0eCkgewotCQlyZXQgPSBnZW4xMl9lbWl0X29hcl9jb25maWcoc3RyZWFtLT5w aW5uZWRfY3R4LAotCQkJCQkgICAgb2FfY29uZmlnICE9IE5VTEwpOworCQlyZXQgPSBnZW4xMl9j b25maWd1cmVfb2FyX2NvbnRleHQoc3RyZWFtLCBvYV9jb25maWcgIT0gTlVMTCk7CiAJCWlmIChy ZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KQEAgLTI1MTQsMTEgKzI1MzMsMTEgQEAgc3RhdGljIHZv aWQgZ2VuMTJfZGlzYWJsZV9tZXRyaWNfc2V0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJl YW0pCiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gc3RyZWFtLT51bmNvcmU7CiAKIAkv KiBSZXNldCBhbGwgY29udGV4dHMnIHNsaWNlcy9zdWJzbGljZXMgY29uZmlndXJhdGlvbnMuICov Ci0JbHJjX2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RyZWFtLCBOVUxMKTsKKwlnZW4xMl9jb25m aWd1cmVfYWxsX2NvbnRleHRzKHN0cmVhbSwgTlVMTCk7CiAKIAkvKiBkaXNhYmxlIHRoZSBjb250 ZXh0IHNhdmUvcmVzdG9yZSBvciBPQVIgY291bnRlcnMgKi8KIAlpZiAoc3RyZWFtLT5jdHgpCi0J CWdlbjEyX2VtaXRfb2FyX2NvbmZpZyhzdHJlYW0tPnBpbm5lZF9jdHgsIGZhbHNlKTsKKwkJZ2Vu MTJfY29uZmlndXJlX29hcl9jb250ZXh0KHN0cmVhbSwgZmFsc2UpOwogCiAJLyogTWFrZSBzdXJl IHdlIGRpc2FibGUgbm9hIHRvIHNhdmUgcG93ZXIuICovCiAJaW50ZWxfdW5jb3JlX3Jtdyh1bmNv cmUsIFJQTV9DT05GSUcxLCBHRU4xMF9HVF9OT0FfRU5BQkxFLCAwKTsKQEAgLTI4NjAsNyArMjg3 OSwxMSBAQCB2b2lkIGk5MTVfb2FfaW5pdF9yZWdfc3RhdGUoY29uc3Qgc3RydWN0IGludGVsX2Nv bnRleHQgKmNlLAogCQlyZXR1cm47CiAKIAlzdHJlYW0gPSBlbmdpbmUtPmk5MTUtPnBlcmYuZXhj bHVzaXZlX3N0cmVhbTsKLQlpZiAoc3RyZWFtKQorCS8qCisJICogRm9yIGdlbjEyLCBvbmx5IENU WF9SX1BXUl9DTEtfU1RBVEUgbmVlZHMgdXBkYXRlLCBidXQgdGhlIGNhbGxlcgorCSAqIGlzIGFs cmVhZHkgZG9pbmcgdGhhdCwgc28gbm90aGluZyB0byBiZSBkb25lIGZvciBnZW4xMiBoZXJlLgor CSAqLworCWlmIChzdHJlYW0gJiYgSU5URUxfR0VOKHN0cmVhbS0+cGVyZi0+aTkxNSkgPCAxMikK IAkJZ2VuOF91cGRhdGVfcmVnX3N0YXRlX3VubG9ja2VkKGNlLCBzdHJlYW0pOwogfQogCi0tIAoy LjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6DF45C432C3 for ; Thu, 14 Nov 2019 19:22:19 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 534E1206CC for ; Thu, 14 Nov 2019 19:22:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 534E1206CC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9FDD06EEBD; Thu, 14 Nov 2019 19:22:17 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7DFA86EEBD for ; Thu, 14 Nov 2019 19:22:12 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Nov 2019 11:21:15 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,304,1569308400"; d="scan'208";a="406430049" Received: from orsosgc001.ra.intel.com ([10.23.184.150]) by fmsmga006.fm.intel.com with ESMTP; 14 Nov 2019 11:21:15 -0800 From: Umesh Nerlige Ramappa To: intel-gfx@lists.freedesktop.org, Lionel G Landwerlin , Chris Wilson Date: Thu, 14 Nov 2019 11:21:14 -0800 Message-Id: <20191114192114.61547-2-umesh.nerlige.ramappa@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191114192114.61547-1-umesh.nerlige.ramappa@intel.com> References: <20191114192114.61547-1-umesh.nerlige.ramappa@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 2/2] drm/i915/perf: Configure OAR for specific context X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191114192114.b31GzMImGPoSsJat7tVFWWnEjAgFDrGALI0mxBQaPUM@z> R2VuMTIgc3VwcG9ydHMgc2F2aW5nL3Jlc3RvcmluZyByZW5kZXIgY291bnRlcnMgcGVyIGNvbnRl eHQuIEFwcGx5IE9BUgpjb25maWd1cmF0aW9uIG9ubHkgZm9yIHRoZSBjb250ZXh0IHRoYXQgaXMg cGFzc2VkIGluIHRvIHBlcmYuCgp2MjoKLSBGaXggT0FDVFhDT05UUk9MIHZhbHVlIHRvIG9ubHkg c3RvcC9yZXN1bWUgY291bnRlcnMuCi0gUmVtb3ZlIGdlbjEyX3VwZGF0ZV9yZWdfc3RhdGVfdW5s b2NrZWQgYXMgcG93ZXIgc3RhdGUgaXMgYWxyZWFkeQogIGFwcGxpZWQgYnkgdGhlIGNhbGxlci4K ClNpZ25lZC1vZmYtYnk6IFVtZXNoIE5lcmxpZ2UgUmFtYXBwYSA8dW1lc2gubmVybGlnZS5yYW1h cHBhQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyB8IDE5 MyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTA4IGlu c2VydGlvbnMoKyksIDg1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGVyZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKaW5k ZXggMjIxYzEwOTBhZTkzLi4yZjBiZTVmYmVmNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGVyZi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5j CkBAIC0yMDc4LDIwICsyMDc4LDEyIEBAIGdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChj b25zdCBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJdTMyICpyZWdfc3RhdGUgPSBjZS0+bHJj X3JlZ19zdGF0ZTsKIAlpbnQgaTsKIAotCWlmIChJU19HRU4oc3RyZWFtLT5wZXJmLT5pOTE1LCAx MikpIHsKLQkJdTMyIGZvcm1hdCA9IHN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdDsKKwlyZWdfc3Rh dGVbY3R4X29hY3R4Y3RybCArIDFdID0KKwkJKHN0cmVhbS0+cGVyaW9kX2V4cG9uZW50IDw8IEdF TjhfT0FfVElNRVJfUEVSSU9EX1NISUZUKSB8CisJCShzdHJlYW0tPnBlcmlvZGljID8gR0VOOF9P QV9USU1FUl9FTkFCTEUgOiAwKSB8CisJCUdFTjhfT0FfQ09VTlRFUl9SRVNVTUU7CiAKLQkJcmVn X3N0YXRlW2N0eF9vYWN0eGN0cmwgKyAxXSA9Ci0JCQkoZm9ybWF0IDw8IEdFTjEyX09BUl9PQUNP TlRST0xfQ09VTlRFUl9GT1JNQVRfU0hJRlQpIHwKLQkJCShzdHJlYW0tPm9hX2NvbmZpZyA/IEdF TjEyX09BUl9PQUNPTlRST0xfQ09VTlRFUl9FTkFCTEUgOiAwKTsKLQl9IGVsc2UgewotCQlyZWdf c3RhdGVbY3R4X29hY3R4Y3RybCArIDFdID0KLQkJCShzdHJlYW0tPnBlcmlvZF9leHBvbmVudCA8 PCBHRU44X09BX1RJTUVSX1BFUklPRF9TSElGVCkgfAotCQkJKHN0cmVhbS0+cGVyaW9kaWMgPyBH RU44X09BX1RJTUVSX0VOQUJMRSA6IDApIHwKLQkJCUdFTjhfT0FfQ09VTlRFUl9SRVNVTUU7Ci0J fQotCi0JZm9yIChpID0gMDsgISFjdHhfZmxleGV1MCAmJiBpIDwgQVJSQVlfU0laRShmbGV4X3Jl Z3MpOyBpKyspCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmxleF9yZWdzKTsgaSsrKQog CQlyZWdfc3RhdGVbY3R4X2ZsZXhldTAgKyBpICogMiArIDFdID0KIAkJCW9hX2NvbmZpZ19mbGV4 X3JlZyhzdHJlYW0tPm9hX2NvbmZpZywgZmxleF9yZWdzW2ldKTsKIApAQCAtMjIyNCwzNCArMjIx Niw0OSBAQCBzdGF0aWMgaW50IGdlbjhfY29uZmlndXJlX2NvbnRleHQoc3RydWN0IGk5MTVfZ2Vt X2NvbnRleHQgKmN0eCwKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgaW50IGdlbjEyX2VtaXRf b2FyX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIGJvb2wgZW5hYmxlKQorc3RhdGlj IGludCBnZW4xMl9jb25maWd1cmVfb2FyX2NvbnRleHQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0g KnN0cmVhbSwgYm9vbCBlbmFibGUpCiB7Ci0Jc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Ci0JdTMy ICpjczsKLQlpbnQgZXJyID0gMDsKLQotCXJxID0gaTkxNV9yZXF1ZXN0X2NyZWF0ZShjZSk7Ci0J aWYgKElTX0VSUihycSkpCi0JCXJldHVybiBQVFJfRVJSKHJxKTsKKwlpbnQgZXJyOworCXN0cnVj dCBpbnRlbF9jb250ZXh0ICpjZSA9IHN0cmVhbS0+cGlubmVkX2N0eDsKKwlzdHJ1Y3QgZmxleCBy ZWdzX2NvbnRleHRbXSA9IHsKKwkJeworCQkJR0VOOF9PQUNUWENPTlRST0wsCisJCQlzdHJlYW0t PnBlcmYtPmN0eF9vYWN0eGN0cmxfb2Zmc2V0ICsgMSwKKwkJCWVuYWJsZSA/IEdFTjhfT0FfQ09V TlRFUl9SRVNVTUUgOiAwLAorCQl9LAorCX07CisJc3RydWN0IGZsZXggcmVnc19scmlbXSA9IHsK KwkJeworCQkJR0VOMTJfT0FSX09BQ09OVFJPTCwKKwkJfSwKKwkJeworCQkJUklOR19DT05URVhU X0NPTlRST0woY2UtPmVuZ2luZS0+bW1pb19iYXNlKSwKKwkJfSwKKwl9OworCXUzMiBmb3JtYXQg PSBzdHJlYW0tPm9hX2J1ZmZlci5mb3JtYXQ7CiAKLQljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEs IDQpOwotCWlmIChJU19FUlIoY3MpKSB7Ci0JCWVyciA9IFBUUl9FUlIoY3MpOwotCQlnb3RvIG91 dDsKLQl9CisJcmVnc19scmlbMF0udmFsdWUgPQorCQkoZm9ybWF0IDw8IEdFTjEyX09BUl9PQUNP TlRST0xfQ09VTlRFUl9GT1JNQVRfU0hJRlQpIHwKKwkJKGVuYWJsZSA/IEdFTjEyX09BUl9PQUNP TlRST0xfQ09VTlRFUl9FTkFCTEUgOiAwKTsKIAotCSpjcysrID0gTUlfTE9BRF9SRUdJU1RFUl9J TU0oMSk7Ci0JKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChSSU5HX0NPTlRFWFRfQ09OVFJP TChjZS0+ZW5naW5lLT5tbWlvX2Jhc2UpKTsKLQkqY3MrKyA9IF9NQVNLRURfRklFTEQoR0VOMTJf Q1RYX0NUUkxfT0FSX0NPTlRFWFRfRU5BQkxFLAotCQkJICAgICAgZW5hYmxlID8gR0VOMTJfQ1RY X0NUUkxfT0FSX0NPTlRFWFRfRU5BQkxFIDogMCk7Ci0JKmNzKysgPSBNSV9OT09QOworCXJlZ3Nf bHJpWzFdLnZhbHVlID0KKwkJX01BU0tFRF9GSUVMRChHRU4xMl9DVFhfQ1RSTF9PQVJfQ09OVEVY VF9FTkFCTEUsCisJCQkgICAgICBlbmFibGUgPworCQkJICAgICAgR0VOMTJfQ1RYX0NUUkxfT0FS X0NPTlRFWFRfRU5BQkxFIDoKKwkJCSAgICAgIDApOwogCi0JaW50ZWxfcmluZ19hZHZhbmNlKHJx LCBjcyk7CisJLyogTW9kaWZ5IHRoZSBjb250ZXh0IGltYWdlIG9mIHBpbm5lZCBjb250ZXh0IHdp dGggcmVnc19jb250ZXh0Ki8KKwllcnIgPSBpbnRlbF9jb250ZXh0X2xvY2tfcGlubmVkKGNlKTsK KwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOwogCi1vdXQ6Ci0JaTkxNV9yZXF1ZXN0X2FkZChycSk7 CisJZXJyID0gZ2VuOF9tb2RpZnlfY29udGV4dChjZSwgcmVnc19jb250ZXh0LCBBUlJBWV9TSVpF KHJlZ3NfY29udGV4dCkpOworCWludGVsX2NvbnRleHRfdW5sb2NrX3Bpbm5lZChjZSk7CisJaWYg KGVycikKKwkJcmV0dXJuIGVycjsKIAotCXJldHVybiBlcnI7CisJLyogQXBwbHkgcmVnc19scmkg dXNpbmcgTFJJIHdpdGggcGlubmVkIGNvbnRleHQgKi8KKwlyZXR1cm4gZ2VuOF9tb2RpZnlfc2Vs ZihjZSwgcmVnc19scmksIEFSUkFZX1NJWkUocmVnc19scmkpKTsKIH0KIAogLyoKQEAgLTIyNzcs NTMgKzIyODQsMTYgQEAgc3RhdGljIGludCBnZW4xMl9lbWl0X29hcl9jb25maWcoc3RydWN0IGlu dGVsX2NvbnRleHQgKmNlLCBib29sIGVuYWJsZSkKICAqICAgcGVyLWNvbnRleHQgT0Egc3RhdGUu CiAgKgogICogTm90ZTogaXQncyBvbmx5IHRoZSBSQ1MvUmVuZGVyIGNvbnRleHQgdGhhdCBoYXMg YW55IE9BIHN0YXRlLgorICogTm90ZTogdGhlIGZpcnN0IGZsZXggcmVnaXN0ZXIgcGFzc2VkIG11 c3QgYWx3YXlzIGJlIFJfUFdSX0NMS19TVEFURQogICovCi1zdGF0aWMgaW50IGxyY19jb25maWd1 cmVfYWxsX2NvbnRleHRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCi0JCQkJICAg ICAgY29uc3Qgc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcpCitzdGF0aWMgaW50IG9h X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwK KwkJCQkgICAgIHN0cnVjdCBmbGV4ICpyZWdzLAorCQkJCSAgICAgc2l6ZV90IG51bV9yZWdzKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gc3RyZWFtLT5wZXJmLT5pOTE1Owot CS8qIFRoZSBNTUlPIG9mZnNldHMgZm9yIEZsZXggRVUgcmVnaXN0ZXJzIGFyZW4ndCBjb250aWd1 b3VzICovCi0JY29uc3QgdTMyIGN0eF9mbGV4ZXUwID0gc3RyZWFtLT5wZXJmLT5jdHhfZmxleGV1 MF9vZmZzZXQ7Ci0jZGVmaW5lIGN0eF9mbGV4ZXVOKE4pIChjdHhfZmxleGV1MCArIDIgKiAoTikg KyAxKQotCXN0cnVjdCBmbGV4IHJlZ3NbXSA9IHsKLQkJewotCQkJR0VOOF9SX1BXUl9DTEtfU1RB VEUsCi0JCQlDVFhfUl9QV1JfQ0xLX1NUQVRFLAotCQl9LAotCQl7Ci0JCQlJU19HRU4oaTkxNSwg MTIpID8KLQkJCUdFTjEyX09BUl9PQUNPTlRST0wgOiBHRU44X09BQ1RYQ09OVFJPTCwKLQkJCXN0 cmVhbS0+cGVyZi0+Y3R4X29hY3R4Y3RybF9vZmZzZXQgKyAxLAotCQl9LAotCQl7IEVVX1BFUkZf Q05UTDAsIGN0eF9mbGV4ZXVOKDApIH0sCi0JCXsgRVVfUEVSRl9DTlRMMSwgY3R4X2ZsZXhldU4o MSkgfSwKLQkJeyBFVV9QRVJGX0NOVEwyLCBjdHhfZmxleGV1TigyKSB9LAotCQl7IEVVX1BFUkZf Q05UTDMsIGN0eF9mbGV4ZXVOKDMpIH0sCi0JCXsgRVVfUEVSRl9DTlRMNCwgY3R4X2ZsZXhldU4o NCkgfSwKLQkJeyBFVV9QRVJGX0NOVEw1LCBjdHhfZmxleGV1Tig1KSB9LAotCQl7IEVVX1BFUkZf Q05UTDYsIGN0eF9mbGV4ZXVOKDYpIH0sCi0JfTsKLSN1bmRlZiBjdHhfZmxleGV1TgogCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4 LCAqY247Ci0Jc2l6ZV90IGFycmF5X3NpemUgPSBJU19HRU4oaTkxNSwgMTIpID8gMiA6IEFSUkFZ X1NJWkUocmVncyk7Ci0JaW50IGksIGVycjsKLQotCWlmIChJU19HRU4oaTkxNSwgMTIpKSB7Ci0J CXUzMiBmb3JtYXQgPSBzdHJlYW0tPm9hX2J1ZmZlci5mb3JtYXQ7Ci0KLQkJcmVnc1sxXS52YWx1 ZSA9Ci0JCQkoZm9ybWF0IDw8IEdFTjEyX09BUl9PQUNPTlRST0xfQ09VTlRFUl9GT1JNQVRfU0hJ RlQpIHwKLQkJCShvYV9jb25maWcgPyBHRU4xMl9PQVJfT0FDT05UUk9MX0NPVU5URVJfRU5BQkxF IDogMCk7Ci0JfSBlbHNlIHsKLQkJcmVnc1sxXS52YWx1ZSA9Ci0JCQkoc3RyZWFtLT5wZXJpb2Rf ZXhwb25lbnQgPDwgR0VOOF9PQV9USU1FUl9QRVJJT0RfU0hJRlQpIHwKLQkJCShzdHJlYW0tPnBl cmlvZGljID8gR0VOOF9PQV9USU1FUl9FTkFCTEUgOiAwKSB8Ci0JCQlHRU44X09BX0NPVU5URVJf UkVTVU1FOwotCX0KLQotCWZvciAoaSA9IDI7ICEhY3R4X2ZsZXhldTAgJiYgaSA8IGFycmF5X3Np emU7IGkrKykKLQkJcmVnc1tpXS52YWx1ZSA9IG9hX2NvbmZpZ19mbGV4X3JlZyhvYV9jb25maWcs IHJlZ3NbaV0ucmVnKTsKKwlpbnQgZXJyOwogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmc3RyZWFt LT5wZXJmLT5sb2NrKTsKIApAQCAtMjM1Myw3ICsyMzIzLDcgQEAgc3RhdGljIGludCBscmNfY29u ZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCiAJ CXNwaW5fdW5sb2NrKCZpOTE1LT5nZW0uY29udGV4dHMubG9jayk7CiAKLQkJZXJyID0gZ2VuOF9j b25maWd1cmVfY29udGV4dChjdHgsIHJlZ3MsIGFycmF5X3NpemUpOworCQllcnIgPSBnZW44X2Nv bmZpZ3VyZV9jb250ZXh0KGN0eCwgcmVncywgbnVtX3JlZ3MpOwogCQlpZiAoZXJyKSB7CiAJCQlp OTE1X2dlbV9jb250ZXh0X3B1dChjdHgpOwogCQkJcmV0dXJuIGVycjsKQEAgLTIzNzgsNyArMjM0 OCw3IEBAIHN0YXRpYyBpbnQgbHJjX2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGk5MTVf cGVyZl9zdHJlYW0gKnN0cmVhbSwKIAogCQlyZWdzWzBdLnZhbHVlID0gaW50ZWxfc3NldV9tYWtl X3JwY3MoaTkxNSwgJmNlLT5zc2V1KTsKIAotCQllcnIgPSBnZW44X21vZGlmeV9zZWxmKGNlLCBy ZWdzLCBhcnJheV9zaXplKTsKKwkJZXJyID0gZ2VuOF9tb2RpZnlfc2VsZihjZSwgcmVncywgbnVt X3JlZ3MpOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKIAl9CkBAIC0yMzg2LDYgKzIzNTYs NTYgQEAgc3RhdGljIGludCBscmNfY29uZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1Y3QgaTkxNV9w ZXJmX3N0cmVhbSAqc3RyZWFtLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGdlbjEyX2Nv bmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKKwkJ CQkJY29uc3Qgc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcpCit7CisJc3RydWN0IGZs ZXggcmVnc1tdID0geworCQl7CisJCQlHRU44X1JfUFdSX0NMS19TVEFURSwKKwkJCUNUWF9SX1BX Ul9DTEtfU1RBVEUsCisJCX0sCisJfTsKKworCXJldHVybiBvYV9jb25maWd1cmVfYWxsX2NvbnRl eHRzKHN0cmVhbSwgcmVncywgQVJSQVlfU0laRShyZWdzKSk7Cit9CisKK3N0YXRpYyBpbnQgbHJj X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwK KwkJCQkgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9jb25maWcgKm9hX2NvbmZpZykKK3sKKwkv KiBUaGUgTU1JTyBvZmZzZXRzIGZvciBGbGV4IEVVIHJlZ2lzdGVycyBhcmVuJ3QgY29udGlndW91 cyAqLworCWNvbnN0IHUzMiBjdHhfZmxleGV1MCA9IHN0cmVhbS0+cGVyZi0+Y3R4X2ZsZXhldTBf b2Zmc2V0OworI2RlZmluZSBjdHhfZmxleGV1TihOKSAoY3R4X2ZsZXhldTAgKyAyICogKE4pICsg MSkKKwlzdHJ1Y3QgZmxleCByZWdzW10gPSB7CisJCXsKKwkJCUdFTjhfUl9QV1JfQ0xLX1NUQVRF LAorCQkJQ1RYX1JfUFdSX0NMS19TVEFURSwKKwkJfSwKKwkJeworCQkJR0VOOF9PQUNUWENPTlRS T0wsCisJCQlzdHJlYW0tPnBlcmYtPmN0eF9vYWN0eGN0cmxfb2Zmc2V0ICsgMSwKKwkJfSwKKwkJ eyBFVV9QRVJGX0NOVEwwLCBjdHhfZmxleGV1TigwKSB9LAorCQl7IEVVX1BFUkZfQ05UTDEsIGN0 eF9mbGV4ZXVOKDEpIH0sCisJCXsgRVVfUEVSRl9DTlRMMiwgY3R4X2ZsZXhldU4oMikgfSwKKwkJ eyBFVV9QRVJGX0NOVEwzLCBjdHhfZmxleGV1TigzKSB9LAorCQl7IEVVX1BFUkZfQ05UTDQsIGN0 eF9mbGV4ZXVOKDQpIH0sCisJCXsgRVVfUEVSRl9DTlRMNSwgY3R4X2ZsZXhldU4oNSkgfSwKKwkJ eyBFVV9QRVJGX0NOVEw2LCBjdHhfZmxleGV1Tig2KSB9LAorCX07CisjdW5kZWYgY3R4X2ZsZXhl dU4KKwlpbnQgaTsKKworCXJlZ3NbMV0udmFsdWUgPQorCQkoc3RyZWFtLT5wZXJpb2RfZXhwb25l bnQgPDwgR0VOOF9PQV9USU1FUl9QRVJJT0RfU0hJRlQpIHwKKwkJKHN0cmVhbS0+cGVyaW9kaWMg PyBHRU44X09BX1RJTUVSX0VOQUJMRSA6IDApIHwKKwkJR0VOOF9PQV9DT1VOVEVSX1JFU1VNRTsK KworCWZvciAoaSA9IDI7IGkgPCBBUlJBWV9TSVpFKHJlZ3MpOyBpKyspCisJCXJlZ3NbaV0udmFs dWUgPSBvYV9jb25maWdfZmxleF9yZWcob2FfY29uZmlnLCByZWdzW2ldLnJlZyk7CisKKwlyZXR1 cm4gb2FfY29uZmlndXJlX2FsbF9jb250ZXh0cyhzdHJlYW0sIHJlZ3MsIEFSUkFZX1NJWkUocmVn cykpOworfQorCiBzdGF0aWMgaW50IGdlbjhfZW5hYmxlX21ldHJpY19zZXQoc3RydWN0IGk5MTVf cGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBz dHJlYW0tPnVuY29yZTsKQEAgLTI0NjksNyArMjQ4OSw3IEBAIHN0YXRpYyBpbnQgZ2VuMTJfZW5h YmxlX21ldHJpY19zZXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAkgKiB0byBt YWtlIHN1cmUgYWxsIHNsaWNlcy9zdWJzbGljZXMgYXJlIE9OIGJlZm9yZSB3cml0aW5nIHRvIE5P QQogCSAqIHJlZ2lzdGVycy4KIAkgKi8KLQlyZXQgPSBscmNfY29uZmlndXJlX2FsbF9jb250ZXh0 cyhzdHJlYW0sIG9hX2NvbmZpZyk7CisJcmV0ID0gZ2VuMTJfY29uZmlndXJlX2FsbF9jb250ZXh0 cyhzdHJlYW0sIG9hX2NvbmZpZyk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMjQ3 OSw4ICsyNDk5LDcgQEAgc3RhdGljIGludCBnZW4xMl9lbmFibGVfbWV0cmljX3NldChzdHJ1Y3Qg aTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogCSAqIHJlcXVlc3RlZCB0aGlzLgogCSAqLwogCWlm IChzdHJlYW0tPmN0eCkgewotCQlyZXQgPSBnZW4xMl9lbWl0X29hcl9jb25maWcoc3RyZWFtLT5w aW5uZWRfY3R4LAotCQkJCQkgICAgb2FfY29uZmlnICE9IE5VTEwpOworCQlyZXQgPSBnZW4xMl9j b25maWd1cmVfb2FyX2NvbnRleHQoc3RyZWFtLCBvYV9jb25maWcgIT0gTlVMTCk7CiAJCWlmIChy ZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KQEAgLTI1MTQsMTEgKzI1MzMsMTEgQEAgc3RhdGljIHZv aWQgZ2VuMTJfZGlzYWJsZV9tZXRyaWNfc2V0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJl YW0pCiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gc3RyZWFtLT51bmNvcmU7CiAKIAkv KiBSZXNldCBhbGwgY29udGV4dHMnIHNsaWNlcy9zdWJzbGljZXMgY29uZmlndXJhdGlvbnMuICov Ci0JbHJjX2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RyZWFtLCBOVUxMKTsKKwlnZW4xMl9jb25m aWd1cmVfYWxsX2NvbnRleHRzKHN0cmVhbSwgTlVMTCk7CiAKIAkvKiBkaXNhYmxlIHRoZSBjb250 ZXh0IHNhdmUvcmVzdG9yZSBvciBPQVIgY291bnRlcnMgKi8KIAlpZiAoc3RyZWFtLT5jdHgpCi0J CWdlbjEyX2VtaXRfb2FyX2NvbmZpZyhzdHJlYW0tPnBpbm5lZF9jdHgsIGZhbHNlKTsKKwkJZ2Vu MTJfY29uZmlndXJlX29hcl9jb250ZXh0KHN0cmVhbSwgZmFsc2UpOwogCiAJLyogTWFrZSBzdXJl IHdlIGRpc2FibGUgbm9hIHRvIHNhdmUgcG93ZXIuICovCiAJaW50ZWxfdW5jb3JlX3Jtdyh1bmNv cmUsIFJQTV9DT05GSUcxLCBHRU4xMF9HVF9OT0FfRU5BQkxFLCAwKTsKQEAgLTI4NjAsNyArMjg3 OSwxMSBAQCB2b2lkIGk5MTVfb2FfaW5pdF9yZWdfc3RhdGUoY29uc3Qgc3RydWN0IGludGVsX2Nv bnRleHQgKmNlLAogCQlyZXR1cm47CiAKIAlzdHJlYW0gPSBlbmdpbmUtPmk5MTUtPnBlcmYuZXhj bHVzaXZlX3N0cmVhbTsKLQlpZiAoc3RyZWFtKQorCS8qCisJICogRm9yIGdlbjEyLCBvbmx5IENU WF9SX1BXUl9DTEtfU1RBVEUgbmVlZHMgdXBkYXRlLCBidXQgdGhlIGNhbGxlcgorCSAqIGlzIGFs cmVhZHkgZG9pbmcgdGhhdCwgc28gbm90aGluZyB0byBiZSBkb25lIGZvciBnZW4xMiBoZXJlLgor CSAqLworCWlmIChzdHJlYW0gJiYgSU5URUxfR0VOKHN0cmVhbS0+cGVyZi0+aTkxNSkgPCAxMikK IAkJZ2VuOF91cGRhdGVfcmVnX3N0YXRlX3VubG9ja2VkKGNlLCBzdHJlYW0pOwogfQogCi0tIAoy LjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==