From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Tue, 17 Apr 2018 13:27:31 +0100 Message-Id: <20180417122736.11603-3-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20180417122736.11603-1-tvrtko.ursulin@linux.intel.com> References: <20180417122736.11603-1-tvrtko.ursulin@linux.intel.com> Subject: [Intel-gfx] [RFC 2/7] drm/i915: Track per-context engine busyness 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: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org, gordon.kelly@intel.com List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNvbWUgY3Vz dG9tZXJzIHdhbnQgdG8ga25vdyBob3cgbXVjaCBvZiB0aGUgR1BVIHRpbWUgYXJlIHRoZWlyIGNs aWVudHMKdXNpbmcgaW4gb3JkZXIgdG8gbWFrZSBkeW5hbWljIGxvYWQgYmFsYW5jaW5nIGRlY2lz aW9ucy4KCldpdGggdGhlIGhvb2tzIGFscmVhZHkgaW4gcGxhY2Ugd2hpY2ggdHJhY2sgdGhlIG92 ZXJhbGwgZW5naW5lIGJ1c3luZXNzLAp3ZSBjYW4gZXh0ZW5kIHRoYXQgc2xpZ2h0bHkgdG8gc3Bs aXQgdGhhdCB0aW1lIGJldHdlZW4gY29udGV4dHMuCgp2MjogRml4IGFjY291bnRpbmcgZm9yIHRh aWwgdXBkYXRlcy4KdjM6IFJlYmFzZS4KdjQ6IE1hcmsgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4 dHMgYXMgYWN0aXZlIG9uIHN0YXRzIGVuYWJsZS4KdjU6IEluY2x1ZGUgc29tZSBoZWFkZXJzIHRv IGZpeCB0aGUgYnVpbGQuCnY2OiBBZGRlZCBmaW5lIGdyYWluZWQgbG9jay4Kdjc6IENvbnZlcnQg dG8gc2VxbG9jay4gKENocmlzIFdpbHNvbikKClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGlu IDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBnb3Jkb24ua2VsbHlAaW50ZWwuY29tCi0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIHwgIDggKysrKysKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaCB8ICA3ICsrKysrCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgfCAzMSArKysrKysrKysrKysrKysrKysr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAxNCArKysrKystLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8IDU1ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygr KSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5j CmluZGV4IDVjZmFjMDI1NTc1OC4uODU2MjdmYTQ1NjViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fY29udGV4dC5jCkBAIC0zNDksNyArMzQ5LDkgQEAgc3RhdGljIHN0cnVjdCBpOTE1 X2dlbV9jb250ZXh0ICoKIGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAkJCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVf cHJpdikKIHsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eDsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAogCWxvY2tkZXBf YXNzZXJ0X2hlbGQoJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKIApAQCAtMzc1LDYgKzM3 NywxMiBAQCBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJCWN0eC0+ZGVzY190ZW1wbGF0ZSA9IGRlZmF1bHRfZGVzY190ZW1wbGF0ZShk ZXZfcHJpdiwgcHBndHQpOwogCX0KIAorCS8qIEluaXRpYWxpemUgdGhlIGNvbnRleHQgc3RhdHMg bG9jay4gKi8KKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKKwkJaWYg KGludGVsX2VuZ2luZV9zdXBwb3J0c19zdGF0cyhlbmdpbmUpKQorCQkJc2VxbG9ja19pbml0KCZj dHgtPmVuZ2luZVtpZF0uc3RhdHMubG9jayk7CisJfQorCiAJdHJhY2VfaTkxNV9jb250ZXh0X2Ny ZWF0ZShjdHgpOwogCiAJcmV0dXJuIGN0eDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2NvbnRleHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuaAppbmRleCA3ODU0MjYyZGRmZDkuLjE1OTIyM2M1ZmM1ZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGxp bnV4L2JpdG9wcy5oPgogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9y YWRpeC10cmVlLmg+CisjaW5jbHVkZSA8bGludXgvc2VxbG9jay5oPgogCiAjaW5jbHVkZSAiaTkx NV9nZW0uaCIKIApAQCAtMTYwLDYgKzE2MSwxMiBAQCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCB7 CiAJCXUzMiAqbHJjX3JlZ19zdGF0ZTsKIAkJdTY0IGxyY19kZXNjOwogCQlpbnQgcGluX2NvdW50 OworCQlzdHJ1Y3QgeworCQkJc2VxbG9ja190IGxvY2s7CisJCQlib29sIGFjdGl2ZTsKKwkJCWt0 aW1lX3Qgc3RhcnQ7CisJCQlrdGltZV90IHRvdGFsOworCQl9IHN0YXRzOwogCX0gZW5naW5lW0k5 MTVfTlVNX0VOR0lORVNdOwogCiAJLyoqIHJpbmdfc2l6ZTogc2l6ZSBmb3IgYWxsb2NhdGluZyB0 aGUgcGVyLWVuZ2luZSByaW5nIGJ1ZmZlciAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdp bmVfY3MuYwppbmRleCBkZTYxZDNkMTY1M2QuLmU2NjE2NjQ2NmQ2ZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKQEAgLTIwNzgsNiArMjA3OCwxNiBAQCBpbnQgaW50ZWxf ZW5hYmxlX2VuZ2luZV9zdGF0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIAkJ ZW5naW5lLT5zdGF0cy5lbmFibGVkX2F0ID0ga3RpbWVfZ2V0KCk7CiAKKwkJLyogTWFyayBjdXJy ZW50bHkgcnVubmluZyBjb250ZXh0IGFzIGFjdGl2ZS4gKi8KKwkJaWYgKHBvcnRfaXNzZXQocG9y dCkpIHsKKwkJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcSA9IHBvcnRfcmVxdWVzdChwb3J0KTsK KwkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9CisJCQkJCSZyZXEtPmN0eC0+ZW5naW5lW2Vu Z2luZS0+aWRdOworCisJCQljZS0+c3RhdHMuc3RhcnQgPSBlbmdpbmUtPnN0YXRzLmVuYWJsZWRf YXQ7CisJCQljZS0+c3RhdHMuYWN0aXZlID0gdHJ1ZTsKKwkJfQorCiAJCS8qIFhYWCBzdWJtaXNz aW9uIG1ldGhvZCBvYmxpdmlvdXM/ICovCiAJCXdoaWxlIChudW1fcG9ydHMtLSAmJiBwb3J0X2lz c2V0KHBvcnQpKSB7CiAJCQllbmdpbmUtPnN0YXRzLmFjdGl2ZSsrOwpAQCAtMjE1MSw2ICsyMTYx LDI3IEBAIHZvaWQgaW50ZWxfZGlzYWJsZV9lbmdpbmVfc3RhdHMoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQogCXdyaXRlX3NlcXVubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnN0YXRz LmxvY2ssIGZsYWdzKTsKIH0KIAora3RpbWVfdCBpbnRlbF9jb250ZXh0X2VuZ2luZV9nZXRfYnVz eV90aW1lKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCisJCQkJCSAgIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSAmY3R4 LT5lbmdpbmVbZW5naW5lLT5pZF07CisJdW5zaWduZWQgaW50IHNlcTsKKwlrdGltZV90IHRvdGFs OworCisJZG8geworCQlzZXEgPSByZWFkX3NlcWJlZ2luKCZjZS0+c3RhdHMubG9jayk7CisKKwkJ dG90YWwgPSBjZS0+c3RhdHMudG90YWw7CisKKwkJaWYgKGNlLT5zdGF0cy5hY3RpdmUpCisJCQl0 b3RhbCA9IGt0aW1lX2FkZCh0b3RhbCwKKwkJCQkJICBrdGltZV9zdWIoa3RpbWVfZ2V0KCksCisJ CQkJCQkgICAgY2UtPnN0YXRzLnN0YXJ0KSk7CisJfSB3aGlsZSAocmVhZF9zZXFyZXRyeSgmY2Ut PnN0YXRzLmxvY2ssIHNlcSkpOworCisJcmV0dXJuIHRvdGFsOworfQorCiAjaWYgSVNfRU5BQkxF RChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCiAjaW5jbHVkZSAic2VsZnRlc3RzL21vY2tfZW5n aW5lLmMiCiAjaW5jbHVkZSAic2VsZnRlc3RzL2ludGVsX2VuZ2luZV9jcy5jIgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYwppbmRleCBkZGQxNGUzMGJlNmMuLjkzMGZjZjBiMWU4NiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMKQEAgLTM4OSwxNiArMzg5LDE4IEBAIGV4ZWNsaXN0c191c2VyX2Vu ZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQogfQogCiBzdGF0aWMg aW5saW5lIHZvaWQKLWV4ZWNsaXN0c19jb250ZXh0X3NjaGVkdWxlX2luKHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxKQorZXhlY2xpc3RzX2NvbnRleHRfc2NoZWR1bGVfaW4oc3RydWN0IGk5MTVfcmVx dWVzdCAqcnEsIHVuc2lnbmVkIGludCBwb3J0KQogewogCWV4ZWNsaXN0c19jb250ZXh0X3N0YXR1 c19jaGFuZ2UocnEsIElOVEVMX0NPTlRFWFRfU0NIRURVTEVfSU4pOwotCWludGVsX2VuZ2luZV9j b250ZXh0X2luKHJxLT5lbmdpbmUpOworCWludGVsX2VuZ2luZV9jb250ZXh0X2luKHJxLT5lbmdp bmUsCisJCQkJJnJxLT5jdHgtPmVuZ2luZVtycS0+ZW5naW5lLT5pZF0sCisJCQkJcG9ydCA9PSAw KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCiBleGVjbGlzdHNfY29udGV4dF9zY2hlZHVsZV9v dXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiB7Ci0JaW50ZWxfZW5naW5lX2NvbnRleHRfb3V0 KHJxLT5lbmdpbmUpOworCWludGVsX2VuZ2luZV9jb250ZXh0X291dChycS0+ZW5naW5lLCAmcnEt PmN0eC0+ZW5naW5lW3JxLT5lbmdpbmUtPmlkXSk7CiAJZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVz X2NoYW5nZShycSwgSU5URUxfQ09OVEVYVF9TQ0hFRFVMRV9PVVQpOwogfQogCkBAIC00NjMsNyAr NDY1LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pdF9wb3J0cyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiAJCWlmIChycSkgewogCQkJR0VNX0JVR19PTihjb3VudCA+ICFu KTsKIAkJCWlmICghY291bnQrKykKLQkJCQlleGVjbGlzdHNfY29udGV4dF9zY2hlZHVsZV9pbihy cSk7CisJCQkJZXhlY2xpc3RzX2NvbnRleHRfc2NoZWR1bGVfaW4ocnEsIG4pOwogCQkJcG9ydF9z ZXQoJnBvcnRbbl0sIHBvcnRfcGFjayhycSwgY291bnQpKTsKIAkJCWRlc2MgPSBleGVjbGlzdHNf dXBkYXRlX2NvbnRleHQocnEpOwogCQkJR0VNX0RFQlVHX0VYRUMocG9ydFtuXS5jb250ZXh0X2lk ID0gdXBwZXJfMzJfYml0cyhkZXNjKSk7CkBAIC03NTEsNyArNzUzLDkgQEAgZXhlY2xpc3RzX2Nh bmNlbF9wb3J0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3Qg ZXhlY2xpc3RzKQogCQkJICBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKHJxLT5lbmdpbmUpKTsKIAog CQlHRU1fQlVHX09OKCFleGVjbGlzdHMtPmFjdGl2ZSk7Ci0JCWludGVsX2VuZ2luZV9jb250ZXh0 X291dChycS0+ZW5naW5lKTsKKworCQlpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQocnEtPmVuZ2lu ZSwKKwkJCQkJICZycS0+Y3R4LT5lbmdpbmVbcnEtPmVuZ2luZS0+aWRdKTsKIAogCQlleGVjbGlz dHNfY29udGV4dF9zdGF0dXNfY2hhbmdlKHJxLAogCQkJCQkJaTkxNV9yZXF1ZXN0X2NvbXBsZXRl ZChycSkgPwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IGYyNGVh OTgyNjAzNy4uNGQxMjJiYTFjZDMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oCkBAIC02LDYgKzYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NlcWxvY2suaD4KIAogI2lu Y2x1ZGUgImk5MTVfZ2VtX2JhdGNoX3Bvb2wuaCIKKyNpbmNsdWRlICJpOTE1X2dlbV9jb250ZXh0 LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fdGltZWxpbmUuaCIKIAogI2luY2x1ZGUgImk5MTVfcmVn LmgiCkBAIC0xMDc2LDI1ICsxMDc3LDQ0IEBAIHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogc3RydWN0IGludGVsX2VuZ2luZV9jcyAqCiBpbnRl bF9lbmdpbmVfbG9va3VwX3VzZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHU4IGNs YXNzLCB1OCBpbnN0YW5jZSk7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9lbmdpbmVfY29u dGV4dF9pbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCitzdGF0aWMgaW5saW5lIHZv aWQKK2ludGVsX2VuZ2luZV9jb250ZXh0X2luKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKKwkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKKwkJCWJvb2wgc3VibWl0KQogewogCXVu c2lnbmVkIGxvbmcgZmxhZ3M7CisJa3RpbWVfdCBub3c7CiAKIAlpZiAoUkVBRF9PTkNFKGVuZ2lu ZS0+c3RhdHMuZW5hYmxlZCkgPT0gMCkKIAkJcmV0dXJuOwogCiAJd3JpdGVfc2VxbG9ja19pcnFz YXZlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKIAorCWlmIChzdWJtaXQpIHsKKwkJbm93 ID0ga3RpbWVfZ2V0KCk7CisJCXdyaXRlX3NlcWxvY2soJmNlLT5zdGF0cy5sb2NrKTsKKwkJY2Ut PnN0YXRzLnN0YXJ0ID0gbm93OworCQljZS0+c3RhdHMuYWN0aXZlID0gdHJ1ZTsKKwkJd3JpdGVf c2VxdW5sb2NrKCZjZS0+c3RhdHMubG9jayk7CisJfSBlbHNlIHsKKwkJbm93ID0gMDsKKwl9CisK IAlpZiAoZW5naW5lLT5zdGF0cy5lbmFibGVkID4gMCkgewotCQlpZiAoZW5naW5lLT5zdGF0cy5h Y3RpdmUrKyA9PSAwKQotCQkJZW5naW5lLT5zdGF0cy5zdGFydCA9IGt0aW1lX2dldCgpOworCQlp ZiAoZW5naW5lLT5zdGF0cy5hY3RpdmUrKyA9PSAwKSB7CisJCQlpZiAoIW5vdykKKwkJCQlub3cg PSBrdGltZV9nZXQoKTsKKwkJCWVuZ2luZS0+c3RhdHMuc3RhcnQgPSBub3c7CisJCX0KIAkJR0VN X0JVR19PTihlbmdpbmUtPnN0YXRzLmFjdGl2ZSA9PSAwKTsKIAl9CiAKIAl3cml0ZV9zZXF1bmxv Y2tfaXJxcmVzdG9yZSgmZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7CiB9CiAKLXN0YXRpYyBp bmxpbmUgdm9pZCBpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQorc3RhdGljIGlubGluZSB2b2lkCitpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJIHN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjZSkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCkBAIC0xMTA0LDE0ICsxMTI0LDM0IEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogCXdyaXRlX3NlcWxvY2tfaXJxc2F2ZSgmZW5naW5lLT5zdGF0 cy5sb2NrLCBmbGFncyk7CiAKIAlpZiAoZW5naW5lLT5zdGF0cy5lbmFibGVkID4gMCkgeworCQlz dHJ1Y3QgZXhlY2xpc3RfcG9ydCAqbmV4dF9wb3J0ID0gJmVuZ2luZS0+ZXhlY2xpc3RzLnBvcnRb MV07CisJCWt0aW1lX3Qgbm93ID0ga3RpbWVfZ2V0KCk7CiAJCWt0aW1lX3QgbGFzdDsKIAorCQl3 cml0ZV9zZXFsb2NrKCZjZS0+c3RhdHMubG9jayk7CisJCUdFTV9CVUdfT04oIWNlLT5zdGF0cy5z dGFydCk7CisJCWNlLT5zdGF0cy50b3RhbCA9IGt0aW1lX2FkZChjZS0+c3RhdHMudG90YWwsCisJ CQkJCSAgICBrdGltZV9zdWIobm93LCBjZS0+c3RhdHMuc3RhcnQpKTsKKwkJY2UtPnN0YXRzLmFj dGl2ZSA9IGZhbHNlOworCQl3cml0ZV9zZXF1bmxvY2soJmNlLT5zdGF0cy5sb2NrKTsKKworCQlp ZiAocG9ydF9pc3NldChuZXh0X3BvcnQpKSB7CisJCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpuZXh0 X3JlcSA9IHBvcnRfcmVxdWVzdChuZXh0X3BvcnQpOworCQkJc3RydWN0IGludGVsX2NvbnRleHQg Km5leHRfY2UgPQorCQkJCQkmbmV4dF9yZXEtPmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdOworCisJ CQl3cml0ZV9zZXFsb2NrKCZuZXh0X2NlLT5zdGF0cy5sb2NrKTsKKwkJCW5leHRfY2UtPnN0YXRz LnN0YXJ0ID0gbm93OworCQkJbmV4dF9jZS0+c3RhdHMuYWN0aXZlID0gdHJ1ZTsKKwkJCXdyaXRl X3NlcXVubG9jaygmbmV4dF9jZS0+c3RhdHMubG9jayk7CisJCX0KKwogCQlpZiAoZW5naW5lLT5z dGF0cy5hY3RpdmUgJiYgLS1lbmdpbmUtPnN0YXRzLmFjdGl2ZSA9PSAwKSB7CiAJCQkvKgogCQkJ ICogRGVjcmVtZW50IHRoZSBhY3RpdmUgY29udGV4dCBjb3VudCBhbmQgaW4gY2FzZSBHUFUKIAkJ CSAqIGlzIG5vdyBpZGxlIGFkZCB1cCB0byB0aGUgcnVubmluZyB0b3RhbC4KIAkJCSAqLwotCQkJ bGFzdCA9IGt0aW1lX3N1YihrdGltZV9nZXQoKSwgZW5naW5lLT5zdGF0cy5zdGFydCk7CisJCQls YXN0ID0ga3RpbWVfc3ViKG5vdywgZW5naW5lLT5zdGF0cy5zdGFydCk7CiAKIAkJCWVuZ2luZS0+ c3RhdHMudG90YWwgPSBrdGltZV9hZGQoZW5naW5lLT5zdGF0cy50b3RhbCwKIAkJCQkJCQlsYXN0 KTsKQEAgLTExMjEsNyArMTE2MSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9lbmdpbmVf Y29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJICogdGhlIGZp cnN0IGV2ZW50IGluIHdoaWNoIGNhc2Ugd2UgYWNjb3VudCBmcm9tIHRoZQogCQkJICogdGltZSBz dGF0cyBnYXRoZXJpbmcgd2FzIHR1cm5lZCBvbi4KIAkJCSAqLwotCQkJbGFzdCA9IGt0aW1lX3N1 YihrdGltZV9nZXQoKSwgZW5naW5lLT5zdGF0cy5lbmFibGVkX2F0KTsKKwkJCWxhc3QgPSBrdGlt ZV9zdWIobm93LCBlbmdpbmUtPnN0YXRzLmVuYWJsZWRfYXQpOwogCiAJCQllbmdpbmUtPnN0YXRz LnRvdGFsID0ga3RpbWVfYWRkKGVuZ2luZS0+c3RhdHMudG90YWwsCiAJCQkJCQkJbGFzdCk7CkBA IC0xMTMxLDYgKzExNzEsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZW5naW5lX2NvbnRl eHRfb3V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAl3cml0ZV9zZXF1bmxvY2tf aXJxcmVzdG9yZSgmZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7CiB9CiAKK2t0aW1lX3QgaW50 ZWxfY29udGV4dF9lbmdpbmVfZ2V0X2J1c3lfdGltZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAq Y3R4LAorCQkJCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOworCiBpbnQgaW50 ZWxfZW5hYmxlX2VuZ2luZV9zdGF0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwog dm9pZCBpbnRlbF9kaXNhYmxlX2VuZ2luZV9zdGF0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpOwogCi0tIAoyLjE0LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=