From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v5 1/6] drm/i915: Track per-context engine busyness Date: Fri, 19 Jan 2018 16:26:16 +0000 Message-ID: <20180119162616.10537-1-tvrtko.ursulin@linux.intel.com> References: <20180119134528.4720-2-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x242.google.com (mail-wr0-x242.google.com [IPv6:2a00:1450:400c:c0c::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 20DD66EAAE for ; Fri, 19 Jan 2018 16:26:27 +0000 (UTC) Received: by mail-wr0-x242.google.com with SMTP id g38so2072089wrd.2 for ; Fri, 19 Jan 2018 08:26:26 -0800 (PST) In-Reply-To: <20180119134528.4720-2-tvrtko.ursulin@linux.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 Cc: gordon.kelly@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNvbWUgY3Vz dG9tZXJzIHdhbnQgdG8ga25vdyBob3cgbXVjaCBvZiB0aGUgR1BVIHRpbWUgYXJlIHRoZWlyIGNs aWVudHMKdXNpbmcgaW4gb3JkZXIgdG8gbWFrZSBkeW5hbWljIGxvYWQgYmFsYW5jaW5nIGRlY2lz aW9ucy4KCldpdGggdGhlIGhvb2tzIGFscmVhZHkgaW4gcGxhY2Ugd2hpY2ggdHJhY2sgdGhlIG92 ZXJhbGwgZW5naW5lIGJ1c3luZXNzLAp3ZSBjYW4gZXh0ZW5kIHRoYXQgc2xpZ2h0bHkgdG8gc3Bs aXQgdGhhdCB0aW1lIGJldHdlZW4gY29udGV4dHMuCgp2MjogRml4IGFjY291bnRpbmcgZm9yIHRh aWwgdXBkYXRlcy4KdjM6IFJlYmFzZS4KdjQ6IE1hcmsgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4 dHMgYXMgYWN0aXZlIG9uIHN0YXRzIGVuYWJsZS4KdjU6IEluY2x1ZGUgc29tZSBoZWFkZXJzIHRv IGZpeCB0aGUgYnVpbGQuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVy c3VsaW5AaW50ZWwuY29tPgpDYzogZ29yZG9uLmtlbGx5QGludGVsLmNvbQotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaCB8ICA4ICsrKysrKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgIHwgMzIgKysrKysrKysrKysrKysrKysrKysrCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAxNCArKysrKy0tLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8IDUwICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCAx MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9jb250ZXh0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKaW5k ZXggNGJmYjcyZjhlMWNiLi43ZjVlZWJiNjcxNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9jb250ZXh0LmgKQEAgLTI5LDYgKzI5LDkgQEAKICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+ CiAjaW5jbHVkZSA8bGludXgvcmFkaXgtdHJlZS5oPgogCisjaW5jbHVkZSAiaTkxNV9nZW0uaCIK KyNpbmNsdWRlICJpOTE1X2dlbV9yZXF1ZXN0LmgiCisKIHN0cnVjdCBwaWQ7CiAKIHN0cnVjdCBk cm1fZGV2aWNlOwpAQCAtMTU3LDYgKzE2MCwxMSBAQCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCB7 CiAJCXUzMiAqbHJjX3JlZ19zdGF0ZTsKIAkJdTY0IGxyY19kZXNjOwogCQlpbnQgcGluX2NvdW50 OworCQlzdHJ1Y3QgeworCQkJYm9vbCBhY3RpdmU7CisJCQlrdGltZV90IHN0YXJ0OworCQkJa3Rp bWVfdCB0b3RhbDsKKwkJfSBzdGF0czsKIAl9IGVuZ2luZVtJOTE1X05VTV9FTkdJTkVTXTsKIAog CS8qKiByaW5nX3NpemU6IHNpemUgZm9yIGFsbG9jYXRpbmcgdGhlIHBlci1lbmdpbmUgcmluZyBi dWZmZXIgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9j cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXggZDU3MmIx OGQzOWViLi45OTA3Y2VlZGZhOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2VuZ2luZV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9j cy5jCkBAIC0xOTY2LDYgKzE5NjYsMTYgQEAgaW50IGludGVsX2VuYWJsZV9lbmdpbmVfc3RhdHMo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiAJCWVuZ2luZS0+c3RhdHMuZW5hYmxl ZF9hdCA9IGt0aW1lX2dldCgpOwogCisJCS8qIE1hcmsgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4 dCBhcyBhY3RpdmUuICovCisJCWlmIChwb3J0X2lzc2V0KHBvcnQpKSB7CisJCQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IHBvcnRfcmVxdWVzdChwb3J0KTsKKwkJCXN0cnVjdCBp bnRlbF9jb250ZXh0ICpjZSA9CisJCQkJCSZyZXEtPmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdOwor CisJCQljZS0+c3RhdHMuc3RhcnQgPSBlbmdpbmUtPnN0YXRzLmVuYWJsZWRfYXQ7CisJCQljZS0+ c3RhdHMuYWN0aXZlID0gdHJ1ZTsKKwkJfQorCiAJCS8qIFhYWCBzdWJtaXNzaW9uIG1ldGhvZCBv YmxpdmlvdXM/ICovCiAJCXdoaWxlIChudW1fcG9ydHMtLSAmJiBwb3J0X2lzc2V0KHBvcnQpKSB7 CiAJCQllbmdpbmUtPnN0YXRzLmFjdGl2ZSsrOwpAQCAtMjAzOCw2ICsyMDQ4LDI4IEBAIHZvaWQg aW50ZWxfZGlzYWJsZV9lbmdpbmVfc3RhdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOwog fQogCitrdGltZV90IGludGVsX2NvbnRleHRfZW5naW5lX2dldF9idXN5X3RpbWUoc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eCwKKwkJCQkJICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQoreworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdz OworCWt0aW1lX3QgdG90YWw7CisKKwljZSA9ICZjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXTsKKwor CXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKKworCXRvdGFs ID0gY2UtPnN0YXRzLnRvdGFsOworCisJaWYgKGNlLT5zdGF0cy5hY3RpdmUpCisJCXRvdGFsID0g a3RpbWVfYWRkKHRvdGFsLAorCQkJCSAga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBjZS0+c3RhdHMu c3RhcnQpKTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywg ZmxhZ3MpOworCisJcmV0dXJuIHRvdGFsOworfQorCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJN X0k5MTVfU0VMRlRFU1QpCiAjaW5jbHVkZSAic2VsZnRlc3RzL21vY2tfZW5naW5lLmMiCiAjZW5k aWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggMjRjZTc4MWQzOWI3Li5hODJhZDVkYTYw OTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0zODAsMTYgKzM4MCwxOSBAQCBleGVj bGlzdHNfY29udGV4dF9zdGF0dXNfY2hhbmdlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cnEsCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAotZXhlY2xpc3RzX2NvbnRleHRfc2NoZWR1bGVf aW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKK2V4ZWNsaXN0c19jb250ZXh0X3Nj aGVkdWxlX2luKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEsCisJCQkgICAgICB1bnNp Z25lZCBpbnQgcG9ydCkKIHsKIAlleGVjbGlzdHNfY29udGV4dF9zdGF0dXNfY2hhbmdlKHJxLCBJ TlRFTF9DT05URVhUX1NDSEVEVUxFX0lOKTsKLQlpbnRlbF9lbmdpbmVfY29udGV4dF9pbihycS0+ ZW5naW5lKTsKKwlpbnRlbF9lbmdpbmVfY29udGV4dF9pbihycS0+ZW5naW5lLAorCQkJCSZycS0+ Y3R4LT5lbmdpbmVbcnEtPmVuZ2luZS0+aWRdLAorCQkJCXBvcnQgPT0gMCk7CiB9CiAKIHN0YXRp YyBpbmxpbmUgdm9pZAogZXhlY2xpc3RzX2NvbnRleHRfc2NoZWR1bGVfb3V0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcnEpCiB7Ci0JaW50ZWxfZW5naW5lX2NvbnRleHRfb3V0KHJxLT5l bmdpbmUpOworCWludGVsX2VuZ2luZV9jb250ZXh0X291dChycS0+ZW5naW5lLCAmcnEtPmN0eC0+ ZW5naW5lW3JxLT5lbmdpbmUtPmlkXSk7CiAJZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5n ZShycSwgSU5URUxfQ09OVEVYVF9TQ0hFRFVMRV9PVVQpOwogfQogCkBAIC00NDIsNyArNDQ1LDcg QEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pdF9wb3J0cyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiAJCWlmIChycSkgewogCQkJR0VNX0JVR19PTihjb3VudCA+ICFuKTsKIAkJ CWlmICghY291bnQrKykKLQkJCQlleGVjbGlzdHNfY29udGV4dF9zY2hlZHVsZV9pbihycSk7CisJ CQkJZXhlY2xpc3RzX2NvbnRleHRfc2NoZWR1bGVfaW4ocnEsIG4pOwogCQkJcG9ydF9zZXQoJnBv cnRbbl0sIHBvcnRfcGFjayhycSwgY291bnQpKTsKIAkJCWRlc2MgPSBleGVjbGlzdHNfdXBkYXRl X2NvbnRleHQocnEpOwogCQkJR0VNX0RFQlVHX0VYRUMocG9ydFtuXS5jb250ZXh0X2lkID0gdXBw ZXJfMzJfYml0cyhkZXNjKSk7CkBAIC03MDMsNyArNzA2LDggQEAgZXhlY2xpc3RzX2NhbmNlbF9w b3J0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xp c3RzKQogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxID0gcG9ydF9yZXF1ZXN0KHBv cnQpOwogCiAJCUdFTV9CVUdfT04oIWV4ZWNsaXN0cy0+YWN0aXZlKTsKLQkJaW50ZWxfZW5naW5l X2NvbnRleHRfb3V0KHJxLT5lbmdpbmUpOworCQlpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQocnEt PmVuZ2luZSwKKwkJCQkJICZycS0+Y3R4LT5lbmdpbmVbcnEtPmVuZ2luZS0+aWRdKTsKIAkJZXhl Y2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5nZShycSwgSU5URUxfQ09OVEVYVF9TQ0hFRFVMRV9Q UkVFTVBURUQpOwogCQlpOTE1X2dlbV9yZXF1ZXN0X3B1dChycSk7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCBiMTk4ZGYxZjI0OGMuLjI3YjcyN2NmNDAxNyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtNCw2ICs0LDcgQEAK IAogI2luY2x1ZGUgPGxpbnV4L2hhc2h0YWJsZS5oPgogI2luY2x1ZGUgImk5MTVfZ2VtX2JhdGNo X3Bvb2wuaCIKKyNpbmNsdWRlICJpOTE1X2dlbV9jb250ZXh0LmgiCiAjaW5jbHVkZSAiaTkxNV9n ZW1fcmVxdWVzdC5oIgogI2luY2x1ZGUgImk5MTVfZ2VtX3RpbWVsaW5lLmgiCiAjaW5jbHVkZSAi aTkxNV9wbXUuaCIKQEAgLTEwMzYsMjUgKzEwMzcsNDIgQEAgdm9pZCBpbnRlbF9lbmdpbmVfZHVt cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICoKIGludGVsX2VuZ2luZV9sb29rdXBfdXNlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwgdTggY2xhc3MsIHU4IGluc3RhbmNlKTsKIAotc3RhdGljIGlubGluZSB2b2lkIGludGVsX2Vu Z2luZV9jb250ZXh0X2luKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyBp bmxpbmUgdm9pZAoraW50ZWxfZW5naW5lX2NvbnRleHRfaW4oc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAorCQkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAorCQkJYm9vbCBzdWJtaXQp CiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlrdGltZV90IG5vdzsKIAogCWlmIChSRUFEX09O Q0UoZW5naW5lLT5zdGF0cy5lbmFibGVkKSA9PSAwKQogCQlyZXR1cm47CiAKIAlzcGluX2xvY2tf aXJxc2F2ZSgmZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7CiAKKwlpZiAoc3VibWl0KSB7CisJ CW5vdyA9IGt0aW1lX2dldCgpOworCQljZS0+c3RhdHMuc3RhcnQgPSBub3c7CisJCWNlLT5zdGF0 cy5hY3RpdmUgPSB0cnVlOworCX0gZWxzZSB7CisJCW5vdyA9IDA7CisJfQorCiAJaWYgKGVuZ2lu ZS0+c3RhdHMuZW5hYmxlZCA+IDApIHsKLQkJaWYgKGVuZ2luZS0+c3RhdHMuYWN0aXZlKysgPT0g MCkKLQkJCWVuZ2luZS0+c3RhdHMuc3RhcnQgPSBrdGltZV9nZXQoKTsKKwkJaWYgKGVuZ2luZS0+ c3RhdHMuYWN0aXZlKysgPT0gMCkgeworCQkJaWYgKCFub3cpCisJCQkJbm93ID0ga3RpbWVfZ2V0 KCk7CisJCQllbmdpbmUtPnN0YXRzLnN0YXJ0ID0gbm93OworCQl9CiAJCUdFTV9CVUdfT04oZW5n aW5lLT5zdGF0cy5hY3RpdmUgPT0gMCk7CiAJfQogCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRl bF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorc3Rh dGljIGlubGluZSB2b2lkCitpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lLAorCQkJIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKIHsKIAl1bnNp Z25lZCBsb25nIGZsYWdzOwogCkBAIC0xMDY0LDE0ICsxMDgyLDMxIEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQogCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKIAog CWlmIChlbmdpbmUtPnN0YXRzLmVuYWJsZWQgPiAwKSB7CisJCXN0cnVjdCBleGVjbGlzdF9wb3J0 ICpuZXh0X3BvcnQgPSAmZW5naW5lLT5leGVjbGlzdHMucG9ydFsxXTsKKwkJa3RpbWVfdCBub3cg PSBrdGltZV9nZXQoKTsKIAkJa3RpbWVfdCBsYXN0OwogCisJCUdFTV9CVUdfT04oIWNlLT5zdGF0 cy5zdGFydCk7CisJCWNlLT5zdGF0cy50b3RhbCA9IGt0aW1lX2FkZChjZS0+c3RhdHMudG90YWws CisJCQkJCSAgICBrdGltZV9zdWIobm93LCBjZS0+c3RhdHMuc3RhcnQpKTsKKwkJY2UtPnN0YXRz LmFjdGl2ZSA9IGZhbHNlOworCisJCWlmIChwb3J0X2lzc2V0KG5leHRfcG9ydCkpIHsKKwkJCXN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqbmV4dF9yZXEgPQorCQkJCQkJcG9ydF9yZXF1ZXN0 KG5leHRfcG9ydCk7CisJCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqbmV4dF9jZSA9CisJCQkJCSZu ZXh0X3JlcS0+Y3R4LT5lbmdpbmVbZW5naW5lLT5pZF07CisKKwkJCW5leHRfY2UtPnN0YXRzLnN0 YXJ0ID0gbm93OworCQkJbmV4dF9jZS0+c3RhdHMuYWN0aXZlID0gdHJ1ZTsKKwkJfQorCiAJCWlm IChlbmdpbmUtPnN0YXRzLmFjdGl2ZSAmJiAtLWVuZ2luZS0+c3RhdHMuYWN0aXZlID09IDApIHsK IAkJCS8qCiAJCQkgKiBEZWNyZW1lbnQgdGhlIGFjdGl2ZSBjb250ZXh0IGNvdW50IGFuZCBpbiBj YXNlIEdQVQogCQkJICogaXMgbm93IGlkbGUgYWRkIHVwIHRvIHRoZSBydW5uaW5nIHRvdGFsLgog CQkJICovCi0JCQlsYXN0ID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBlbmdpbmUtPnN0YXRzLnN0 YXJ0KTsKKwkJCWxhc3QgPSBrdGltZV9zdWIobm93LCBlbmdpbmUtPnN0YXRzLnN0YXJ0KTsKIAog CQkJZW5naW5lLT5zdGF0cy50b3RhbCA9IGt0aW1lX2FkZChlbmdpbmUtPnN0YXRzLnRvdGFsLAog CQkJCQkJCWxhc3QpOwpAQCAtMTA4MSw3ICsxMTE2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGlu dGVsX2VuZ2luZV9jb250ZXh0X291dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJ CQkgKiB0aGUgZmlyc3QgZXZlbnQgaW4gd2hpY2ggY2FzZSB3ZSBhY2NvdW50IGZyb20gdGhlCiAJ CQkgKiB0aW1lIHN0YXRzIGdhdGhlcmluZyB3YXMgdHVybmVkIG9uLgogCQkJICovCi0JCQlsYXN0 ID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBlbmdpbmUtPnN0YXRzLmVuYWJsZWRfYXQpOworCQkJ bGFzdCA9IGt0aW1lX3N1Yihub3csIGVuZ2luZS0+c3RhdHMuZW5hYmxlZF9hdCk7CiAKIAkJCWVu Z2luZS0+c3RhdHMudG90YWwgPSBrdGltZV9hZGQoZW5naW5lLT5zdGF0cy50b3RhbCwKIAkJCQkJ CQlsYXN0KTsKQEAgLTEwOTEsNiArMTEyNiw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9l bmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOwogfQogCitrdGlt ZV90IGludGVsX2NvbnRleHRfZW5naW5lX2dldF9idXN5X3RpbWUoc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmN0eCwKKwkJCQkJICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKKwog aW50IGludGVsX2VuYWJsZV9lbmdpbmVfc3RhdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKTsKIHZvaWQgaW50ZWxfZGlzYWJsZV9lbmdpbmVfc3RhdHMoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKTsKIAotLSAKMi4xNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK