From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 1/6] drm/i915: Track per-context engine busyness Date: Fri, 19 Jan 2018 13:45:23 +0000 Message-ID: <20180119134528.4720-2-tvrtko.ursulin@linux.intel.com> References: <20180119134528.4720-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-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id A27276E003 for ; Fri, 19 Jan 2018 13:45:39 +0000 (UTC) Received: by mail-wr0-x244.google.com with SMTP id t16so1615559wrc.10 for ; Fri, 19 Jan 2018 05:45:39 -0800 (PST) In-Reply-To: <20180119134528.4720-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 dHMgYXMgYWN0aXZlIG9uIHN0YXRzIGVuYWJsZS4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1 bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBnb3Jkb24ua2VsbHlAaW50ZWwuY29t Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oIHwgIDUgKysrKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgIHwgMzIgKysrKysrKysrKysr KysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAxNCAr KysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8IDUwICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA5MCBpbnNl cnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmgKaW5kZXggNGJmYjcyZjhlMWNiLi4wY2U4YjliZjBmMzIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKQEAgLTE1Nyw2ICsxNTcsMTEgQEAgc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgewogCQl1MzIgKmxyY19yZWdfc3RhdGU7CiAJCXU2NCBscmNfZGVzYzsK IAkJaW50IHBpbl9jb3VudDsKKwkJc3RydWN0IHsKKwkJCWJvb2wgYWN0aXZlOworCQkJa3RpbWVf dCBzdGFydDsKKwkJCWt0aW1lX3QgdG90YWw7CisJCX0gc3RhdHM7CiAJfSBlbmdpbmVbSTkxNV9O VU1fRU5HSU5FU107CiAKIAkvKiogcmluZ19zaXplOiBzaXplIGZvciBhbGxvY2F0aW5nIHRoZSBw ZXItZW5naW5lIHJpbmcgYnVmZmVyICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9j cy5jCmluZGV4IGQ1NzJiMThkMzllYi4uOTkwN2NlZWRmYTkwIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtMTk2Niw2ICsxOTY2LDE2IEBAIGludCBpbnRlbF9lbmFi bGVfZW5naW5lX3N0YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCQllbmdp bmUtPnN0YXRzLmVuYWJsZWRfYXQgPSBrdGltZV9nZXQoKTsKIAorCQkvKiBNYXJrIGN1cnJlbnRs eSBydW5uaW5nIGNvbnRleHQgYXMgYWN0aXZlLiAqLworCQlpZiAocG9ydF9pc3NldChwb3J0KSkg eworCQkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEgPSBwb3J0X3JlcXVlc3QocG9y dCk7CisJCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPQorCQkJCQkmcmVxLT5jdHgtPmVuZ2lu ZVtlbmdpbmUtPmlkXTsKKworCQkJY2UtPnN0YXRzLnN0YXJ0ID0gZW5naW5lLT5zdGF0cy5lbmFi bGVkX2F0OworCQkJY2UtPnN0YXRzLmFjdGl2ZSA9IHRydWU7CisJCX0KKwogCQkvKiBYWFggc3Vi bWlzc2lvbiBtZXRob2Qgb2JsaXZpb3VzPyAqLwogCQl3aGlsZSAobnVtX3BvcnRzLS0gJiYgcG9y dF9pc3NldChwb3J0KSkgewogCQkJZW5naW5lLT5zdGF0cy5hY3RpdmUrKzsKQEAgLTIwMzgsNiAr MjA0OCwyOCBAQCB2b2lkIGludGVsX2Rpc2FibGVfZW5naW5lX3N0YXRzKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnN0YXRz LmxvY2ssIGZsYWdzKTsKIH0KIAora3RpbWVfdCBpbnRlbF9jb250ZXh0X2VuZ2luZV9nZXRfYnVz eV90aW1lKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCisJCQkJCSAgIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CisJdW5z aWduZWQgbG9uZyBmbGFnczsKKwlrdGltZV90IHRvdGFsOworCisJY2UgPSAmY3R4LT5lbmdpbmVb ZW5naW5lLT5pZF07CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5zdGF0cy5sb2NrLCBm bGFncyk7CisKKwl0b3RhbCA9IGNlLT5zdGF0cy50b3RhbDsKKworCWlmIChjZS0+c3RhdHMuYWN0 aXZlKQorCQl0b3RhbCA9IGt0aW1lX2FkZCh0b3RhbCwKKwkJCQkgIGt0aW1lX3N1YihrdGltZV9n ZXQoKSwgY2UtPnN0YXRzLnN0YXJ0KSk7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdp bmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKKworCXJldHVybiB0b3RhbDsKK30KKwogI2lmIElTX0VO QUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQogI2luY2x1ZGUgInNlbGZ0ZXN0cy9tb2Nr X2VuZ2luZS5jIgogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDI0Y2U3ODFk MzliNy4uYTgyYWQ1ZGE2MDkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMzgwLDE2 ICszODAsMTkgQEAgZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5nZShzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJxLAogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKLWV4ZWNsaXN0c19j b250ZXh0X3NjaGVkdWxlX2luKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCitleGVj bGlzdHNfY29udGV4dF9zY2hlZHVsZV9pbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJx LAorCQkJICAgICAgdW5zaWduZWQgaW50IHBvcnQpCiB7CiAJZXhlY2xpc3RzX2NvbnRleHRfc3Rh dHVzX2NoYW5nZShycSwgSU5URUxfQ09OVEVYVF9TQ0hFRFVMRV9JTik7Ci0JaW50ZWxfZW5naW5l X2NvbnRleHRfaW4ocnEtPmVuZ2luZSk7CisJaW50ZWxfZW5naW5lX2NvbnRleHRfaW4ocnEtPmVu Z2luZSwKKwkJCQkmcnEtPmN0eC0+ZW5naW5lW3JxLT5lbmdpbmUtPmlkXSwKKwkJCQlwb3J0ID09 IDApOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKIGV4ZWNsaXN0c19jb250ZXh0X3NjaGVkdWxl X291dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQogewotCWludGVsX2VuZ2luZV9j b250ZXh0X291dChycS0+ZW5naW5lKTsKKwlpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQocnEtPmVu Z2luZSwgJnJxLT5jdHgtPmVuZ2luZVtycS0+ZW5naW5lLT5pZF0pOwogCWV4ZWNsaXN0c19jb250 ZXh0X3N0YXR1c19jaGFuZ2UocnEsIElOVEVMX0NPTlRFWFRfU0NIRURVTEVfT1VUKTsKIH0KIApA QCAtNDQyLDcgKzQ0NSw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXRfcG9ydHMoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlpZiAocnEpIHsKIAkJCUdFTV9CVUdfT04o Y291bnQgPiAhbik7CiAJCQlpZiAoIWNvdW50KyspCi0JCQkJZXhlY2xpc3RzX2NvbnRleHRfc2No ZWR1bGVfaW4ocnEpOworCQkJCWV4ZWNsaXN0c19jb250ZXh0X3NjaGVkdWxlX2luKHJxLCBuKTsK IAkJCXBvcnRfc2V0KCZwb3J0W25dLCBwb3J0X3BhY2socnEsIGNvdW50KSk7CiAJCQlkZXNjID0g ZXhlY2xpc3RzX3VwZGF0ZV9jb250ZXh0KHJxKTsKIAkJCUdFTV9ERUJVR19FWEVDKHBvcnRbbl0u Y29udGV4dF9pZCA9IHVwcGVyXzMyX2JpdHMoZGVzYykpOwpAQCAtNzAzLDcgKzcwNiw4IEBAIGV4 ZWNsaXN0c19jYW5jZWxfcG9ydF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0 cyAqIGNvbnN0IGV4ZWNsaXN0cykKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSA9 IHBvcnRfcmVxdWVzdChwb3J0KTsKIAogCQlHRU1fQlVHX09OKCFleGVjbGlzdHMtPmFjdGl2ZSk7 Ci0JCWludGVsX2VuZ2luZV9jb250ZXh0X291dChycS0+ZW5naW5lKTsKKwkJaW50ZWxfZW5naW5l X2NvbnRleHRfb3V0KHJxLT5lbmdpbmUsCisJCQkJCSAmcnEtPmN0eC0+ZW5naW5lW3JxLT5lbmdp bmUtPmlkXSk7CiAJCWV4ZWNsaXN0c19jb250ZXh0X3N0YXR1c19jaGFuZ2UocnEsIElOVEVMX0NP TlRFWFRfU0NIRURVTEVfUFJFRU1QVEVEKTsKIAkJaTkxNV9nZW1fcmVxdWVzdF9wdXQocnEpOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggYjE5OGRmMWYyNDhj Li4yN2I3MjdjZjQwMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgK QEAgLTQsNiArNCw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9oYXNodGFibGUuaD4KICNpbmNsdWRl ICJpOTE1X2dlbV9iYXRjaF9wb29sLmgiCisjaW5jbHVkZSAiaTkxNV9nZW1fY29udGV4dC5oIgog I2luY2x1ZGUgImk5MTVfZ2VtX3JlcXVlc3QuaCIKICNpbmNsdWRlICJpOTE1X2dlbV90aW1lbGlu ZS5oIgogI2luY2x1ZGUgImk5MTVfcG11LmgiCkBAIC0xMDM2LDI1ICsxMDM3LDQyIEBAIHZvaWQg aW50ZWxfZW5naW5lX2R1bXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqCiBpbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsIHU4IGNsYXNzLCB1OCBpbnN0YW5jZSk7CiAKLXN0YXRpYyBpbmxp bmUgdm9pZCBpbnRlbF9lbmdpbmVfY29udGV4dF9pbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCitzdGF0aWMgaW5saW5lIHZvaWQKK2ludGVsX2VuZ2luZV9jb250ZXh0X2luKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwK KwkJCWJvb2wgc3VibWl0KQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJa3RpbWVfdCBub3c7 CiAKIAlpZiAoUkVBRF9PTkNFKGVuZ2luZS0+c3RhdHMuZW5hYmxlZCkgPT0gMCkKIAkJcmV0dXJu OwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOwogCisJ aWYgKHN1Ym1pdCkgeworCQlub3cgPSBrdGltZV9nZXQoKTsKKwkJY2UtPnN0YXRzLnN0YXJ0ID0g bm93OworCQljZS0+c3RhdHMuYWN0aXZlID0gdHJ1ZTsKKwl9IGVsc2UgeworCQlub3cgPSAwOwor CX0KKwogCWlmIChlbmdpbmUtPnN0YXRzLmVuYWJsZWQgPiAwKSB7Ci0JCWlmIChlbmdpbmUtPnN0 YXRzLmFjdGl2ZSsrID09IDApCi0JCQllbmdpbmUtPnN0YXRzLnN0YXJ0ID0ga3RpbWVfZ2V0KCk7 CisJCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSsrID09IDApIHsKKwkJCWlmICghbm93KQorCQkJ CW5vdyA9IGt0aW1lX2dldCgpOworCQkJZW5naW5lLT5zdGF0cy5zdGFydCA9IG5vdzsKKwkJfQog CQlHRU1fQlVHX09OKGVuZ2luZS0+c3RhdHMuYWN0aXZlID09IDApOwogCX0KIAogCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOwogfQogCi1zdGF0aWMg aW5saW5lIHZvaWQgaW50ZWxfZW5naW5lX2NvbnRleHRfb3V0KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKK3N0YXRpYyBpbmxpbmUgdm9pZAoraW50ZWxfZW5naW5lX2NvbnRleHRfb3V0 KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCSBzdHJ1Y3QgaW50ZWxfY29udGV4 dCAqY2UpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIApAQCAtMTA2NCwxNCArMTA4MiwzMSBA QCBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZW5naW5lX2NvbnRleHRfb3V0KHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5zdGF0cy5s b2NrLCBmbGFncyk7CiAKIAlpZiAoZW5naW5lLT5zdGF0cy5lbmFibGVkID4gMCkgeworCQlzdHJ1 Y3QgZXhlY2xpc3RfcG9ydCAqbmV4dF9wb3J0ID0gJmVuZ2luZS0+ZXhlY2xpc3RzLnBvcnRbMV07 CisJCWt0aW1lX3Qgbm93ID0ga3RpbWVfZ2V0KCk7CiAJCWt0aW1lX3QgbGFzdDsKIAorCQlHRU1f QlVHX09OKCFjZS0+c3RhdHMuc3RhcnQpOworCQljZS0+c3RhdHMudG90YWwgPSBrdGltZV9hZGQo Y2UtPnN0YXRzLnRvdGFsLAorCQkJCQkgICAga3RpbWVfc3ViKG5vdywgY2UtPnN0YXRzLnN0YXJ0 KSk7CisJCWNlLT5zdGF0cy5hY3RpdmUgPSBmYWxzZTsKKworCQlpZiAocG9ydF9pc3NldChuZXh0 X3BvcnQpKSB7CisJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKm5leHRfcmVxID0KKwkJ CQkJCXBvcnRfcmVxdWVzdChuZXh0X3BvcnQpOworCQkJc3RydWN0IGludGVsX2NvbnRleHQgKm5l eHRfY2UgPQorCQkJCQkmbmV4dF9yZXEtPmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdOworCisJCQlu ZXh0X2NlLT5zdGF0cy5zdGFydCA9IG5vdzsKKwkJCW5leHRfY2UtPnN0YXRzLmFjdGl2ZSA9IHRy dWU7CisJCX0KKwogCQlpZiAoZW5naW5lLT5zdGF0cy5hY3RpdmUgJiYgLS1lbmdpbmUtPnN0YXRz LmFjdGl2ZSA9PSAwKSB7CiAJCQkvKgogCQkJICogRGVjcmVtZW50IHRoZSBhY3RpdmUgY29udGV4 dCBjb3VudCBhbmQgaW4gY2FzZSBHUFUKIAkJCSAqIGlzIG5vdyBpZGxlIGFkZCB1cCB0byB0aGUg cnVubmluZyB0b3RhbC4KIAkJCSAqLwotCQkJbGFzdCA9IGt0aW1lX3N1YihrdGltZV9nZXQoKSwg ZW5naW5lLT5zdGF0cy5zdGFydCk7CisJCQlsYXN0ID0ga3RpbWVfc3ViKG5vdywgZW5naW5lLT5z dGF0cy5zdGFydCk7CiAKIAkJCWVuZ2luZS0+c3RhdHMudG90YWwgPSBrdGltZV9hZGQoZW5naW5l LT5zdGF0cy50b3RhbCwKIAkJCQkJCQlsYXN0KTsKQEAgLTEwODEsNyArMTExNiw3IEBAIHN0YXRp YyBpbmxpbmUgdm9pZCBpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQogCQkJICogdGhlIGZpcnN0IGV2ZW50IGluIHdoaWNoIGNhc2Ugd2UgYWNj b3VudCBmcm9tIHRoZQogCQkJICogdGltZSBzdGF0cyBnYXRoZXJpbmcgd2FzIHR1cm5lZCBvbi4K IAkJCSAqLwotCQkJbGFzdCA9IGt0aW1lX3N1YihrdGltZV9nZXQoKSwgZW5naW5lLT5zdGF0cy5l bmFibGVkX2F0KTsKKwkJCWxhc3QgPSBrdGltZV9zdWIobm93LCBlbmdpbmUtPnN0YXRzLmVuYWJs ZWRfYXQpOwogCiAJCQllbmdpbmUtPnN0YXRzLnRvdGFsID0ga3RpbWVfYWRkKGVuZ2luZS0+c3Rh dHMudG90YWwsCiAJCQkJCQkJbGFzdCk7CkBAIC0xMDkxLDYgKzExMjYsOSBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgaW50ZWxfZW5naW5lX2NvbnRleHRfb3V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZs YWdzKTsKIH0KIAora3RpbWVfdCBpbnRlbF9jb250ZXh0X2VuZ2luZV9nZXRfYnVzeV90aW1lKHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCisJCQkJCSAgIHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSk7CisKIGludCBpbnRlbF9lbmFibGVfZW5naW5lX3N0YXRzKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSk7CiB2b2lkIGludGVsX2Rpc2FibGVfZW5naW5lX3N0YXRzKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKLS0gCjIuMTQuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==