From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC 1/5] drm/i915: Track per-context engine busyness Date: Wed, 14 Feb 2018 18:50:31 +0000 Message-ID: <20180214185035.8010-2-tvrtko.ursulin@linux.intel.com> References: <20180214185035.8010-1-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-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 40F3D89DFB for ; Wed, 14 Feb 2018 18:50:48 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id j199so12468996wmj.2 for ; Wed, 14 Feb 2018 10:50:48 -0800 (PST) In-Reply-To: <20180214185035.8010-1-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 IGZpeCB0aGUgYnVpbGQuCnY2OiBBZGRlZCBmaW5lIGdyYWluZWQgbG9jay4KClNpZ25lZC1vZmYt Ynk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBnb3Jkb24u a2VsbHlAaW50ZWwuY29tCi0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4 dC5jIHwgIDggKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaCB8 ICA3ICsrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgfCAyOSAr KysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAg IHwgMTQgKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgg fCA1NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDUgZmlsZXMgY2hhbmdlZCwg MTAzIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2NvbnRleHQuYwppbmRleCAzZDc1ZjQ4NGY2ZTUuLjdjNmE0MDZmZDMwOSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtMzQyLDcgKzM0Miw5IEBAIHN0 YXRpYyBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqCiBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQlzdHJ1Y3QgZHJtX2k5MTVfZmls ZV9wcml2YXRlICpmaWxlX3ByaXYpCiB7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l OwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQg aWQ7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7 CiAKQEAgLTM2OCw2ICszNzAsMTIgQEAgaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQljdHgtPmRlc2NfdGVtcGxhdGUgPSBkZWZhdWx0 X2Rlc2NfdGVtcGxhdGUoZGV2X3ByaXYsIHBwZ3R0KTsKIAl9CiAKKwkvKiBJbml0aWFsaXplIHRo ZSBjb250ZXh0IHN0YXRzIGxvY2suICovCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3By aXYsIGlkKSB7CisJCWlmIChpbnRlbF9lbmdpbmVfc3VwcG9ydHNfc3RhdHMoZW5naW5lKSkKKwkJ CXNwaW5fbG9ja19pbml0KCZjdHgtPmVuZ2luZVtpZF0uc3RhdHMubG9jayk7CisJfQorCiAJdHJh Y2VfaTkxNV9jb250ZXh0X2NyZWF0ZShjdHgpOwogCiAJcmV0dXJuIGN0eDsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAppbmRleCBhNjgxYzViODkxZmYuLjRkZTA3ODQwOGRj MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaApAQCAtMjgsNiArMjgs NyBAQAogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4K ICNpbmNsdWRlIDxsaW51eC9yYWRpeC10cmVlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2su aD4KIAogI2luY2x1ZGUgImk5MTVfZ2VtLmgiCiAKQEAgLTE2MCw2ICsxNjEsMTIgQEAgc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgewogCQl1MzIgKmxyY19yZWdfc3RhdGU7CiAJCXU2NCBscmNfZGVz YzsKIAkJaW50IHBpbl9jb3VudDsKKwkJc3RydWN0IHsKKwkJCXNwaW5sb2NrX3QgbG9jazsKKwkJ CWJvb2wgYWN0aXZlOworCQkJa3RpbWVfdCBzdGFydDsKKwkJCWt0aW1lX3QgdG90YWw7CisJCX0g c3RhdHM7CiAJfSBlbmdpbmVbSTkxNV9OVU1fRU5HSU5FU107CiAKIAkvKiogcmluZ19zaXplOiBz aXplIGZvciBhbGxvY2F0aW5nIHRoZSBwZXItZW5naW5lIHJpbmcgYnVmZmVyICovCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IGM5MGU2NDliNzQ1OC4uMTUyYjA5NTE0 ZDI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtMTk5MCw2ICsx OTkwLDE2IEBAIGludCBpbnRlbF9lbmFibGVfZW5naW5lX3N0YXRzKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKIAogCQllbmdpbmUtPnN0YXRzLmVuYWJsZWRfYXQgPSBrdGltZV9nZXQo KTsKIAorCQkvKiBNYXJrIGN1cnJlbnRseSBydW5uaW5nIGNvbnRleHQgYXMgYWN0aXZlLiAqLwor CQlpZiAocG9ydF9pc3NldChwb3J0KSkgeworCQkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEgPSBwb3J0X3JlcXVlc3QocG9ydCk7CisJCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2Ug PQorCQkJCQkmcmVxLT5jdHgtPmVuZ2luZVtlbmdpbmUtPmlkXTsKKworCQkJY2UtPnN0YXRzLnN0 YXJ0ID0gZW5naW5lLT5zdGF0cy5lbmFibGVkX2F0OworCQkJY2UtPnN0YXRzLmFjdGl2ZSA9IHRy dWU7CisJCX0KKwogCQkvKiBYWFggc3VibWlzc2lvbiBtZXRob2Qgb2JsaXZpb3VzPyAqLwogCQl3 aGlsZSAobnVtX3BvcnRzLS0gJiYgcG9ydF9pc3NldChwb3J0KSkgewogCQkJZW5naW5lLT5zdGF0 cy5hY3RpdmUrKzsKQEAgLTIwNjIsNiArMjA3MiwyNSBAQCB2b2lkIGludGVsX2Rpc2FibGVfZW5n aW5lX3N0YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKIH0KIAora3RpbWVfdCBpbnRl bF9jb250ZXh0X2VuZ2luZV9nZXRfYnVzeV90aW1lKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpj dHgsCisJCQkJCSAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY2UgPSAmY3R4LT5lbmdpbmVbZW5naW5lLT5pZF07CisJa3RpbWVfdCB0 b3RhbDsKKworCXNwaW5fbG9ja19pcnEoJmNlLT5zdGF0cy5sb2NrKTsKKworCXRvdGFsID0gY2Ut PnN0YXRzLnRvdGFsOworCisJaWYgKGNlLT5zdGF0cy5hY3RpdmUpCisJCXRvdGFsID0ga3RpbWVf YWRkKHRvdGFsLAorCQkJCSAga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBjZS0+c3RhdHMuc3RhcnQp KTsKKworCXNwaW5fdW5sb2NrX2lycSgmY2UtPnN0YXRzLmxvY2spOworCisJcmV0dXJuIHRvdGFs OworfQorCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCiAjaW5jbHVk ZSAic2VsZnRlc3RzL21vY2tfZW5naW5lLmMiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKaW5kZXggODI3YzZhM2QzMGI4Li5mYmEyMDg5ZTE2YzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCkBAIC0zMzEsMTYgKzMzMSwxOSBAQCBleGVjbGlzdHNfY29udGV4dF9zdGF0dXNfY2hh bmdlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEsCiB9CiAKIHN0YXRpYyBpbmxpbmUg dm9pZAotZXhlY2xpc3RzX2NvbnRleHRfc2NoZWR1bGVfaW4oc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpycSkKK2V4ZWNsaXN0c19jb250ZXh0X3NjaGVkdWxlX2luKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcnEsCisJCQkgICAgICB1bnNpZ25lZCBpbnQgcG9ydCkKIHsKIAlleGVj bGlzdHNfY29udGV4dF9zdGF0dXNfY2hhbmdlKHJxLCBJTlRFTF9DT05URVhUX1NDSEVEVUxFX0lO KTsKLQlpbnRlbF9lbmdpbmVfY29udGV4dF9pbihycS0+ZW5naW5lKTsKKwlpbnRlbF9lbmdpbmVf Y29udGV4dF9pbihycS0+ZW5naW5lLAorCQkJCSZycS0+Y3R4LT5lbmdpbmVbcnEtPmVuZ2luZS0+ aWRdLAorCQkJCXBvcnQgPT0gMCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAogZXhlY2xpc3Rz X2NvbnRleHRfc2NoZWR1bGVfb3V0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCiB7 Ci0JaW50ZWxfZW5naW5lX2NvbnRleHRfb3V0KHJxLT5lbmdpbmUpOworCWludGVsX2VuZ2luZV9j b250ZXh0X291dChycS0+ZW5naW5lLCAmcnEtPmN0eC0+ZW5naW5lW3JxLT5lbmdpbmUtPmlkXSk7 CiAJZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5nZShycSwgSU5URUxfQ09OVEVYVF9TQ0hF RFVMRV9PVVQpOwogfQogCkBAIC0zOTMsNyArMzk2LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3Rz X3N1Ym1pdF9wb3J0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWlmIChycSkg ewogCQkJR0VNX0JVR19PTihjb3VudCA+ICFuKTsKIAkJCWlmICghY291bnQrKykKLQkJCQlleGVj bGlzdHNfY29udGV4dF9zY2hlZHVsZV9pbihycSk7CisJCQkJZXhlY2xpc3RzX2NvbnRleHRfc2No ZWR1bGVfaW4ocnEsIG4pOwogCQkJcG9ydF9zZXQoJnBvcnRbbl0sIHBvcnRfcGFjayhycSwgY291 bnQpKTsKIAkJCWRlc2MgPSBleGVjbGlzdHNfdXBkYXRlX2NvbnRleHQocnEpOwogCQkJR0VNX0RF QlVHX0VYRUMocG9ydFtuXS5jb250ZXh0X2lkID0gdXBwZXJfMzJfYml0cyhkZXNjKSk7CkBAIC02 NjEsNyArNjY0LDggQEAgZXhlY2xpc3RzX2NhbmNlbF9wb3J0X3JlcXVlc3RzKHN0cnVjdCBpbnRl bF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzKQogCQlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJxID0gcG9ydF9yZXF1ZXN0KHBvcnQpOwogCiAJCUdFTV9CVUdfT04oIWV4 ZWNsaXN0cy0+YWN0aXZlKTsKLQkJaW50ZWxfZW5naW5lX2NvbnRleHRfb3V0KHJxLT5lbmdpbmUp OworCQlpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQocnEtPmVuZ2luZSwKKwkJCQkJICZycS0+Y3R4 LT5lbmdpbmVbcnEtPmVuZ2luZS0+aWRdKTsKIAkJZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2No YW5nZShycSwgSU5URUxfQ09OVEVYVF9TQ0hFRFVMRV9QUkVFTVBURUQpOwogCQlpOTE1X2dlbV9y ZXF1ZXN0X3B1dChycSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApp bmRleCBmNTQyOTY5ZWFkODMuLjk2NzI3NWUyOWYxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaApAQCAtNCw2ICs0LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2hhc2h0 YWJsZS5oPgogI2luY2x1ZGUgImk5MTVfZ2VtX2JhdGNoX3Bvb2wuaCIKKyNpbmNsdWRlICJpOTE1 X2dlbV9jb250ZXh0LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fcmVxdWVzdC5oIgogI2luY2x1ZGUg Imk5MTVfZ2VtX3RpbWVsaW5lLmgiCiAjaW5jbHVkZSAiaTkxNV9wbXUuaCIKQEAgLTEwMjksMjUg KzEwMzAsNDQgQEAgdm9pZCBpbnRlbF9lbmdpbmVfZHVtcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCiBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoKIGludGVsX2VuZ2luZV9sb29rdXBf dXNlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTggY2xhc3MsIHU4IGluc3RhbmNl KTsKIAotc3RhdGljIGlubGluZSB2b2lkIGludGVsX2VuZ2luZV9jb250ZXh0X2luKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyBpbmxpbmUgdm9pZAoraW50ZWxfZW5naW5l X2NvbnRleHRfaW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJc3RydWN0IGlu dGVsX2NvbnRleHQgKmNlLAorCQkJYm9vbCBzdWJtaXQpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFn czsKKwlrdGltZV90IG5vdzsKIAogCWlmIChSRUFEX09OQ0UoZW5naW5lLT5zdGF0cy5lbmFibGVk KSA9PSAwKQogCQlyZXR1cm47CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5zdGF0cy5s b2NrLCBmbGFncyk7CiAKKwlpZiAoc3VibWl0KSB7CisJCW5vdyA9IGt0aW1lX2dldCgpOworCQlz cGluX2xvY2soJmNlLT5zdGF0cy5sb2NrKTsKKwkJY2UtPnN0YXRzLnN0YXJ0ID0gbm93OworCQlj ZS0+c3RhdHMuYWN0aXZlID0gdHJ1ZTsKKwkJc3Bpbl91bmxvY2soJmNlLT5zdGF0cy5sb2NrKTsK Kwl9IGVsc2UgeworCQlub3cgPSAwOworCX0KKwogCWlmIChlbmdpbmUtPnN0YXRzLmVuYWJsZWQg PiAwKSB7Ci0JCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSsrID09IDApCi0JCQllbmdpbmUtPnN0 YXRzLnN0YXJ0ID0ga3RpbWVfZ2V0KCk7CisJCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSsrID09 IDApIHsKKwkJCWlmICghbm93KQorCQkJCW5vdyA9IGt0aW1lX2dldCgpOworCQkJZW5naW5lLT5z dGF0cy5zdGFydCA9IG5vdzsKKwkJfQogCQlHRU1fQlVHX09OKGVuZ2luZS0+c3RhdHMuYWN0aXZl ID09IDApOwogCX0KIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMubG9j aywgZmxhZ3MpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZW5naW5lX2NvbnRleHRf b3V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyBpbmxpbmUgdm9pZAor aW50ZWxfZW5naW5lX2NvbnRleHRfb3V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwK KwkJCSBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsK IApAQCAtMTA1NywxNCArMTA3NywzNSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZW5naW5l X2NvbnRleHRfb3V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlzcGluX2xvY2tf aXJxc2F2ZSgmZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7CiAKIAlpZiAoZW5naW5lLT5zdGF0 cy5lbmFibGVkID4gMCkgeworCQlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqbmV4dF9wb3J0ID0gJmVu Z2luZS0+ZXhlY2xpc3RzLnBvcnRbMV07CisJCWt0aW1lX3Qgbm93ID0ga3RpbWVfZ2V0KCk7CiAJ CWt0aW1lX3QgbGFzdDsKIAorCQlzcGluX2xvY2soJmNlLT5zdGF0cy5sb2NrKTsKKwkJR0VNX0JV R19PTighY2UtPnN0YXRzLnN0YXJ0KTsKKwkJY2UtPnN0YXRzLnRvdGFsID0ga3RpbWVfYWRkKGNl LT5zdGF0cy50b3RhbCwKKwkJCQkJICAgIGt0aW1lX3N1Yihub3csIGNlLT5zdGF0cy5zdGFydCkp OworCQljZS0+c3RhdHMuYWN0aXZlID0gZmFsc2U7CisJCXNwaW5fdW5sb2NrKCZjZS0+c3RhdHMu bG9jayk7CisKKwkJaWYgKHBvcnRfaXNzZXQobmV4dF9wb3J0KSkgeworCQkJc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpuZXh0X3JlcSA9CisJCQkJCQlwb3J0X3JlcXVlc3QobmV4dF9wb3J0 KTsKKwkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpuZXh0X2NlID0KKwkJCQkJJm5leHRfcmVxLT5j dHgtPmVuZ2luZVtlbmdpbmUtPmlkXTsKKworCQkJc3Bpbl9sb2NrKCZuZXh0X2NlLT5zdGF0cy5s b2NrKTsKKwkJCW5leHRfY2UtPnN0YXRzLnN0YXJ0ID0gbm93OworCQkJbmV4dF9jZS0+c3RhdHMu YWN0aXZlID0gdHJ1ZTsKKwkJCXNwaW5fdW5sb2NrKCZuZXh0X2NlLT5zdGF0cy5sb2NrKTsKKwkJ fQorCiAJCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSAmJiAtLWVuZ2luZS0+c3RhdHMuYWN0aXZl ID09IDApIHsKIAkJCS8qCiAJCQkgKiBEZWNyZW1lbnQgdGhlIGFjdGl2ZSBjb250ZXh0IGNvdW50 IGFuZCBpbiBjYXNlIEdQVQogCQkJICogaXMgbm93IGlkbGUgYWRkIHVwIHRvIHRoZSBydW5uaW5n IHRvdGFsLgogCQkJICovCi0JCQlsYXN0ID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBlbmdpbmUt PnN0YXRzLnN0YXJ0KTsKKwkJCWxhc3QgPSBrdGltZV9zdWIobm93LCBlbmdpbmUtPnN0YXRzLnN0 YXJ0KTsKIAogCQkJZW5naW5lLT5zdGF0cy50b3RhbCA9IGt0aW1lX2FkZChlbmdpbmUtPnN0YXRz LnRvdGFsLAogCQkJCQkJCWxhc3QpOwpAQCAtMTA3NCw3ICsxMTE1LDcgQEAgc3RhdGljIGlubGlu ZSB2b2lkIGludGVsX2VuZ2luZV9jb250ZXh0X291dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCiAJCQkgKiB0aGUgZmlyc3QgZXZlbnQgaW4gd2hpY2ggY2FzZSB3ZSBhY2NvdW50IGZy b20gdGhlCiAJCQkgKiB0aW1lIHN0YXRzIGdhdGhlcmluZyB3YXMgdHVybmVkIG9uLgogCQkJICov Ci0JCQlsYXN0ID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBlbmdpbmUtPnN0YXRzLmVuYWJsZWRf YXQpOworCQkJbGFzdCA9IGt0aW1lX3N1Yihub3csIGVuZ2luZS0+c3RhdHMuZW5hYmxlZF9hdCk7 CiAKIAkJCWVuZ2luZS0+c3RhdHMudG90YWwgPSBrdGltZV9hZGQoZW5naW5lLT5zdGF0cy50b3Rh bCwKIAkJCQkJCQlsYXN0KTsKQEAgLTEwODQsNiArMTEyNSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCBpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOwog fQogCitrdGltZV90IGludGVsX2NvbnRleHRfZW5naW5lX2dldF9idXN5X3RpbWUoc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eCwKKwkJCQkJICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKTsKKwogaW50IGludGVsX2VuYWJsZV9lbmdpbmVfc3RhdHMoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKTsKIHZvaWQgaW50ZWxfZGlzYWJsZV9lbmdpbmVfc3RhdHMoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIAotLSAKMi4xNC4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK