From: Tvrtko Ursulin Subject: [RFC 09/13] drm/i915: Track per-context engine busyness Date: Wed, 3 Oct 2018 13:04:02 +0100 Message-ID: <20181003120406.6784-10-tvrtko.ursulin@linux.intel.com> References: <20181003120406.6784-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-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by gabe.freedesktop.org (Postfix) with ESMTPS id EBAE46E454 for ; Wed, 3 Oct 2018 12:04:22 +0000 (UTC) Received: by mail-wr1-x443.google.com with SMTP id z4-v6so5834683wrb.1 for ; Wed, 03 Oct 2018 05:04:22 -0700 (PDT) In-Reply-To: <20181003120406.6784-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 IGZpeCB0aGUgYnVpbGQuCnY2OiBBZGRlZCBmaW5lIGdyYWluZWQgbG9jay4Kdjc6IENvbnZlcnQg dG8gc2VxbG9jay4gKENocmlzIFdpbHNvbikKdjg6IFJlYmFzZSBhbmQgdGlkeSB3aXRoIGhlbHBl cnMuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwu Y29tPgpDYzogZ29yZG9uLmtlbGx5QGludGVsLmNvbQotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2NvbnRleHQuYyB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2NvbnRleHQuaCB8IDE3ICsrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2lu ZV9jcy5jICB8IDI3ICsrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YyAgICAgICAgfCA2MiArKysrKysrKysrKysrKysrKysrKystLS0tCiA0IGZpbGVzIGNoYW5nZWQs IDk3IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2NvbnRleHQuYwppbmRleCA3Y2Y1ZmRmOTM1ODMuLmQwZmE1ZGZiODM4OSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtMzQ0LDYgKzM0NCw3IEBAIF9f Y3JlYXRlX2h3X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiAJ CWNlLT5nZW1fY29udGV4dCA9IGN0eDsKIAkJY2UtPmVuZ2luZSA9IGRldl9wcml2LT5lbmdpbmVb bl07CisJCXNlcWxvY2tfaW5pdCgmY2UtPnN0YXRzLmxvY2spOwogCX0KIAogCUlOSVRfUkFESVhf VFJFRSgmY3R4LT5oYW5kbGVzX3ZtYSwgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9jb250ZXh0LmgKaW5kZXggMWMzNzZjZjMxNmNhLi4xNTEzNjJhYTk1YjkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNp bmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVk ZSA8bGludXgvcmFkaXgtdHJlZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcWxvY2suaD4KIAogI2lu Y2x1ZGUgImk5MTVfZ2VtLmgiCiAjaW5jbHVkZSAiaTkxNV9zY2hlZHVsZXIuaCIKQEAgLTE3MCw2 ICsxNzEsMTMgQEAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgewogCQl1NjQgbHJjX2Rlc2M7CiAJ CWludCBwaW5fY291bnQ7CiAKKwkJc3RydWN0IGludGVsX2NvbnRleHRfc3RhdHMgeworCQkJc2Vx bG9ja190IGxvY2s7CisJCQlib29sIGFjdGl2ZTsKKwkJCWt0aW1lX3Qgc3RhcnQ7CisJCQlrdGlt ZV90IHRvdGFsOworCQl9IHN0YXRzOworCiAJCWNvbnN0IHN0cnVjdCBpbnRlbF9jb250ZXh0X29w cyAqb3BzOwogCX0gX19lbmdpbmVbSTkxNV9OVU1fRU5HSU5FU107CiAKQEAgLTM2NCw0ICszNzIs MTMgQEAgc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX2NvbnRleHRfcHV0KHN0cnVjdCBpOTE1 X2dlbV9jb250ZXh0ICpjdHgpCiAJa3JlZl9wdXQoJmN0eC0+cmVmLCBpOTE1X2dlbV9jb250ZXh0 X3JlbGVhc2UpOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQKK19faW50ZWxfY29udGV4dF9zdGF0 c19zdGFydChzdHJ1Y3QgaW50ZWxfY29udGV4dF9zdGF0cyAqc3RhdHMsIGt0aW1lX3Qgbm93KQor eworCXN0YXRzLT5zdGFydCA9IG5vdzsKKwlzdGF0cy0+YWN0aXZlID0gdHJ1ZTsKK30KKwora3Rp bWVfdCBpbnRlbF9jb250ZXh0X2dldF9idXN5X3RpbWUoc3RydWN0IGludGVsX2NvbnRleHQgKmNl KTsKKwogI2VuZGlmIC8qICFfX0k5MTVfR0VNX0NPTlRFWFRfSF9fICovCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IDFiM2Y1NjIyNDZjOS4uZTc1YjcxYjk3MzQ3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtMTYzMiw2ICsxNjMyLDE0 IEBAIGludCBpbnRlbF9lbmFibGVfZW5naW5lX3N0YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIAogCQllbmdpbmUtPnN0YXRzLmVuYWJsZWRfYXQgPSBrdGltZV9nZXQoKTsKIAor CQkvKiBNYXJrIGN1cnJlbnRseSBydW5uaW5nIGNvbnRleHQgYXMgYWN0aXZlLiAqLworCQlpZiAo cG9ydF9pc3NldChwb3J0KSkgeworCQkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEgPSBwb3J0X3Jl cXVlc3QocG9ydCk7CisKKwkJCV9faW50ZWxfY29udGV4dF9zdGF0c19zdGFydCgmcnEtPmh3X2Nv bnRleHQtPnN0YXRzLAorCQkJCQkJICAgIGVuZ2luZS0+c3RhdHMuZW5hYmxlZF9hdCk7CisJCX0K KwogCQkvKiBYWFggc3VibWlzc2lvbiBtZXRob2Qgb2JsaXZpb3VzPyAqLwogCQl3aGlsZSAobnVt X3BvcnRzLS0gJiYgcG9ydF9pc3NldChwb3J0KSkgewogCQkJZW5naW5lLT5zdGF0cy5hY3RpdmUr KzsKQEAgLTE3MDUsNiArMTcxMywyNSBAQCB2b2lkIGludGVsX2Rpc2FibGVfZW5naW5lX3N0YXRz KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAl3cml0ZV9zZXF1bmxvY2tfaXJxcmVz dG9yZSgmZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7CiB9CiAKK2t0aW1lX3QgaW50ZWxfY29u dGV4dF9nZXRfYnVzeV90aW1lKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKK3sKKwl1bnNpZ25l ZCBpbnQgc2VxOworCWt0aW1lX3QgdG90YWw7CisKKwlkbyB7CisJCXNlcSA9IHJlYWRfc2VxYmVn aW4oJmNlLT5zdGF0cy5sb2NrKTsKKworCQl0b3RhbCA9IGNlLT5zdGF0cy50b3RhbDsKKworCQlp ZiAoY2UtPnN0YXRzLmFjdGl2ZSkKKwkJCXRvdGFsID0ga3RpbWVfYWRkKHRvdGFsLAorCQkJCQkg IGt0aW1lX3N1YihrdGltZV9nZXQoKSwKKwkJCQkJCSAgICBjZS0+c3RhdHMuc3RhcnQpKTsKKwl9 IHdoaWxlIChyZWFkX3NlcXJldHJ5KCZjZS0+c3RhdHMubG9jaywgc2VxKSk7CisKKwlyZXR1cm4g dG90YWw7Cit9CisKICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVCkKICNp bmNsdWRlICJzZWxmdGVzdHMvbW9ja19lbmdpbmUuYyIKICNpbmNsdWRlICJzZWxmdGVzdHMvaW50 ZWxfZW5naW5lX2NzLmMiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDJlZjU0MWNlNzc2 OC4uYjVkYmNhNGU0NzI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMzMwLDE4ICsz MzAsNDggQEAgZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5nZShzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpycSwgdW5zaWduZWQgbG9uZyBzdGF0dXMpCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAot aW50ZWxfZW5naW5lX2NvbnRleHRfaW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQor aW50ZWxfY29udGV4dF9zdGF0c19zdGFydChzdHJ1Y3QgaW50ZWxfY29udGV4dF9zdGF0cyAqc3Rh dHMsIGt0aW1lX3Qgbm93KQogeworCXdyaXRlX3NlcWxvY2soJnN0YXRzLT5sb2NrKTsKKwlfX2lu dGVsX2NvbnRleHRfc3RhdHNfc3RhcnQoc3RhdHMsIG5vdyk7CisJd3JpdGVfc2VxdW5sb2NrKCZz dGF0cy0+bG9jayk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAoraW50ZWxfY29udGV4dF9zdGF0 c19zdG9wKHN0cnVjdCBpbnRlbF9jb250ZXh0X3N0YXRzICpzdGF0cywga3RpbWVfdCBub3cpCit7 CisJd3JpdGVfc2VxbG9jaygmc3RhdHMtPmxvY2spOworCUdFTV9CVUdfT04oIXN0YXRzLT5zdGFy dCk7CisJc3RhdHMtPnRvdGFsID0ga3RpbWVfYWRkKHN0YXRzLT50b3RhbCwga3RpbWVfc3ViKG5v dywgc3RhdHMtPnN0YXJ0KSk7CisJc3RhdHMtPmFjdGl2ZSA9IGZhbHNlOworCXdyaXRlX3NlcXVu bG9jaygmc3RhdHMtPmxvY2spOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK2ludGVsX2NvbnRl eHRfaW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCBib29sIHN1Ym1pdCkKK3sKKwlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBjZS0+ZW5naW5lOwogCXVuc2lnbmVkIGxvbmcgZmxh Z3M7CisJa3RpbWVfdCBub3c7CiAKIAlpZiAoUkVBRF9PTkNFKGVuZ2luZS0+c3RhdHMuZW5hYmxl ZCkgPT0gMCkKIAkJcmV0dXJuOwogCiAJd3JpdGVfc2VxbG9ja19pcnFzYXZlKCZlbmdpbmUtPnN0 YXRzLmxvY2ssIGZsYWdzKTsKIAorCWlmIChzdWJtaXQpIHsKKwkJbm93ID0ga3RpbWVfZ2V0KCk7 CisJCWludGVsX2NvbnRleHRfc3RhdHNfc3RhcnQoJmNlLT5zdGF0cywgbm93KTsKKwl9IGVsc2Ug eworCQlub3cgPSAwOworCX0KKwogCWlmIChlbmdpbmUtPnN0YXRzLmVuYWJsZWQgPiAwKSB7Ci0J CWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSsrID09IDApCi0JCQllbmdpbmUtPnN0YXRzLnN0YXJ0 ID0ga3RpbWVfZ2V0KCk7CisJCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSsrID09IDApIHsKKwkJ CWlmICghbm93KQorCQkJCW5vdyA9IGt0aW1lX2dldCgpOworCQkJZW5naW5lLT5zdGF0cy5zdGFy dCA9IG5vdzsKKwkJfQogCQlHRU1fQlVHX09OKGVuZ2luZS0+c3RhdHMuYWN0aXZlID09IDApOwog CX0KIApAQCAtMzQ5LDggKzM3OSw5IEBAIGludGVsX2VuZ2luZV9jb250ZXh0X2luKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCi1pbnRlbF9l bmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoraW50ZWxf Y29udGV4dF9vdXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogeworCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSA9IGNlLT5lbmdpbmU7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAog CWlmIChSRUFEX09OQ0UoZW5naW5lLT5zdGF0cy5lbmFibGVkKSA9PSAwKQpAQCAtMzU5LDE0ICsz OTAsMjUgQEAgaW50ZWxfZW5naW5lX2NvbnRleHRfb3V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIAl3cml0ZV9zZXFsb2NrX2lycXNhdmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxh Z3MpOwogCiAJaWYgKGVuZ2luZS0+c3RhdHMuZW5hYmxlZCA+IDApIHsKKwkJc3RydWN0IGV4ZWNs aXN0X3BvcnQgKm5leHRfcG9ydCA9ICZlbmdpbmUtPmV4ZWNsaXN0cy5wb3J0WzFdOworCQlrdGlt ZV90IG5vdyA9IGt0aW1lX2dldCgpOwogCQlrdGltZV90IGxhc3Q7CiAKKwkJaW50ZWxfY29udGV4 dF9zdGF0c19zdG9wKCZjZS0+c3RhdHMsIG5vdyk7CisKKwkJaWYgKHBvcnRfaXNzZXQobmV4dF9w b3J0KSkgeworCQkJc3RydWN0IGk5MTVfcmVxdWVzdCAqbmV4dF9ycSA9IHBvcnRfcmVxdWVzdChu ZXh0X3BvcnQpOworCisJCQlpbnRlbF9jb250ZXh0X3N0YXRzX3N0YXJ0KCZuZXh0X3JxLT5od19j b250ZXh0LT5zdGF0cywKKwkJCQkJCSAgbm93KTsKKwkJfQorCiAJCWlmIChlbmdpbmUtPnN0YXRz LmFjdGl2ZSAmJiAtLWVuZ2luZS0+c3RhdHMuYWN0aXZlID09IDApIHsKIAkJCS8qCiAJCQkgKiBE ZWNyZW1lbnQgdGhlIGFjdGl2ZSBjb250ZXh0IGNvdW50IGFuZCBpbiBjYXNlIEdQVQogCQkJICog aXMgbm93IGlkbGUgYWRkIHVwIHRvIHRoZSBydW5uaW5nIHRvdGFsLgogCQkJICovCi0JCQlsYXN0 ID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBlbmdpbmUtPnN0YXRzLnN0YXJ0KTsKKwkJCWxhc3Qg PSBrdGltZV9zdWIobm93LCBlbmdpbmUtPnN0YXRzLnN0YXJ0KTsKIAogCQkJZW5naW5lLT5zdGF0 cy50b3RhbCA9IGt0aW1lX2FkZChlbmdpbmUtPnN0YXRzLnRvdGFsLAogCQkJCQkJCWxhc3QpOwpA QCAtMzc2LDcgKzQxOCw3IEBAIGludGVsX2VuZ2luZV9jb250ZXh0X291dChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiAJCQkgKiB0aGUgZmlyc3QgZXZlbnQgaW4gd2hpY2ggY2FzZSB3 ZSBhY2NvdW50IGZyb20gdGhlCiAJCQkgKiB0aW1lIHN0YXRzIGdhdGhlcmluZyB3YXMgdHVybmVk IG9uLgogCQkJICovCi0JCQlsYXN0ID0ga3RpbWVfc3ViKGt0aW1lX2dldCgpLCBlbmdpbmUtPnN0 YXRzLmVuYWJsZWRfYXQpOworCQkJbGFzdCA9IGt0aW1lX3N1Yihub3csIGVuZ2luZS0+c3RhdHMu ZW5hYmxlZF9hdCk7CiAKIAkJCWVuZ2luZS0+c3RhdHMudG90YWwgPSBrdGltZV9hZGQoZW5naW5l LT5zdGF0cy50b3RhbCwKIAkJCQkJCQlsYXN0KTsKQEAgLTQwMCwxNiArNDQyLDE2IEBAIGV4ZWNs aXN0c191c2VyX2VuZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQog fQogCiBzdGF0aWMgaW5saW5lIHZvaWQKLWV4ZWNsaXN0c19jb250ZXh0X3NjaGVkdWxlX2luKHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQorZXhlY2xpc3RzX2NvbnRleHRfc2NoZWR1bGVfaW4oc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcnEsIHVuc2lnbmVkIGludCBwb3J0KQogewogCWV4ZWNsaXN0c19j b250ZXh0X3N0YXR1c19jaGFuZ2UocnEsIElOVEVMX0NPTlRFWFRfU0NIRURVTEVfSU4pOwotCWlu dGVsX2VuZ2luZV9jb250ZXh0X2luKHJxLT5lbmdpbmUpOworCWludGVsX2NvbnRleHRfaW4ocnEt Pmh3X2NvbnRleHQsIHBvcnQgPT0gMCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAogZXhlY2xp c3RzX2NvbnRleHRfc2NoZWR1bGVfb3V0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1bnNpZ25l ZCBsb25nIHN0YXR1cykKIHsKLQlpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQocnEtPmVuZ2luZSk7 CisJaW50ZWxfY29udGV4dF9vdXQocnEtPmh3X2NvbnRleHQpOwogCWV4ZWNsaXN0c19jb250ZXh0 X3N0YXR1c19jaGFuZ2UocnEsIHN0YXR1cyk7CiAJdHJhY2VfaTkxNV9yZXF1ZXN0X291dChycSk7 CiB9CkBAIC00ODQsNyArNTI2LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pdF9wb3J0 cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWlmIChycSkgewogCQkJR0VNX0JV R19PTihjb3VudCA+ICFuKTsKIAkJCWlmICghY291bnQrKykKLQkJCQlleGVjbGlzdHNfY29udGV4 dF9zY2hlZHVsZV9pbihycSk7CisJCQkJZXhlY2xpc3RzX2NvbnRleHRfc2NoZWR1bGVfaW4ocnEs IG4pOwogCQkJcG9ydF9zZXQoJnBvcnRbbl0sIHBvcnRfcGFjayhycSwgY291bnQpKTsKIAkJCWRl c2MgPSBleGVjbGlzdHNfdXBkYXRlX2NvbnRleHQocnEpOwogCQkJR0VNX0RFQlVHX0VYRUMocG9y dFtuXS5jb250ZXh0X2lkID0gdXBwZXJfMzJfYml0cyhkZXNjKSk7Ci0tIAoyLjE3LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=