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: Fri, 25 Oct 2019 15:21:27 +0100 Message-ID: <20191025142131.17378-2-tvrtko.ursulin@linux.intel.com> References: <20191025142131.17378-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id EF49989DE5 for ; Fri, 25 Oct 2019 14:21:35 +0000 (UTC) In-Reply-To: <20191025142131.17378-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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNvbWUgY3Vz dG9tZXJzIHdhbnQgdG8ga25vdyBob3cgbXVjaCBvZiB0aGUgR1BVIHRpbWUgYXJlIHRoZWlyIGNs aWVudHMKdXNpbmcgaW4gb3JkZXIgdG8gbWFrZSBkeW5hbWljIGxvYWQgYmFsYW5jaW5nIGRlY2lz aW9ucy4KCldpdGggdGhlIGhvb2tzIGFscmVhZHkgaW4gcGxhY2Ugd2hpY2ggdHJhY2sgdGhlIG92 ZXJhbGwgZW5naW5lIGJ1c3luZXNzLAp3ZSBjYW4gZXh0ZW5kIHRoYXQgc2xpZ2h0bHkgdG8gc3Bs aXQgdGhhdCB0aW1lIGJldHdlZW4gY29udGV4dHMuCgp2MjogRml4IGFjY291bnRpbmcgZm9yIHRh aWwgdXBkYXRlcy4KdjM6IFJlYmFzZS4KdjQ6IE1hcmsgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4 dHMgYXMgYWN0aXZlIG9uIHN0YXRzIGVuYWJsZS4KdjU6IEluY2x1ZGUgc29tZSBoZWFkZXJzIHRv IGZpeCB0aGUgYnVpbGQuCnY2OiBBZGRlZCBmaW5lIGdyYWluZWQgbG9jay4Kdjc6IENvbnZlcnQg dG8gc2VxbG9jay4gKENocmlzIFdpbHNvbikKdjg6IFJlYmFzZSBhbmQgdGlkeSB3aXRoIGhlbHBl cnMuCnY5OiBSZWJhc2UuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVy c3VsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRl eHQuYyAgICAgICB8IDIwICsrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29u dGV4dC5oICAgICAgIHwgIDkgKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250 ZXh0X3R5cGVzLmggfCAgOSArKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2lu ZV9jcy5jICAgICB8IDE2ICsrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMu YyAgICAgICAgICAgfCA2NiArKysrKysrKysrKysrKysrLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDEw OCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9jb250ZXh0LmMKaW5kZXggZWU5ZDJiY2QyYzEzLi4zZDY4NzIwZGY1MTIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMKQEAgLTI0OCw2ICsyNDgsNyBAQCBpbnRl bF9jb250ZXh0X2luaXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCUlOSVRfTElTVF9IRUFE KCZjZS0+c2lnbmFscyk7CiAKIAltdXRleF9pbml0KCZjZS0+cGluX211dGV4KTsKKwlzZXFsb2Nr X2luaXQoJmNlLT5zdGF0cy5sb2NrKTsKIAogCWk5MTVfYWN0aXZlX2luaXQoJmNlLT5hY3RpdmUs CiAJCQkgX19pbnRlbF9jb250ZXh0X2FjdGl2ZSwgX19pbnRlbF9jb250ZXh0X3JldGlyZSk7CkBA IC0zNDgsNiArMzQ5LDI1IEBAIHN0cnVjdCBpOTE1X3JlcXVlc3QgKmludGVsX2NvbnRleHRfY3Jl YXRlX3JlcXVlc3Qoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogCXJldHVybiBycTsKIH0KIAor a3RpbWVfdCBpbnRlbF9jb250ZXh0X2dldF9idXN5X3RpbWUoc3RydWN0IGludGVsX2NvbnRleHQg KmNlKQoreworCXVuc2lnbmVkIGludCBzZXE7CisJa3RpbWVfdCB0b3RhbDsKKworCWRvIHsKKwkJ c2VxID0gcmVhZF9zZXFiZWdpbigmY2UtPnN0YXRzLmxvY2spOworCisJCXRvdGFsID0gY2UtPnN0 YXRzLnRvdGFsOworCisJCWlmIChjZS0+c3RhdHMuYWN0aXZlKQorCQkJdG90YWwgPSBrdGltZV9h ZGQodG90YWwsCisJCQkJCSAga3RpbWVfc3ViKGt0aW1lX2dldCgpLAorCQkJCQkJICAgIGNlLT5z dGF0cy5zdGFydCkpOworCX0gd2hpbGUgKHJlYWRfc2VxcmV0cnkoJmNlLT5zdGF0cy5sb2NrLCBz ZXEpKTsKKworCXJldHVybiB0b3RhbDsKK30KKwogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9J OTE1X1NFTEZURVNUKQogI2luY2x1ZGUgInNlbGZ0ZXN0X2NvbnRleHQuYyIKICNlbmRpZgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCmluZGV4IDY4YjNkMzE3ZDk1OS4uYzdh YjhlZmEzNTczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250 ZXh0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCkBAIC0x NTMsNCArMTUzLDEzIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3JpbmcgKl9faW50ZWxf Y29udGV4dF9yaW5nX3NpemUodTY0IHN6KQogCXJldHVybiB1NjRfdG9fcHRyKHN0cnVjdCBpbnRl bF9yaW5nLCBzeik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZAorX19pbnRlbF9jb250ZXh0X3N0 YXRzX3N0YXJ0KHN0cnVjdCBpbnRlbF9jb250ZXh0X3N0YXRzICpzdGF0cywga3RpbWVfdCBub3cp Cit7CisJc3RhdHMtPnN0YXJ0ID0gbm93OworCXN0YXRzLT5hY3RpdmUgPSB0cnVlOworfQorCitr dGltZV90IGludGVsX2NvbnRleHRfZ2V0X2J1c3lfdGltZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y2UpOworCiAjZW5kaWYgLyogX19JTlRFTF9DT05URVhUX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dF90eXBlcy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dF90eXBlcy5oCmluZGV4IDY5NTliMDVhZTVmOC4uYjMz ODRlMDFkMDMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250 ZXh0X3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dF90 eXBlcy5oCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1 ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxs aW51eC9zZXFsb2NrLmg+CiAKICNpbmNsdWRlICJpOTE1X2FjdGl2ZV90eXBlcy5oIgogI2luY2x1 ZGUgImk5MTVfdXRpbHMuaCIKQEAgLTc1LDYgKzc2LDE0IEBAIHN0cnVjdCBpbnRlbF9jb250ZXh0 IHsKIAogCS8qKiBzc2V1OiBDb250cm9sIGV1L3NsaWNlIHBhcnRpdGlvbmluZyAqLwogCXN0cnVj dCBpbnRlbF9zc2V1IHNzZXU7CisKKwkvKiogc3RhdHM6IENvbnRleHQgR1BVIGVuZ2luZSBidXN5 bmVzcyB0cmFja2luZy4gKi8KKwlzdHJ1Y3QgaW50ZWxfY29udGV4dF9zdGF0cyB7CisJCXNlcWxv Y2tfdCBsb2NrOworCQlib29sIGFjdGl2ZTsKKwkJa3RpbWVfdCBzdGFydDsKKwkJa3RpbWVfdCB0 b3RhbDsKKwl9IHN0YXRzOwogfTsKIAogI2VuZGlmIC8qIF9fSU5URUxfQ09OVEVYVF9UWVBFU19f ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3Mu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IDljYzFl YTY1MTllYy4uNjc5MmVjMDFmM2YyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9l bmdpbmVfY3MuYwpAQCAtMTU2OCw4ICsxNTY4LDIwIEBAIGludCBpbnRlbF9lbmFibGVfZW5naW5l X3N0YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCQllbmdpbmUtPnN0YXRz LmVuYWJsZWRfYXQgPSBrdGltZV9nZXQoKTsKIAotCQkvKiBYWFggc3VibWlzc2lvbiBtZXRob2Qg b2JsaXZpb3VzPyAqLwotCQlmb3IgKHBvcnQgPSBleGVjbGlzdHMtPmFjdGl2ZTsgKHJxID0gKnBv cnQpOyBwb3J0KyspCisJCS8qCisJCSAqIE1hcmsgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4dCBh cyBhY3RpdmUuCisJCSAqIFhYWCBzdWJtaXNzaW9uIG1ldGhvZCBvYmxpdmlvdXM/CisJCSAqLwor CisJCXJxID0gTlVMTDsKKwkJcG9ydCA9IGV4ZWNsaXN0cy0+YWN0aXZlOworCQlpZiAocG9ydCkK KwkJCXJxID0gKnBvcnQ7CisJCWlmIChycSkKKwkJCV9faW50ZWxfY29udGV4dF9zdGF0c19zdGFy dCgmcnEtPmh3X2NvbnRleHQtPnN0YXRzLAorCQkJCQkJICAgIGVuZ2luZS0+c3RhdHMuZW5hYmxl ZF9hdCk7CisKKwkJZm9yICg7IChycSA9ICpwb3J0KTsgcG9ydCsrKQogCQkJZW5naW5lLT5zdGF0 cy5hY3RpdmUrKzsKIAogCQlmb3IgKHBvcnQgPSBleGVjbGlzdHMtPnBlbmRpbmc7IChycSA9ICpw b3J0KTsgcG9ydCsrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCmluZGV4IDUyM2Rl MWZkNDQ1Mi4uMjMwNWQ3YTdhYzY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwpA QCAtOTQ0LDI2ICs5NDQsNjAgQEAgZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5nZShzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdW5zaWduZWQgbG9uZyBzdGF0dXMpCiAJCQkJICAgc3RhdHVz LCBycSk7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2VuZ2luZV9jb250ZXh0X2luKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkCitpbnRlbF9jb250ZXh0X3N0YXRz X3N0YXJ0KHN0cnVjdCBpbnRlbF9jb250ZXh0X3N0YXRzICpzdGF0cywga3RpbWVfdCBub3cpCit7 CisJd3JpdGVfc2VxbG9jaygmc3RhdHMtPmxvY2spOworCV9faW50ZWxfY29udGV4dF9zdGF0c19z dGFydChzdGF0cywgbm93KTsKKwl3cml0ZV9zZXF1bmxvY2soJnN0YXRzLT5sb2NrKTsKK30KKwor c3RhdGljIHZvaWQKK2ludGVsX2NvbnRleHRfc3RhdHNfc3RvcChzdHJ1Y3QgaW50ZWxfY29udGV4 dF9zdGF0cyAqc3RhdHMsIGt0aW1lX3Qgbm93KQoreworCXdyaXRlX3NlcWxvY2soJnN0YXRzLT5s b2NrKTsKKwlpZiAoc3RhdHMtPmFjdGl2ZSkgeworCQlzdGF0cy0+dG90YWwgPSBrdGltZV9hZGQo c3RhdHMtPnRvdGFsLAorCQkJCQkga3RpbWVfc3ViKG5vdywgc3RhdHMtPnN0YXJ0KSk7CisJCXN0 YXRzLT5hY3RpdmUgPSBmYWxzZTsKKwl9CisJd3JpdGVfc2VxdW5sb2NrKCZzdGF0cy0+bG9jayk7 Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2NvbnRleHRfaW4oc3RydWN0IGludGVsX2NvbnRleHQg KmNlLCBib29sIHN1Ym1pdCkKIHsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBj ZS0+ZW5naW5lOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJa3RpbWVfdCBub3c7CiAKIAlpZiAo UkVBRF9PTkNFKGVuZ2luZS0+c3RhdHMuZW5hYmxlZCkgPT0gMCkKIAkJcmV0dXJuOwogCiAJd3Jp dGVfc2VxbG9ja19pcnFzYXZlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKIAorCWlmIChz dWJtaXQpIHsKKwkJbm93ID0ga3RpbWVfZ2V0KCk7CisJCWludGVsX2NvbnRleHRfc3RhdHNfc3Rh cnQoJmNlLT5zdGF0cywgbm93KTsKKwl9IGVsc2UgeworCQlub3cgPSAwOworCX0KKwogCWlmIChl bmdpbmUtPnN0YXRzLmVuYWJsZWQgPiAwKSB7Ci0JCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSsr ID09IDApCi0JCQllbmdpbmUtPnN0YXRzLnN0YXJ0ID0ga3RpbWVfZ2V0KCk7CisJCWlmIChlbmdp bmUtPnN0YXRzLmFjdGl2ZSsrID09IDApIHsKKwkJCWlmICghbm93KQorCQkJCW5vdyA9IGt0aW1l X2dldCgpOworCQkJZW5naW5lLT5zdGF0cy5zdGFydCA9IG5vdzsKKwkJfQorCiAJCUdFTV9CVUdf T04oZW5naW5lLT5zdGF0cy5hY3RpdmUgPT0gMCk7CiAJfQogCiAJd3JpdGVfc2VxdW5sb2NrX2ly cXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOwogfQogCi1zdGF0aWMgdm9pZCBp bnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQor c3RhdGljIHZvaWQgaW50ZWxfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQog eworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGNlLT5lbmdpbmU7CiAJdW5zaWdu ZWQgbG9uZyBmbGFnczsKIAogCWlmIChSRUFEX09OQ0UoZW5naW5lLT5zdGF0cy5lbmFibGVkKSA9 PSAwKQpAQCAtOTcyLDE0ICsxMDA2LDI1IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuZ2luZV9jb250 ZXh0X291dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJd3JpdGVfc2VxbG9ja19p cnFzYXZlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKIAogCWlmIChlbmdpbmUtPnN0YXRz LmVuYWJsZWQgPiAwKSB7CisJCWt0aW1lX3Qgbm93ID0ga3RpbWVfZ2V0KCk7CisJCXN0cnVjdCBp OTE1X3JlcXVlc3QgKm5leHQ7CiAJCWt0aW1lX3QgbGFzdDsKIAorCQlpbnRlbF9jb250ZXh0X3N0 YXRzX3N0b3AoJmNlLT5zdGF0cywgbm93KTsKKworCQluZXh0ID0gTlVMTDsKKwkJaWYgKGVuZ2lu ZS0+ZXhlY2xpc3RzLmFjdGl2ZSkKKwkJCW5leHQgPSAqZW5naW5lLT5leGVjbGlzdHMuYWN0aXZl OworCQlpZiAobmV4dCkKKwkJCWludGVsX2NvbnRleHRfc3RhdHNfc3RhcnQoJm5leHQtPmh3X2Nv bnRleHQtPnN0YXRzLAorCQkJCQkJICBub3cpOworCiAJCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2 ZSAmJiAtLWVuZ2luZS0+c3RhdHMuYWN0aXZlID09IDApIHsKIAkJCS8qCiAJCQkgKiBEZWNyZW1l bnQgdGhlIGFjdGl2ZSBjb250ZXh0IGNvdW50IGFuZCBpbiBjYXNlIEdQVQogCQkJICogaXMgbm93 IGlkbGUgYWRkIHVwIHRvIHRoZSBydW5uaW5nIHRvdGFsLgogCQkJICovCi0JCQlsYXN0ID0ga3Rp bWVfc3ViKGt0aW1lX2dldCgpLCBlbmdpbmUtPnN0YXRzLnN0YXJ0KTsKKwkJCWxhc3QgPSBrdGlt ZV9zdWIobm93LCBlbmdpbmUtPnN0YXRzLnN0YXJ0KTsKIAogCQkJZW5naW5lLT5zdGF0cy50b3Rh bCA9IGt0aW1lX2FkZChlbmdpbmUtPnN0YXRzLnRvdGFsLAogCQkJCQkJCWxhc3QpOwpAQCAtOTg5 LDcgKzEwMzQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJICogdGhlIGZpcnN0IGV2ZW50IGluIHdoaWNo IGNhc2Ugd2UgYWNjb3VudCBmcm9tIHRoZQogCQkJICogdGltZSBzdGF0cyBnYXRoZXJpbmcgd2Fz IHR1cm5lZCBvbi4KIAkJCSAqLwotCQkJbGFzdCA9IGt0aW1lX3N1YihrdGltZV9nZXQoKSwgZW5n aW5lLT5zdGF0cy5lbmFibGVkX2F0KTsKKwkJCWxhc3QgPSBrdGltZV9zdWIobm93LCBlbmdpbmUt PnN0YXRzLmVuYWJsZWRfYXQpOwogCiAJCQllbmdpbmUtPnN0YXRzLnRvdGFsID0ga3RpbWVfYWRk KGVuZ2luZS0+c3RhdHMudG90YWwsCiAJCQkJCQkJbGFzdCk7CkBAIC0xMDAwLDcgKzEwNDUsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KgotX19leGVjbGlzdHNfc2NoZWR1bGVfaW4oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCitfX2V4 ZWNsaXN0c19zY2hlZHVsZV9pbihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgaW50IGlkeCkKIHsK IAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICogY29uc3QgZW5naW5lID0gcnEtPmVuZ2luZTsKIAlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqIGNvbnN0IGNlID0gcnEtPmh3X2NvbnRleHQ7CkBAIC0xMDIx LDcgKzEwNjYsNyBAQCBfX2V4ZWNsaXN0c19zY2hlZHVsZV9pbihzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycSkKIAogCWludGVsX2d0X3BtX2dldChlbmdpbmUtPmd0KTsKIAlleGVjbGlzdHNfY29udGV4 dF9zdGF0dXNfY2hhbmdlKHJxLCBJTlRFTF9DT05URVhUX1NDSEVEVUxFX0lOKTsKLQlpbnRlbF9l bmdpbmVfY29udGV4dF9pbihlbmdpbmUpOworCWludGVsX2NvbnRleHRfaW4ocnEtPmh3X2NvbnRl eHQsIGlkeCA9PSAwKTsKIAogCXJldHVybiBlbmdpbmU7CiB9CkBAIC0xMDM4LDcgKzEwODMsOCBA QCBleGVjbGlzdHNfc2NoZWR1bGVfaW4oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIGludCBpZHgp CiAJb2xkID0gUkVBRF9PTkNFKGNlLT5pbmZsaWdodCk7CiAJZG8gewogCQlpZiAoIW9sZCkgewot CQkJV1JJVEVfT05DRShjZS0+aW5mbGlnaHQsIF9fZXhlY2xpc3RzX3NjaGVkdWxlX2luKHJxKSk7 CisJCQlXUklURV9PTkNFKGNlLT5pbmZsaWdodCwKKwkJCQkgICBfX2V4ZWNsaXN0c19zY2hlZHVs ZV9pbihycSwgaWR4KSk7CiAJCQlicmVhazsKIAkJfQogCX0gd2hpbGUgKCF0cnlfY21weGNoZygm Y2UtPmluZmxpZ2h0LCAmb2xkLCBwdHJfaW5jKG9sZCkpKTsKQEAgLTExMTQsNyArMTE2MCw3IEBA IF9fZXhlY2xpc3RzX3NjaGVkdWxlX291dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIHsKIAlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqIGNvbnN0IGNlID0gcnEtPmh3X2NvbnRleHQ7CiAKLQlpbnRl bF9lbmdpbmVfY29udGV4dF9vdXQoZW5naW5lKTsKKwlpbnRlbF9jb250ZXh0X291dChycS0+aHdf Y29udGV4dCk7CiAJZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5nZShycSwgSU5URUxfQ09O VEVYVF9TQ0hFRFVMRV9PVVQpOwogCWludGVsX2d0X3BtX3B1dChlbmdpbmUtPmd0KTsKIAotLSAK Mi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, HK_RANDOM_FROM,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 72F7CCA9EA0 for ; Fri, 25 Oct 2019 14:21:44 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 53F65205F4 for ; Fri, 25 Oct 2019 14:21:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 53F65205F4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2A0456EA57; Fri, 25 Oct 2019 14:21:41 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id EF49989DE5 for ; Fri, 25 Oct 2019 14:21:35 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Oct 2019 07:21:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,228,1569308400"; d="scan'208";a="202618171" Received: from mdlugoke-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.251.81.75]) by orsmga006.jf.intel.com with ESMTP; 25 Oct 2019 07:21:34 -0700 From: Tvrtko Ursulin To: Intel-gfx@lists.freedesktop.org Date: Fri, 25 Oct 2019 15:21:27 +0100 Message-Id: <20191025142131.17378-2-tvrtko.ursulin@linux.intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191025142131.17378-1-tvrtko.ursulin@linux.intel.com> References: <20191025142131.17378-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [RFC 1/5] drm/i915: Track per-context engine busyness X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191025142127.9uUK1i9lHC-2Ji5qX75u_3VtBaYB_mmaYQuPc_rjJNQ@z> RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNvbWUgY3Vz dG9tZXJzIHdhbnQgdG8ga25vdyBob3cgbXVjaCBvZiB0aGUgR1BVIHRpbWUgYXJlIHRoZWlyIGNs aWVudHMKdXNpbmcgaW4gb3JkZXIgdG8gbWFrZSBkeW5hbWljIGxvYWQgYmFsYW5jaW5nIGRlY2lz aW9ucy4KCldpdGggdGhlIGhvb2tzIGFscmVhZHkgaW4gcGxhY2Ugd2hpY2ggdHJhY2sgdGhlIG92 ZXJhbGwgZW5naW5lIGJ1c3luZXNzLAp3ZSBjYW4gZXh0ZW5kIHRoYXQgc2xpZ2h0bHkgdG8gc3Bs aXQgdGhhdCB0aW1lIGJldHdlZW4gY29udGV4dHMuCgp2MjogRml4IGFjY291bnRpbmcgZm9yIHRh aWwgdXBkYXRlcy4KdjM6IFJlYmFzZS4KdjQ6IE1hcmsgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4 dHMgYXMgYWN0aXZlIG9uIHN0YXRzIGVuYWJsZS4KdjU6IEluY2x1ZGUgc29tZSBoZWFkZXJzIHRv IGZpeCB0aGUgYnVpbGQuCnY2OiBBZGRlZCBmaW5lIGdyYWluZWQgbG9jay4Kdjc6IENvbnZlcnQg dG8gc2VxbG9jay4gKENocmlzIFdpbHNvbikKdjg6IFJlYmFzZSBhbmQgdGlkeSB3aXRoIGhlbHBl cnMuCnY5OiBSZWJhc2UuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVy c3VsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRl eHQuYyAgICAgICB8IDIwICsrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29u dGV4dC5oICAgICAgIHwgIDkgKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250 ZXh0X3R5cGVzLmggfCAgOSArKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2lu ZV9jcy5jICAgICB8IDE2ICsrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMu YyAgICAgICAgICAgfCA2NiArKysrKysrKysrKysrKysrLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDEw OCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9jb250ZXh0LmMKaW5kZXggZWU5ZDJiY2QyYzEzLi4zZDY4NzIwZGY1MTIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMKQEAgLTI0OCw2ICsyNDgsNyBAQCBpbnRl bF9jb250ZXh0X2luaXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCUlOSVRfTElTVF9IRUFE KCZjZS0+c2lnbmFscyk7CiAKIAltdXRleF9pbml0KCZjZS0+cGluX211dGV4KTsKKwlzZXFsb2Nr X2luaXQoJmNlLT5zdGF0cy5sb2NrKTsKIAogCWk5MTVfYWN0aXZlX2luaXQoJmNlLT5hY3RpdmUs CiAJCQkgX19pbnRlbF9jb250ZXh0X2FjdGl2ZSwgX19pbnRlbF9jb250ZXh0X3JldGlyZSk7CkBA IC0zNDgsNiArMzQ5LDI1IEBAIHN0cnVjdCBpOTE1X3JlcXVlc3QgKmludGVsX2NvbnRleHRfY3Jl YXRlX3JlcXVlc3Qoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogCXJldHVybiBycTsKIH0KIAor a3RpbWVfdCBpbnRlbF9jb250ZXh0X2dldF9idXN5X3RpbWUoc3RydWN0IGludGVsX2NvbnRleHQg KmNlKQoreworCXVuc2lnbmVkIGludCBzZXE7CisJa3RpbWVfdCB0b3RhbDsKKworCWRvIHsKKwkJ c2VxID0gcmVhZF9zZXFiZWdpbigmY2UtPnN0YXRzLmxvY2spOworCisJCXRvdGFsID0gY2UtPnN0 YXRzLnRvdGFsOworCisJCWlmIChjZS0+c3RhdHMuYWN0aXZlKQorCQkJdG90YWwgPSBrdGltZV9h ZGQodG90YWwsCisJCQkJCSAga3RpbWVfc3ViKGt0aW1lX2dldCgpLAorCQkJCQkJICAgIGNlLT5z dGF0cy5zdGFydCkpOworCX0gd2hpbGUgKHJlYWRfc2VxcmV0cnkoJmNlLT5zdGF0cy5sb2NrLCBz ZXEpKTsKKworCXJldHVybiB0b3RhbDsKK30KKwogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9J OTE1X1NFTEZURVNUKQogI2luY2x1ZGUgInNlbGZ0ZXN0X2NvbnRleHQuYyIKICNlbmRpZgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCmluZGV4IDY4YjNkMzE3ZDk1OS4uYzdh YjhlZmEzNTczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250 ZXh0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCkBAIC0x NTMsNCArMTUzLDEzIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3JpbmcgKl9faW50ZWxf Y29udGV4dF9yaW5nX3NpemUodTY0IHN6KQogCXJldHVybiB1NjRfdG9fcHRyKHN0cnVjdCBpbnRl bF9yaW5nLCBzeik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZAorX19pbnRlbF9jb250ZXh0X3N0 YXRzX3N0YXJ0KHN0cnVjdCBpbnRlbF9jb250ZXh0X3N0YXRzICpzdGF0cywga3RpbWVfdCBub3cp Cit7CisJc3RhdHMtPnN0YXJ0ID0gbm93OworCXN0YXRzLT5hY3RpdmUgPSB0cnVlOworfQorCitr dGltZV90IGludGVsX2NvbnRleHRfZ2V0X2J1c3lfdGltZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y2UpOworCiAjZW5kaWYgLyogX19JTlRFTF9DT05URVhUX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dF90eXBlcy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dF90eXBlcy5oCmluZGV4IDY5NTliMDVhZTVmOC4uYjMz ODRlMDFkMDMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250 ZXh0X3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dF90 eXBlcy5oCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1 ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxs aW51eC9zZXFsb2NrLmg+CiAKICNpbmNsdWRlICJpOTE1X2FjdGl2ZV90eXBlcy5oIgogI2luY2x1 ZGUgImk5MTVfdXRpbHMuaCIKQEAgLTc1LDYgKzc2LDE0IEBAIHN0cnVjdCBpbnRlbF9jb250ZXh0 IHsKIAogCS8qKiBzc2V1OiBDb250cm9sIGV1L3NsaWNlIHBhcnRpdGlvbmluZyAqLwogCXN0cnVj dCBpbnRlbF9zc2V1IHNzZXU7CisKKwkvKiogc3RhdHM6IENvbnRleHQgR1BVIGVuZ2luZSBidXN5 bmVzcyB0cmFja2luZy4gKi8KKwlzdHJ1Y3QgaW50ZWxfY29udGV4dF9zdGF0cyB7CisJCXNlcWxv Y2tfdCBsb2NrOworCQlib29sIGFjdGl2ZTsKKwkJa3RpbWVfdCBzdGFydDsKKwkJa3RpbWVfdCB0 b3RhbDsKKwl9IHN0YXRzOwogfTsKIAogI2VuZGlmIC8qIF9fSU5URUxfQ09OVEVYVF9UWVBFU19f ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3Mu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IDljYzFl YTY1MTllYy4uNjc5MmVjMDFmM2YyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9l bmdpbmVfY3MuYwpAQCAtMTU2OCw4ICsxNTY4LDIwIEBAIGludCBpbnRlbF9lbmFibGVfZW5naW5l X3N0YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCQllbmdpbmUtPnN0YXRz LmVuYWJsZWRfYXQgPSBrdGltZV9nZXQoKTsKIAotCQkvKiBYWFggc3VibWlzc2lvbiBtZXRob2Qg b2JsaXZpb3VzPyAqLwotCQlmb3IgKHBvcnQgPSBleGVjbGlzdHMtPmFjdGl2ZTsgKHJxID0gKnBv cnQpOyBwb3J0KyspCisJCS8qCisJCSAqIE1hcmsgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4dCBh cyBhY3RpdmUuCisJCSAqIFhYWCBzdWJtaXNzaW9uIG1ldGhvZCBvYmxpdmlvdXM/CisJCSAqLwor CisJCXJxID0gTlVMTDsKKwkJcG9ydCA9IGV4ZWNsaXN0cy0+YWN0aXZlOworCQlpZiAocG9ydCkK KwkJCXJxID0gKnBvcnQ7CisJCWlmIChycSkKKwkJCV9faW50ZWxfY29udGV4dF9zdGF0c19zdGFy dCgmcnEtPmh3X2NvbnRleHQtPnN0YXRzLAorCQkJCQkJICAgIGVuZ2luZS0+c3RhdHMuZW5hYmxl ZF9hdCk7CisKKwkJZm9yICg7IChycSA9ICpwb3J0KTsgcG9ydCsrKQogCQkJZW5naW5lLT5zdGF0 cy5hY3RpdmUrKzsKIAogCQlmb3IgKHBvcnQgPSBleGVjbGlzdHMtPnBlbmRpbmc7IChycSA9ICpw b3J0KTsgcG9ydCsrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCmluZGV4IDUyM2Rl MWZkNDQ1Mi4uMjMwNWQ3YTdhYzY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwpA QCAtOTQ0LDI2ICs5NDQsNjAgQEAgZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5nZShzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdW5zaWduZWQgbG9uZyBzdGF0dXMpCiAJCQkJICAgc3RhdHVz LCBycSk7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2VuZ2luZV9jb250ZXh0X2luKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkCitpbnRlbF9jb250ZXh0X3N0YXRz X3N0YXJ0KHN0cnVjdCBpbnRlbF9jb250ZXh0X3N0YXRzICpzdGF0cywga3RpbWVfdCBub3cpCit7 CisJd3JpdGVfc2VxbG9jaygmc3RhdHMtPmxvY2spOworCV9faW50ZWxfY29udGV4dF9zdGF0c19z dGFydChzdGF0cywgbm93KTsKKwl3cml0ZV9zZXF1bmxvY2soJnN0YXRzLT5sb2NrKTsKK30KKwor c3RhdGljIHZvaWQKK2ludGVsX2NvbnRleHRfc3RhdHNfc3RvcChzdHJ1Y3QgaW50ZWxfY29udGV4 dF9zdGF0cyAqc3RhdHMsIGt0aW1lX3Qgbm93KQoreworCXdyaXRlX3NlcWxvY2soJnN0YXRzLT5s b2NrKTsKKwlpZiAoc3RhdHMtPmFjdGl2ZSkgeworCQlzdGF0cy0+dG90YWwgPSBrdGltZV9hZGQo c3RhdHMtPnRvdGFsLAorCQkJCQkga3RpbWVfc3ViKG5vdywgc3RhdHMtPnN0YXJ0KSk7CisJCXN0 YXRzLT5hY3RpdmUgPSBmYWxzZTsKKwl9CisJd3JpdGVfc2VxdW5sb2NrKCZzdGF0cy0+bG9jayk7 Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2NvbnRleHRfaW4oc3RydWN0IGludGVsX2NvbnRleHQg KmNlLCBib29sIHN1Ym1pdCkKIHsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBj ZS0+ZW5naW5lOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJa3RpbWVfdCBub3c7CiAKIAlpZiAo UkVBRF9PTkNFKGVuZ2luZS0+c3RhdHMuZW5hYmxlZCkgPT0gMCkKIAkJcmV0dXJuOwogCiAJd3Jp dGVfc2VxbG9ja19pcnFzYXZlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKIAorCWlmIChz dWJtaXQpIHsKKwkJbm93ID0ga3RpbWVfZ2V0KCk7CisJCWludGVsX2NvbnRleHRfc3RhdHNfc3Rh cnQoJmNlLT5zdGF0cywgbm93KTsKKwl9IGVsc2UgeworCQlub3cgPSAwOworCX0KKwogCWlmIChl bmdpbmUtPnN0YXRzLmVuYWJsZWQgPiAwKSB7Ci0JCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSsr ID09IDApCi0JCQllbmdpbmUtPnN0YXRzLnN0YXJ0ID0ga3RpbWVfZ2V0KCk7CisJCWlmIChlbmdp bmUtPnN0YXRzLmFjdGl2ZSsrID09IDApIHsKKwkJCWlmICghbm93KQorCQkJCW5vdyA9IGt0aW1l X2dldCgpOworCQkJZW5naW5lLT5zdGF0cy5zdGFydCA9IG5vdzsKKwkJfQorCiAJCUdFTV9CVUdf T04oZW5naW5lLT5zdGF0cy5hY3RpdmUgPT0gMCk7CiAJfQogCiAJd3JpdGVfc2VxdW5sb2NrX2ly cXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOwogfQogCi1zdGF0aWMgdm9pZCBp bnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQor c3RhdGljIHZvaWQgaW50ZWxfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQog eworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGNlLT5lbmdpbmU7CiAJdW5zaWdu ZWQgbG9uZyBmbGFnczsKIAogCWlmIChSRUFEX09OQ0UoZW5naW5lLT5zdGF0cy5lbmFibGVkKSA9 PSAwKQpAQCAtOTcyLDE0ICsxMDA2LDI1IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuZ2luZV9jb250 ZXh0X291dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJd3JpdGVfc2VxbG9ja19p cnFzYXZlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKIAogCWlmIChlbmdpbmUtPnN0YXRz LmVuYWJsZWQgPiAwKSB7CisJCWt0aW1lX3Qgbm93ID0ga3RpbWVfZ2V0KCk7CisJCXN0cnVjdCBp OTE1X3JlcXVlc3QgKm5leHQ7CiAJCWt0aW1lX3QgbGFzdDsKIAorCQlpbnRlbF9jb250ZXh0X3N0 YXRzX3N0b3AoJmNlLT5zdGF0cywgbm93KTsKKworCQluZXh0ID0gTlVMTDsKKwkJaWYgKGVuZ2lu ZS0+ZXhlY2xpc3RzLmFjdGl2ZSkKKwkJCW5leHQgPSAqZW5naW5lLT5leGVjbGlzdHMuYWN0aXZl OworCQlpZiAobmV4dCkKKwkJCWludGVsX2NvbnRleHRfc3RhdHNfc3RhcnQoJm5leHQtPmh3X2Nv bnRleHQtPnN0YXRzLAorCQkJCQkJICBub3cpOworCiAJCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2 ZSAmJiAtLWVuZ2luZS0+c3RhdHMuYWN0aXZlID09IDApIHsKIAkJCS8qCiAJCQkgKiBEZWNyZW1l bnQgdGhlIGFjdGl2ZSBjb250ZXh0IGNvdW50IGFuZCBpbiBjYXNlIEdQVQogCQkJICogaXMgbm93 IGlkbGUgYWRkIHVwIHRvIHRoZSBydW5uaW5nIHRvdGFsLgogCQkJICovCi0JCQlsYXN0ID0ga3Rp bWVfc3ViKGt0aW1lX2dldCgpLCBlbmdpbmUtPnN0YXRzLnN0YXJ0KTsKKwkJCWxhc3QgPSBrdGlt ZV9zdWIobm93LCBlbmdpbmUtPnN0YXRzLnN0YXJ0KTsKIAogCQkJZW5naW5lLT5zdGF0cy50b3Rh bCA9IGt0aW1lX2FkZChlbmdpbmUtPnN0YXRzLnRvdGFsLAogCQkJCQkJCWxhc3QpOwpAQCAtOTg5 LDcgKzEwMzQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJICogdGhlIGZpcnN0IGV2ZW50IGluIHdoaWNo IGNhc2Ugd2UgYWNjb3VudCBmcm9tIHRoZQogCQkJICogdGltZSBzdGF0cyBnYXRoZXJpbmcgd2Fz IHR1cm5lZCBvbi4KIAkJCSAqLwotCQkJbGFzdCA9IGt0aW1lX3N1YihrdGltZV9nZXQoKSwgZW5n aW5lLT5zdGF0cy5lbmFibGVkX2F0KTsKKwkJCWxhc3QgPSBrdGltZV9zdWIobm93LCBlbmdpbmUt PnN0YXRzLmVuYWJsZWRfYXQpOwogCiAJCQllbmdpbmUtPnN0YXRzLnRvdGFsID0ga3RpbWVfYWRk KGVuZ2luZS0+c3RhdHMudG90YWwsCiAJCQkJCQkJbGFzdCk7CkBAIC0xMDAwLDcgKzEwNDUsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KgotX19leGVjbGlzdHNfc2NoZWR1bGVfaW4oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCitfX2V4 ZWNsaXN0c19zY2hlZHVsZV9pbihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgaW50IGlkeCkKIHsK IAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICogY29uc3QgZW5naW5lID0gcnEtPmVuZ2luZTsKIAlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqIGNvbnN0IGNlID0gcnEtPmh3X2NvbnRleHQ7CkBAIC0xMDIx LDcgKzEwNjYsNyBAQCBfX2V4ZWNsaXN0c19zY2hlZHVsZV9pbihzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycSkKIAogCWludGVsX2d0X3BtX2dldChlbmdpbmUtPmd0KTsKIAlleGVjbGlzdHNfY29udGV4 dF9zdGF0dXNfY2hhbmdlKHJxLCBJTlRFTF9DT05URVhUX1NDSEVEVUxFX0lOKTsKLQlpbnRlbF9l bmdpbmVfY29udGV4dF9pbihlbmdpbmUpOworCWludGVsX2NvbnRleHRfaW4ocnEtPmh3X2NvbnRl eHQsIGlkeCA9PSAwKTsKIAogCXJldHVybiBlbmdpbmU7CiB9CkBAIC0xMDM4LDcgKzEwODMsOCBA QCBleGVjbGlzdHNfc2NoZWR1bGVfaW4oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIGludCBpZHgp CiAJb2xkID0gUkVBRF9PTkNFKGNlLT5pbmZsaWdodCk7CiAJZG8gewogCQlpZiAoIW9sZCkgewot CQkJV1JJVEVfT05DRShjZS0+aW5mbGlnaHQsIF9fZXhlY2xpc3RzX3NjaGVkdWxlX2luKHJxKSk7 CisJCQlXUklURV9PTkNFKGNlLT5pbmZsaWdodCwKKwkJCQkgICBfX2V4ZWNsaXN0c19zY2hlZHVs ZV9pbihycSwgaWR4KSk7CiAJCQlicmVhazsKIAkJfQogCX0gd2hpbGUgKCF0cnlfY21weGNoZygm Y2UtPmluZmxpZ2h0LCAmb2xkLCBwdHJfaW5jKG9sZCkpKTsKQEAgLTExMTQsNyArMTE2MCw3IEBA IF9fZXhlY2xpc3RzX3NjaGVkdWxlX291dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIHsKIAlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqIGNvbnN0IGNlID0gcnEtPmh3X2NvbnRleHQ7CiAKLQlpbnRl bF9lbmdpbmVfY29udGV4dF9vdXQoZW5naW5lKTsKKwlpbnRlbF9jb250ZXh0X291dChycS0+aHdf Y29udGV4dCk7CiAJZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5nZShycSwgSU5URUxfQ09O VEVYVF9TQ0hFRFVMRV9PVVQpOwogCWludGVsX2d0X3BtX3B1dChlbmdpbmUtPmd0KTsKIAotLSAK Mi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=