From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Tue, 17 Apr 2018 13:27:36 +0100 Message-Id: <20180417122736.11603-8-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20180417122736.11603-1-tvrtko.ursulin@linux.intel.com> References: <20180417122736.11603-1-tvrtko.ursulin@linux.intel.com> Subject: [Intel-gfx] [RFC 7/7] drm/i915: Allow clients to query own per-engine busyness List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org, gordon.kelly@intel.com List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNvbWUgY3Vz dG9tZXJzIHdhbnQgdG8ga25vdyBob3cgbXVjaCBvZiB0aGUgR1BVIHRpbWUgYXJlIHRoZWlyIGNs aWVudHMKdXNpbmcgaW4gb3JkZXIgdG8gbWFrZSBkeW5hbWljIGxvYWQgYmFsYW5jaW5nIGRlY2lz aW9ucy4KCldpdGggdGhlIGFjY291bnRpbmcgaW5mcmFzdHJ1Y3R1cmUgaW4gcGxhY2UgaW4gdGhl IHByZXZpb3VzIHBhdGNoLCB3ZSBhZGQKYSBuZXcgY29udGV4dCBwYXJhbSAoSTkxNV9DT05URVhU X0dFVF9FTkdJTkVTX0JVU1kpIHdoaWNoIHBvaW50cyB0byBzdHJ1Y3QKZHJtX2k5MTVfY29udGV4 dF9lbmdpbmVzX2J1c3ksIGZvbGxvd2VkIGJ5IGEgdmFyaWFibGUgbnVtYmVyIG9mIHN0cnVjdHMK ZHJtX2k5MTVfY29udGV4dF9lbmdpbmVfYnVzeS4KClVzZXJzcGFjZSBuZWVkcyB0byBwcm92aWRl IHRoZSBudW1iZXIgb2YgYXR0YWNoZWQgc3RydWN0dXJlcyBpbiB0aGUKbnVtX2VuZ2luZXMgZmll bGRzLCBhcyB3ZWxsIGFzIHNldCBhcmdzLT5zaXplIHRvIGJ5dGUgc2l6ZSBvZiB0aGUgcHJvdmlk ZWQKYnVmZmVyLgoKQXR0YWNoZWQgZHJtX2k5MTVfY29udGV4dF9lbmdpbmVfYnVzeSBvYmplY3Rz IG5lZWQgdG8gaGF2ZSB0aGUgY2xhc3MgYW5kCmluc3RhbmNlIG9mIHRoZSBlbmdpbmUgd2hpY2gg dXNlcnNwYWNlIHdhbnRzIHRvIHF1ZXJ5IGJ1c3luZXNzIG9mCmluaXRpYWxpemVkLgoKS2VybmVs IHdpbGwgdGhlbiByZXBvcnQgYWNjdW11bGF0ZWQgZW5naW5lIGJ1c3luZXNzIGFzIG1vbm90b25p Y2FsbHkKaW5jcmVhc2luZyBudW1iZXIgb2YgbmFuby1zZWNvbmRzIHRoZSBlbmdpbmUgc3BlbnQg ZXhlY3V0aW5nIGpvYnMKYmVsb25naW5nIHRvIHRoaXMgY29udGV4dC4KCnYyOgogKiBVc2UgaW50 ZWxfY29udGV4dF9lbmdpbmVfZ2V0X2J1c3lfdGltZS4KICogUmVmYWN0b3IgdG8gb25seSB1c2Ug c3RydWN0X211dGV4IHdoaWxlIGluaXRpYWxseSBlbmFibGluZyBlbmdpbmUKICAgc3RhdHMuCgp2 MzoKICogRml4IHN0YXRzIGVuYWJsaW5nLgoKdjQ6CiAqIENoYW5nZSB1QVBJIHRvIGVuYWJsZSBx dWVyeWluZyBtdWx0aXBsZSBlbmdpbmVzIGF0IGEgdGltZS4KICAgKENocmlzIFdpbHNvbikKClNp Z25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNj OiBnb3Jkb24ua2VsbHlAaW50ZWwuY29tCi0tLQpUaGlzIHZlcnNpb24gaGFzIGJlZW4gY29tcGls ZSB0ZXN0ZWQgb25seSB1bnRpbCBhY2NlcHRhYmxlIHRvCmV2ZXJ5b25lLgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyB8IDk3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oIHwg IDEgKwogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgIHwgMjEgKysrKysr KwogMyBmaWxlcyBjaGFuZ2VkLCAxMTYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXggZTliMDk0MGNlN2Y5Li43 Y2ZlYzE3YjUxY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAg LTEyNiw2ICsxMjYsOSBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9jb250ZXh0X2ZyZWUoc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIAlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5F UzsgaSsrKSB7CiAJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9ICZjdHgtPmVuZ2luZVtpXTsK IAorCQlpZiAoY3R4LT5pOTE1LT5lbmdpbmVbaV0gJiYgY2UtPnN0YXRzLmVuYWJsZWQpCisJCQlp bnRlbF9kaXNhYmxlX2VuZ2luZV9zdGF0cyhjdHgtPmk5MTUtPmVuZ2luZVtpXSk7CisKIAkJaWYg KCFjZS0+c3RhdGUpCiAJCQljb250aW51ZTsKIApAQCAtNzMwLDExICs3MzMsOTUgQEAgaW50IGk5 MTVfZ2VtX2NvbnRleHRfZGVzdHJveV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50CitnZXRfZW5naW5lc19idXN5KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCQkgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQg KmN0eCwKKwkJIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSAqYXJncykKK3sKKwlz dHJ1Y3QgZHJtX2k5MTVfY29udGV4dF9lbmdpbmVfYnVzeSBfX3VzZXIgKmJ1c3lfdXNlcjsKKwlz dHJ1Y3QgZHJtX2k5MTVfY29udGV4dF9lbmdpbmVzX2J1c3kgZW5naW5lczsKKwlzdHJ1Y3QgZHJt X2k5MTVfY29udGV4dF9lbmdpbmVfYnVzeSBidXN5OworCWJvb2wgbXV0ZXggPSBmYWxzZTsKKwl1 bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0ID0gMDsKKworCWlmIChhcmdzLT5zaXplIDwgc2l6ZW9m KGVuZ2luZXMpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmZW5n aW5lcywgdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnZhbHVlKSwKKwkJCSAgIHNpemVvZihlbmdpbmVz KSkpCisJCXJldHVybiAtRUZBVUxUOworCisJaWYgKGVuZ2luZXMucGFkIHx8IGVuZ2luZXMubWJ6 KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChlbmdpbmVzLm51bV9lbmdpbmVzID09IDAgfHwg ZW5naW5lcy5udW1fZW5naW5lcyA+IEk5MTVfTlVNX0VOR0lORVMpCisJCXJldHVybiAtRUlOVkFM OworCisJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLCBhcmdzLT52YWx1ZSwKKwkJICAgICAg IHNpemVvZihlbmdpbmVzKSArIGVuZ2luZXMubnVtX2VuZ2luZXMgKiBzaXplb2YoYnVzeSkpKQor CQlyZXR1cm4gLUVGQVVMVDsKKworCWJ1c3lfdXNlciA9IChzdHJ1Y3QgZHJtX2k5MTVfY29udGV4 dF9lbmdpbmVfYnVzeSBfX3VzZXIgKikKKwkJICAgICgoY2hhciBfX3VzZXIgKilhcmdzLT52YWx1 ZSArIHNpemVvZihlbmdpbmVzKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZW5naW5lcy5udW1fZW5n aW5lczsgaSsrLCBidXN5X3VzZXIrKykgeworCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmU7CisJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKKworCQlfX2NvcHlfZnJvbV91c2VyKGJ1 c3lfdXNlciwgJmJ1c3ksIHNpemVvZihidXN5KSk7CisKKwkJaWYgKGJ1c3kubWJ6IHx8IGJ1c3ku ZmxhZ3MgfHwgYnVzeS5idXN5KSB7CisJCQlyZXQgPSAtRUlOVkFMOworCQkJZ290byBvdXQ7CisJ CX0KKworCQllbmdpbmUgPSBpbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoaTkxNSwKKwkJCQkJCSAg YnVzeS5jbGFzcywgYnVzeS5pbnN0YW5jZSk7CisJCWlmICghZW5naW5lKSB7CisJCQlyZXQgPSAt RUlOVkFMOworCQkJZ290byBvdXQ7CisJCX0KKworCQkvKiBFbmFibGUgc3RhdHMgb24gZmlyc3Qg cXVlcnkuICovCisJCWNlID0gJmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdOworCQlpZiAoIVJFQURf T05DRShjZS0+c3RhdHMuZW5hYmxlZCkpIHsKKwkJCS8qIEdyYWIgbXV0ZXggaWYgbmVlZCB0byBl bmFibGUgZW5naW5lIHN0YXRzLiAqLworCQkJaWYgKCFtdXRleCkgeworCQkJCXJldCA9IGk5MTVf bXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZpOTE1LT5kcm0pOworCQkJCWlmICghcmV0KQorCQkJ CQlicmVhazsKKwkJCQltdXRleCA9IHRydWU7CisJCQl9CisKKwkJCWlmICghY2UtPnN0YXRzLmVu YWJsZWQpIHsKKwkJCQlyZXQgPSBpbnRlbF9lbmFibGVfZW5naW5lX3N0YXRzKGVuZ2luZSk7CisJ CQkJaWYgKCFyZXQpCisJCQkJCWdvdG8gb3V0OworCQkJCWNlLT5zdGF0cy5lbmFibGVkID0gdHJ1 ZTsKKwkJCX0KKwkJfQorCisJCWJ1c3kuYnVzeSA9CisJCQlrdGltZV90b19ucyhpbnRlbF9jb250 ZXh0X2VuZ2luZV9nZXRfYnVzeV90aW1lKGN0eCwKKwkJCQkJCQkJICAgICAgIGVuZ2luZSkpOwor CisJCV9fY29weV90b191c2VyKGJ1c3lfdXNlciwgJmJ1c3ksIHNpemVvZihidXN5KSk7CisJfQor CitvdXQ6CisJaWYgKG11dGV4KQorCQltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0 ZXgpOworCisJcmV0dXJuIHJldDsKK30KKwogaW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1f aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCQkgICAgc3RydWN0 IGRybV9maWxlICpmaWxlKQogewogCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVf cHJpdiA9IGZpbGUtPmRyaXZlcl9wcml2OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9w YXJhbSAqYXJncyA9IGRhdGE7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19p OTE1KGRldik7CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKIAlpbnQgcmV0ID0gMDsK IApAQCAtNzUzLDEwICs4NDAsMTAgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1faW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAljYXNlIEk5MTVfQ09OVEVY VF9QQVJBTV9HVFRfU0laRToKIAkJaWYgKGN0eC0+cHBndHQpCiAJCQlhcmdzLT52YWx1ZSA9IGN0 eC0+cHBndHQtPmJhc2UudG90YWw7Ci0JCWVsc2UgaWYgKHRvX2k5MTUoZGV2KS0+bW0uYWxpYXNp bmdfcHBndHQpCi0JCQlhcmdzLT52YWx1ZSA9IHRvX2k5MTUoZGV2KS0+bW0uYWxpYXNpbmdfcHBn dHQtPmJhc2UudG90YWw7CisJCWVsc2UgaWYgKGk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0KQorCQkJ YXJncy0+dmFsdWUgPSBpOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+YmFzZS50b3RhbDsKIAkJZWxz ZQotCQkJYXJncy0+dmFsdWUgPSB0b19pOTE1KGRldiktPmdndHQuYmFzZS50b3RhbDsKKwkJCWFy Z3MtPnZhbHVlID0gaTkxNS0+Z2d0dC5iYXNlLnRvdGFsOwogCQlicmVhazsKIAljYXNlIEk5MTVf Q09OVEVYVF9QQVJBTV9OT19FUlJPUl9DQVBUVVJFOgogCQlhcmdzLT52YWx1ZSA9IGk5MTVfZ2Vt X2NvbnRleHRfbm9fZXJyb3JfY2FwdHVyZShjdHgpOwpAQCAtNzY3LDYgKzg1NCw5IEBAIGludCBp OTE1X2dlbV9jb250ZXh0X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiAJY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fUFJJT1JJVFk6CiAJCWFyZ3MtPnZh bHVlID0gY3R4LT5wcmlvcml0eTsKIAkJYnJlYWs7CisJY2FzZSBJOTE1X0NPTlRFWFRfR0VUX0VO R0lORVNfQlVTWToKKwkJcmV0ID0gZ2V0X2VuZ2luZXNfYnVzeShpOTE1LCBjdHgsIGFyZ3MpOwor CQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXQgPSAtRUlOVkFMOwogCQlicmVhazsKQEAgLTg0Miw2 ICs5MzIsNyBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9zZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQl9CiAJCWJyZWFrOwogCisJY2FzZSBJOTE1X0NP TlRFWFRfR0VUX0VOR0lORVNfQlVTWToKIAlkZWZhdWx0OgogCQlyZXQgPSAtRUlOVkFMOwogCQli cmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAppbmRleCAxNTkyMjNj NWZjNWYuLmU0NjhjOTcxYTdmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRl eHQuaApAQCAtMTYzLDYgKzE2Myw3IEBAIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0IHsKIAkJaW50 IHBpbl9jb3VudDsKIAkJc3RydWN0IHsKIAkJCXNlcWxvY2tfdCBsb2NrOworCQkJYm9vbCBlbmFi bGVkOwogCQkJYm9vbCBhY3RpdmU7CiAJCQlrdGltZV90IHN0YXJ0OwogCQkJa3RpbWVfdCB0b3Rh bDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFw aS9kcm0vaTkxNV9kcm0uaAppbmRleCBjODIwMzViNzE4MjQuLmMxYmRhZTQ4NDU5NCAxMDA2NDQK LS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0v aTkxNV9kcm0uaApAQCAtMTQ2MCw2ICsxNDYwLDI2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fdXNl cnB0ciB7CiAJX191MzIgaGFuZGxlOwogfTsKIAorc3RydWN0IGRybV9pOTE1X2NvbnRleHRfZW5n aW5lX2J1c3kgeworCV9fdTggY2xhc3M7IC8qIGluL291dCAqLworCV9fdTggaW5zdGFuY2U7IC8q IGluL291dCAqLworCisJX191MTYgbWJ6OworCisJX191MzIgZmxhZ3M7IC8qIGluL291dC9tYnog Ki8KKworCV9fdTY0IGJ1c3k7IC8qIG91dC9tYnogKi8KK307CisKK3N0cnVjdCBkcm1faTkxNV9j b250ZXh0X2VuZ2luZXNfYnVzeSB7CisJX191MzIgbnVtX2VuZ2luZXM7IC8qIGluICovCisJX191 MzIgcGFkOyAvKiBtYnogKi8KKworCV9fdTY0IG1iejsKKworCXN0cnVjdCBkcm1faTkxNV9jb250 ZXh0X2VuZ2luZV9idXN5IGVuZ2luZXNbMF07Cit9OworCiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2Nv bnRleHRfcGFyYW0gewogCV9fdTMyIGN0eF9pZDsKIAlfX3UzMiBzaXplOwpAQCAtMTQ3Myw2ICsx NDkzLDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIHsKICNkZWZpbmUgICBJ OTE1X0NPTlRFWFRfTUFYX1VTRVJfUFJJT1JJVFkJMTAyMyAvKiBpbmNsdXNpdmUgKi8KICNkZWZp bmUgICBJOTE1X0NPTlRFWFRfREVGQVVMVF9QUklPUklUWQkJMAogI2RlZmluZSAgIEk5MTVfQ09O VEVYVF9NSU5fVVNFUl9QUklPUklUWQktMTAyMyAvKiBpbmNsdXNpdmUgKi8KKyNkZWZpbmUgSTkx NV9DT05URVhUX0dFVF9FTkdJTkVTX0JVU1kJMHg3CiAJX191NjQgdmFsdWU7CiB9OwogCi0tIAoy LjE0LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=