From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC i-g-t 3/3] intel-gpu-top: Support for client stats Date: Wed, 14 Feb 2018 18:52:07 +0000 Message-ID: <20180214185207.8111-4-tvrtko.ursulin@linux.intel.com> References: <20180214185207.8111-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-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7D29F6E2B4 for ; Wed, 14 Feb 2018 18:52:20 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id k87so6837046wmi.0 for ; Wed, 14 Feb 2018 10:52:20 -0800 (PST) In-Reply-To: <20180214185207.8111-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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNpZ25lZC1v ZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogdG9v bHMvaW50ZWxfZ3B1X3RvcC5jIHwgMjY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMjYzIGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfZ3B1X3RvcC5jIGIvdG9vbHMv aW50ZWxfZ3B1X3RvcC5jCmluZGV4IDU5YTExMjI0MDA5Mi4uNjNmMGMxOTQxMjU4IDEwMDY0NAot LS0gYS90b29scy9pbnRlbF9ncHVfdG9wLmMKKysrIGIvdG9vbHMvaW50ZWxfZ3B1X3RvcC5jCkBA IC00MDcsOCArNDA3LDIyMiBAQCBzdGF0aWMgdm9pZCBwbXVfc2FtcGxlKHN0cnVjdCBlbmdpbmVz ICplbmdpbmVzKQogCX0KIH0KIAorZW51bSBjbGllbnRfc3RhdHVzIHsKKwlGUkVFID0gMCwgLyog bWJ6ICovCisJQUxJVkUsCisJUFJPQkUKK307CisKK3N0cnVjdCBjbGllbnQgeworCWVudW0gY2xp ZW50X3N0YXR1cyBzdGF0dXM7CisJdW5zaWduZWQgaW50IGlkOworCXVuc2lnbmVkIGludCBwaWQ7 CisJY2hhciBuYW1lWzEyOF07CisJdW5zaWduZWQgaW50IHNhbXBsZXM7CisJdW5zaWduZWQgbG9u ZyB0b3RhbDsKKwlzdHJ1Y3QgZW5naW5lcyAqZW5naW5lczsKKwl1bnNpZ25lZCBsb25nICp2YWw7 CisJdWludDY0X3QgKmxhc3Q7Cit9OworCisjZGVmaW5lIFNZU0ZTX0VOQUJMRSAiL3N5cy9jbGFz cy9kcm0vY2FyZDAvY2xpZW50cy9lbmFibGVfc3RhdHMiCisjZGVmaW5lIFNZU0ZTX0NMSUVOVFMg Ii9zeXMvY2xhc3MvZHJtL2NhcmQwL2NsaWVudHMvIgorCisjZGVmaW5lIFBFUklPRF9VUyAoMTAw MGUzKQorCitzdGF0aWMgc3RydWN0IGNsaWVudCAqY2xpZW50czsKK3N0YXRpYyB1bnNpZ25lZCBp bnQgbnVtX2NsaWVudHM7CisKKyNkZWZpbmUgZm9yX2VhY2hfY2xpZW50KGMsIHRtcCkgXAorCWZv ciAodG1wID0gbnVtX2NsaWVudHMsIGMgPSBjbGllbnRzOyB0bXAgPiAwOyB0bXAtLSwgYysrKQor CitzdGF0aWMgdWludDY0X3QgcmVhZF9jbGllbnRfYnVzeSh1bnNpZ25lZCBpbnQgaWQsIGNvbnN0 IGNoYXIgKmVuZ2luZSkKK3sKKwljaGFyIGJ1ZlsyNTZdOworCXNzaXplX3QgcmV0OworCisJcmV0 ID0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgU1lTRlNfQ0xJRU5UUyAiLyV1L2J1c3kvJXMi LAorCQkgICAgICAgaWQsIGVuZ2luZSk7CisJYXNzZXJ0KHJldCA+IDApOworCisJcmV0dXJuIGZp bGVuYW1lX3RvX3U2NChidWYsIDEwKTsKK30KKworc3RhdGljIHN0cnVjdCBjbGllbnQgKmZpbmRf Y2xpZW50KGVudW0gY2xpZW50X3N0YXR1cyBzdGF0dXMsIHVuc2lnbmVkIGludCBpZCkKK3sKKwlz dHJ1Y3QgY2xpZW50ICpjOworCXVuc2lnbmVkIGludCB0bXA7CisKKwlmb3JfZWFjaF9jbGllbnQo YywgdG1wKSB7CisJCWlmICgoc3RhdHVzID09IEZSRUUgJiYgYy0+c3RhdHVzID09IEZSRUUpIHx8 CisJCSAgICAoc3RhdHVzID09IGMtPnN0YXR1cyAmJiBjLT5pZCA9PSBpZCkpIHsKKwkJCXJldHVy biBjOworCQl9CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIHVwZGF0ZV9j bGllbnQoc3RydWN0IGNsaWVudCAqYywgdW5zaWduZWQgaW50IHBpZCwgY2hhciAqbmFtZSkKK3sK Kwl1aW50NjRfdCB2YWxbYy0+ZW5naW5lcy0+bnVtX2VuZ2luZXNdOworCXVuc2lnbmVkIGludCBp OworCisJaWYgKGMtPnBpZCAhPSBwaWQpCisJCWMtPnBpZCA9IHBpZDsKKworCWlmIChzdHJuY21w KGMtPm5hbWUsIG5hbWUsIHNpemVvZihjLT5uYW1lKSkpCisJCXN0cm5jcHkoYy0+bmFtZSwgbmFt ZSwgc2l6ZW9mKGMtPm5hbWUpKTsKKworCWZvciAoaSA9IDA7IGkgPCBjLT5lbmdpbmVzLT5udW1f ZW5naW5lczsgaSsrKSB7CisJCXN0cnVjdCBlbmdpbmUgKmVuZ2luZSA9IGVuZ2luZV9wdHIoYy0+ ZW5naW5lcywgaSk7CisKKwkJdmFsW2ldID0gcmVhZF9jbGllbnRfYnVzeShjLT5pZCwgZW5naW5l LT5uYW1lKTsKKwl9CisKKwljLT50b3RhbCA9IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgYy0+ZW5n aW5lcy0+bnVtX2VuZ2luZXM7IGkrKykgeworCQlhc3NlcnQodmFsW2ldID49IGMtPmxhc3RbaV0p OworCQljLT52YWxbaV0gPSB2YWxbaV0gLSBjLT5sYXN0W2ldOworCQljLT50b3RhbCArPSBjLT52 YWxbaV07CisJCWMtPmxhc3RbaV0gPSB2YWxbaV07CisJfQorCisJYy0+c2FtcGxlcysrOworCWMt PnN0YXR1cyA9IEFMSVZFOworfQorCitzdGF0aWMgdm9pZAorYWRkX2NsaWVudCh1bnNpZ25lZCBp bnQgaWQsIHVuc2lnbmVkIGludCBwaWQsIGNoYXIgKm5hbWUsCisJICAgc3RydWN0IGVuZ2luZXMg KmVuZ2luZXMpCit7CisJc3RydWN0IGNsaWVudCAqYzsKKworCWFzc2VydCghZmluZF9jbGllbnQo QUxJVkUsIGlkKSk7CisKKwljID0gZmluZF9jbGllbnQoRlJFRSwgMCk7CisJaWYgKCFjKSB7CisJ CXVuc2lnbmVkIGludCBpZHggPSBudW1fY2xpZW50czsKKworCQludW1fY2xpZW50cyArPSAobnVt X2NsaWVudHMgKyAyKSAvIDI7CisJCWNsaWVudHMgPSByZWFsbG9jKGNsaWVudHMsIG51bV9jbGll bnRzICogc2l6ZW9mKCpjKSk7CisJCWFzc2VydChjbGllbnRzKTsKKwkJYyA9ICZjbGllbnRzW2lk eF07CisJCW1lbXNldChjLCAwLCAobnVtX2NsaWVudHMgLSBpZHgpICogc2l6ZW9mKCpjKSk7CisJ fQorCisJYy0+aWQgPSBpZDsKKwljLT5lbmdpbmVzID0gZW5naW5lczsKKwljLT52YWwgPSBjYWxs b2MoZW5naW5lcy0+bnVtX2VuZ2luZXMsIHNpemVvZihjLT52YWwpKTsKKwljLT5sYXN0ID0gY2Fs bG9jKGVuZ2luZXMtPm51bV9lbmdpbmVzLCBzaXplb2YoYy0+bGFzdCkpOworCWFzc2VydChjLT52 YWwgJiYgYy0+bGFzdCk7CisKKwl1cGRhdGVfY2xpZW50KGMsIHBpZCwgbmFtZSk7CisKKy8vIAlj ID0gZmluZF9jbGllbnQoYy0+c3RhdHVzLCBjLT5pZCk7Cit9CisKK3N0YXRpYyB2b2lkIGZyZWVf Y2xpZW50KHN0cnVjdCBjbGllbnQgKmMpCit7CisJZnJlZShjLT52YWwpOworCWZyZWUoYy0+bGFz dCk7CisJbWVtc2V0KGMsIDAsIHNpemVvZigqYykpOworfQorCitzdGF0aWMgY2hhciAqcmVhZF9j bGllbnRfc3lzZnModW5zaWduZWQgaW50IGlkLCBjb25zdCBjaGFyICpmaWVsZCkKK3sKKwljaGFy IGJ1ZlsyNTZdOworCXNzaXplX3QgcmV0OworCisJcmV0ID0gc25wcmludGYoYnVmLCBzaXplb2Yo YnVmKSwgU1lTRlNfQ0xJRU5UUyAiLyV1LyVzIiwgaWQsIGZpZWxkKTsKKwlhc3NlcnQocmV0ID4g MCk7CisKKwlyZXQgPSBmaWxlbmFtZV90b19idWYoYnVmLCBidWYsIHNpemVvZihidWYpKTsKKwlh c3NlcnQocmV0ID09IDApOworCisJcmV0dXJuIHN0cmR1cChidWYpOworfQorCitzdGF0aWMgdm9p ZCBzY2FuKHN0cnVjdCBlbmdpbmVzICplbmdpbmVzKQoreworCXN0cnVjdCBkaXJlbnQgKmRlbnQ7 CisJc3RydWN0IGNsaWVudCAqYzsKKwljaGFyICpwaWQsICpuYW1lOworCXVuc2lnbmVkIGludCB0 bXA7CisJdW5zaWduZWQgaW50IGlkOworCURJUiAqZDsKKworCWZvcl9lYWNoX2NsaWVudChjLCB0 bXApIHsKKwkJaWYgKGMtPnN0YXR1cyA9PSBBTElWRSkKKwkJCWMtPnN0YXR1cyA9IFBST0JFOwor CX0KKworCWQgPSBvcGVuZGlyKFNZU0ZTX0NMSUVOVFMpOworCWFzc2VydCghTlVMTCk7CisKKwl3 aGlsZSAoKGRlbnQgPSByZWFkZGlyKGQpKSAhPSBOVUxMKSB7CisJCWlmIChkZW50LT5kX3R5cGUg IT0gRFRfRElSKQorCQkJY29udGludWU7CisJCWlmICghaXNkaWdpdChkZW50LT5kX25hbWVbMF0p KQorCQkJY29udGludWU7CisKKwkJaWQgPSBhdG9pKGRlbnQtPmRfbmFtZSk7CisKKwkJbmFtZSA9 IHJlYWRfY2xpZW50X3N5c2ZzKGlkLCAibmFtZSIpOworCQlhc3NlcnQobmFtZSk7CisKKwkJcGlk ID0gcmVhZF9jbGllbnRfc3lzZnMoaWQsICJwaWQiKTsKKwkJYXNzZXJ0KHBpZCk7CisKKwkJYyA9 IGZpbmRfY2xpZW50KFBST0JFLCBpZCk7CisJCWlmIChjKSB7CisJCQl1cGRhdGVfY2xpZW50KGMs IGF0b2kocGlkKSwgbmFtZSk7CisJCQljb250aW51ZTsKKwkJfQorCisJCWFkZF9jbGllbnQoaWQs IGF0b2kocGlkKSwgbmFtZSwgZW5naW5lcyk7CisKKwkJZnJlZShuYW1lKTsKKwkJZnJlZShwaWQp OworCX0KKworCWNsb3NlZGlyKGQpOworCisJZm9yX2VhY2hfY2xpZW50KGMsIHRtcCkgeworCQlp ZiAoYy0+c3RhdHVzID09IFBST0JFKQorCQkJZnJlZV9jbGllbnQoYyk7CisJfQorfQorCitzdGF0 aWMgaW50IGNtcChjb25zdCB2b2lkICpfYSwgY29uc3Qgdm9pZCAqX2IpCit7CisJY29uc3Qgc3Ry dWN0IGNsaWVudCAqYSA9IF9hOworCWNvbnN0IHN0cnVjdCBjbGllbnQgKmIgPSBfYjsKKwlsb25n IHRvdF9hID0gYS0+dG90YWw7CisJbG9uZyB0b3RfYiA9IGItPnRvdGFsOworCisJaWYgKGEtPnN0 YXR1cyAhPSBBTElWRSB8fCBhLT5zYW1wbGVzIDwgMikKKwkJdG90X2EgPSAtMTsKKwlpZiAoYi0+ c3RhdHVzICE9IEFMSVZFIHx8IGItPnNhbXBsZXMgPCAyKQorCQl0b3RfYiA9IC0xOworCisJaWYg KHRvdF9hID09IHRvdF9iKQorCQlyZXR1cm4gYS0+cGlkIC0gYi0+cGlkOworCWVsc2UKKwkJcmV0 dXJuIC0odG90X2EgLSB0b3RfYik7Cit9CisKIHN0YXRpYyBjb25zdCBjaGFyICpiYXJzW10gPSB7 ICIgIiwgIuKWjyIsICLilo4iLCAi4paNIiwgIuKWjCIsICLilosiLCAi4paKIiwgIuKWiSIsICLi logiIH07CiAKK3N0YXRpYyB2b2lkIG5fc3BhY2VzKGNvbnN0IHVuc2lnbmVkIGludCBuKQorewor CXVuc2lnbmVkIGludCBpOworCisJZm9yIChpID0gMDsgaSA8IG47IGkrKykKKwkJcHV0Y2hhcign ICcpOworfQorCiBzdGF0aWMgdm9pZAogcHJpbnRfcGVyY2VudGFnZV9iYXIoZG91YmxlIHBlcmNl bnQsIGludCBtYXhfbGVuKQogewpAQCAtNDIyLDggKzYzNiw3IEBAIHByaW50X3BlcmNlbnRhZ2Vf YmFyKGRvdWJsZSBwZXJjZW50LCBpbnQgbWF4X2xlbikKIAlpZiAoaSkKIAkJcHJpbnRmKCIlcyIs IGJhcnNbaV0pOwogCi0JZm9yIChpID0gMDsgaSA8IChtYXhfbGVuIC0gMiAtIChiYXJfbGVuICsg NykgLyA4KTsgaSsrKQotCQlwdXRjaGFyKCcgJyk7CisJbl9zcGFjZXMobWF4X2xlbiAtIDIgLSAo YmFyX2xlbiArIDcpIC8gOCk7CiAKIAlwdXRjaGFyKCd8Jyk7CiB9CkBAIC01MDAsMTYgKzcxMywy MSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCWVuZ2luZXMtPmxvYWRfZXhw W2ldID0gZXhwKC1wZXJpb2QgLyBsb2FkX3BlcmlvZFtpXSk7CiAKIAlwbXVfc2FtcGxlKGVuZ2lu ZXMpOworCXNjYW4oZW5naW5lcyk7CiAKIAlmb3IgKDs7KSB7CiAJCWRvdWJsZSB0LCBmcmVxWzJd LCBpcnEsIHJjNiwgcG93ZXI7CiAJCWRvdWJsZSBxZCA9IDA7CiAJCWludCBsaW5lcyA9IDA7CisJ CXN0cnVjdCBjbGllbnQgKmM7CisJCXVuc2lnbmVkIGludCBsZW4sIGVuZ2luZV93OwogCQl1bnNp Z25lZCBpbnQgajsKIAogCQl1c2xlZXAocGVyaW9kX3VzKTsKIAogCQlwbXVfc2FtcGxlKGVuZ2lu ZXMpOworCQlzY2FuKGVuZ2luZXMpOworCiAJCXQgPSAoZG91YmxlKShlbmdpbmVzLT50cy5jdXIg LSBlbmdpbmVzLT50cy5wcmV2KSAvIDFlOTsKIAogCQlwcmludGYoIlwwMzNbSFwwMzNbSiIpOwpA QCAtNTYxLDggKzc3OSw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCQlm b3IgKGkgPSAwOyBpIDwgZW5naW5lcy0+bnVtX2VuZ2luZXMgJiYgbGluZXMgPCBjb25faDsgaSsr KSB7CiAJCQlzdHJ1Y3QgZW5naW5lICplbmdpbmUgPSBlbmdpbmVfcHRyKGVuZ2luZXMsIGkpOwot CQkJdW5zaWduZWQgaW50IG1heF93ID0gY29uX3cgLSAxOwotCQkJdW5zaWduZWQgaW50IGxlbjsK IAkJCWRvdWJsZSB2YWxbMl07CiAJCQljaGFyIGJ1ZlsxMjhdOwogCkBAIC01NzksNyArNzk1LDcg QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCSAgICAgIGVuZ2luZS0+cWRb MF0sCiAJCQkJICAgICAgZW5naW5lLT5xZFsxXSwKIAkJCQkgICAgICBlbmdpbmUtPnFkWzJdKTsK LQkJCXByaW50X3BlcmNlbnRhZ2VfYmFyKHZhbFswXSwgbWF4X3cgLSBsZW4pOworCQkJcHJpbnRf cGVyY2VudGFnZV9iYXIodmFsWzBdLCBjb25fdyAtIDEgLSBsZW4pOwogCiAJCQlwcmludGYoIiVz XG4iLCBidWYpOwogCkBAIC01ODcsNiArODAzLDQ4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAkJfQogCiAJCXByaW50ZigiXG4iKTsKKworCQlwcmludGYoIlwwMzNbN20iKTsK KwkJbGVuID0gcHJpbnRmKCIlNXMlMTZzIiwgIlBJRCIsICJOQU1FIik7CisJCWVuZ2luZV93ID0g KGNvbl93IC0gbGVuKSAvIGVuZ2luZXMtPm51bV9lbmdpbmVzOworCQlmb3IgKGkgPSAwOyBpIDwg ZW5naW5lcy0+bnVtX2VuZ2luZXMgJiYgbGluZXMgPCBjb25faDsgaSsrKSB7CisJCQlzdHJ1Y3Qg ZW5naW5lICplbmdpbmUgPSBlbmdpbmVfcHRyKGVuZ2luZXMsIGkpOworCQkJdW5zaWduZWQgaW50 IHBhZCA9IChlbmdpbmVfdyAtIHN0cmxlbihlbmdpbmUtPm5hbWUpKSAvIDI7CisKKwkJCW5fc3Bh Y2VzKHBhZCk7CisJCQlwcmludGYoIiVzIiwgZW5naW5lLT5uYW1lKTsKKwkJCW5fc3BhY2VzKGVu Z2luZV93IC0gcGFkIC0gc3RybGVuKGVuZ2luZS0+bmFtZSkpOworCQkJbGVuICs9IHBhZCArIHN0 cmxlbihlbmdpbmUtPm5hbWUpICsKKwkJCSAgICAgICAoZW5naW5lX3cgLSBwYWQgLSBzdHJsZW4o ZW5naW5lLT5uYW1lKSk7CisJCX0KKwkJbl9zcGFjZXMoY29uX3cgLSBsZW4pOworCQlwcmludGYo IlwwMzNbMG1cbiIpOworCQlsaW5lcysrOworCisJCXFzb3J0KGNsaWVudHMsIG51bV9jbGllbnRz LCBzaXplb2YoKmMpLCBjbXApOworCisJCWZvcl9lYWNoX2NsaWVudChjLCBpKSB7CisJCQlpZiAo bGluZXMgPiBjb25faCkKKwkJCQlicmVhazsKKworCQkJYXNzZXJ0KGMtPnN0YXR1cyAhPSBQUk9C RSk7CisJCQlpZiAoYy0+c3RhdHVzICE9IEFMSVZFIHx8IGMtPnNhbXBsZXMgPCAyKQorCQkJCWJy ZWFrOworCisJCQlwcmludGYoIiU1dSUxNnMgIiwgYy0+cGlkLCBjLT5uYW1lKTsKKworCQkJZm9y IChpID0gMDsgaSA8IGVuZ2luZXMtPm51bV9lbmdpbmVzOyBpKyspIHsKKwkJCQlkb3VibGUgcGN0 OworCisJCQkJcGN0ID0gKGRvdWJsZSljLT52YWxbaV0gLyBwZXJpb2RfdXMgLyAxZTMgKiAxMDA7 CisKKwkJCQlwcmludF9wZXJjZW50YWdlX2JhcihwY3QsIGVuZ2luZV93KTsKKwkJCX0KKworCQkJ cHV0Y2hhcignXG4nKTsKKwkJCWxpbmVzKys7CisJCX0KKwogCX0KIAogCXJldHVybiAwOwotLSAK Mi4xNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK