From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t v3 6/9] intel-gpu-overlay: Use RAPL PMU for power reading Date: Tue, 10 Oct 2017 13:05:40 +0100 Message-ID: <20171010120540.24784-1-tvrtko.ursulin@linux.intel.com> References: <20171010113042.23935-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-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id EAF236E419 for ; Tue, 10 Oct 2017 12:05:47 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id k4so4630787wmc.1 for ; Tue, 10 Oct 2017 05:05:47 -0700 (PDT) In-Reply-To: <20171010113042.23935-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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldpcmUgdXAg dG8gdGhlIFJBUEwgUE1VIGZvciBHUFUgZW5lcmd5IHJlYWRpbmdzLgoKVGhlIG9ubHkgY29tcGxp Y2F0aW9uIGlzIHRoYXQgd2UgaGF2ZSB0byBhZGQgY29kZSB0byBwYXJzZToKCiAjIGNhdCAvc3lz L2RldmljZXMvcG93ZXIvZXZlbnRzL2VuZXJneS1ncHUuc2NhbGUKIDIuMzI4MzA2NDM2NTM4Njk2 Mjg5MDYyNWUtMTAKCnYyOiBMaW5rIHdpdGggLWxtLgp2Mzogc3RydG9kIGNhbiBoYW5kbGUgc2Np ZW50aWZpYyBub3RhdGlvbiwgZXZlbiB0aG91Z2ggbXkgaW5pdGlhbAogICAgcmVhZGluZyBvZiB0 aGUgbWFuIHBhZ2UgZGlkIG5vdCBzcG90IHRoYXQuIChDaHJpcyBXaWxzb24pCgpTaWduZWQtb2Zm LWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGxpYi9p Z3RfcGVyZi5jICAgICAgfCAgMTYgKysrKystLQogbGliL2lndF9wZXJmLmggICAgICB8ICAgMSAr CiBvdmVybGF5L01ha2VmaWxlLmFtIHwgICAyICstCiBvdmVybGF5L3Bvd2VyLmMgICAgIHwgMTI3 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIG92 ZXJsYXkvcG93ZXIuaCAgICAgfCAgIDIgKwogNSBmaWxlcyBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9u cygrKSwgNDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9wZXJmLmMgYi9saWIv aWd0X3BlcmYuYwppbmRleCAyMDg0NzQzMDJmY2MuLjAyMjE0NjFlOTE4ZiAxMDA2NDQKLS0tIGEv bGliL2lndF9wZXJmLmMKKysrIGIvbGliL2lndF9wZXJmLmMKQEAgLTI3LDExICsyNywxMiBAQCB1 aW50NjRfdCBpOTE1X3R5cGVfaWQodm9pZCkKIAlyZXR1cm4gc3RydG91bGwoYnVmLCBOVUxMLCAw KTsKIH0KIAotc3RhdGljIGludCBfcGVyZl9vcGVuKHVpbnQ2NF90IGNvbmZpZywgaW50IGdyb3Vw LCB1aW50NjRfdCBmb3JtYXQpCitzdGF0aWMgaW50CitfcGVyZl9vcGVuKHVpbnQ2NF90IHR5cGUs IHVpbnQ2NF90IGNvbmZpZywgaW50IGdyb3VwLCB1aW50NjRfdCBmb3JtYXQpCiB7CiAJc3RydWN0 IHBlcmZfZXZlbnRfYXR0ciBhdHRyID0geyB9OwogCi0JYXR0ci50eXBlID0gaTkxNV90eXBlX2lk KCk7CisJYXR0ci50eXBlID0gdHlwZTsKIAlpZiAoYXR0ci50eXBlID09IDApCiAJCXJldHVybiAt RU5PRU5UOwogCkBAIC00NiwxMSArNDcsMTggQEAgc3RhdGljIGludCBfcGVyZl9vcGVuKHVpbnQ2 NF90IGNvbmZpZywgaW50IGdyb3VwLCB1aW50NjRfdCBmb3JtYXQpCiAKIGludCBwZXJmX2k5MTVf b3Blbih1aW50NjRfdCBjb25maWcpCiB7Ci0JcmV0dXJuIF9wZXJmX29wZW4oY29uZmlnLCAtMSwg UEVSRl9GT1JNQVRfVE9UQUxfVElNRV9FTkFCTEVEKTsKKwlyZXR1cm4gX3BlcmZfb3BlbihpOTE1 X3R5cGVfaWQoKSwgY29uZmlnLCAtMSwKKwkJCSAgUEVSRl9GT1JNQVRfVE9UQUxfVElNRV9FTkFC TEVEKTsKIH0KIAogaW50IHBlcmZfaTkxNV9vcGVuX2dyb3VwKHVpbnQ2NF90IGNvbmZpZywgaW50 IGdyb3VwKQogewotCXJldHVybiBfcGVyZl9vcGVuKGNvbmZpZywgZ3JvdXAsCisJcmV0dXJuIF9w ZXJmX29wZW4oaTkxNV90eXBlX2lkKCksIGNvbmZpZywgZ3JvdXAsCiAJCQkgIFBFUkZfRk9STUFU X1RPVEFMX1RJTUVfRU5BQkxFRCB8IFBFUkZfRk9STUFUX0dST1VQKTsKIH0KKworaW50IGlndF9w ZXJmX29wZW4odWludDY0X3QgdHlwZSwgdWludDY0X3QgY29uZmlnKQoreworCXJldHVybiBfcGVy Zl9vcGVuKHR5cGUsIGNvbmZpZywgLTEsCisJCQkgIFBFUkZfRk9STUFUX1RPVEFMX1RJTUVfRU5B QkxFRCk7Cit9CmRpZmYgLS1naXQgYS9saWIvaWd0X3BlcmYuaCBiL2xpYi9pZ3RfcGVyZi5oCmlu ZGV4IDI4NTgyMzc4NjMyNC4uYjFmNTI1NzM5YzY5IDEwMDY0NAotLS0gYS9saWIvaWd0X3BlcmYu aAorKysgYi9saWIvaWd0X3BlcmYuaApAQCAtOTksNSArOTksNiBAQCBwZXJmX2V2ZW50X29wZW4o c3RydWN0IHBlcmZfZXZlbnRfYXR0ciAqYXR0ciwKIHVpbnQ2NF90IGk5MTVfdHlwZV9pZCh2b2lk KTsKIGludCBwZXJmX2k5MTVfb3Blbih1aW50NjRfdCBjb25maWcpOwogaW50IHBlcmZfaTkxNV9v cGVuX2dyb3VwKHVpbnQ2NF90IGNvbmZpZywgaW50IGdyb3VwKTsKK2ludCBpZ3RfcGVyZl9vcGVu KHVpbnQ2NF90IHR5cGUsIHVpbnQ2NF90IGNvbmZpZyk7CiAKICNlbmRpZiAvKiBJOTE1X1BFUkZf SCAqLwpkaWZmIC0tZ2l0IGEvb3ZlcmxheS9NYWtlZmlsZS5hbSBiL292ZXJsYXkvTWFrZWZpbGUu YW0KaW5kZXggY2VmZGUyZDA0MGY4Li5mNDlmNTRhYzM1OTAgMTAwNjQ0Ci0tLSBhL292ZXJsYXkv TWFrZWZpbGUuYW0KKysrIGIvb3ZlcmxheS9NYWtlZmlsZS5hbQpAQCAtNjMsNyArNjMsNyBAQCBp bnRlbF9ncHVfb3ZlcmxheV9TT1VSQ0VTICs9IFwKIAogaW50ZWxfZ3B1X292ZXJsYXlfU09VUkNF UyArPSAkKGJvdGhfeDExX3NvdXJjZXMpCiAKLWludGVsX2dwdV9vdmVybGF5X0xEQUREID0gJChM REFERCkgLWxydAoraW50ZWxfZ3B1X292ZXJsYXlfTERBREQgPSAkKExEQUREKSAtbHJ0IC1sbQog CiBFWFRSQV9ESVNUPSBcCiAJUkVBRE1FIFwKZGlmZiAtLWdpdCBhL292ZXJsYXkvcG93ZXIuYyBi L292ZXJsYXkvcG93ZXIuYwppbmRleCA4MDVmNGNhNzgwNWMuLjlhYzkwZmRlODc4NiAxMDA2NDQK LS0tIGEvb3ZlcmxheS9wb3dlci5jCisrKyBiL292ZXJsYXkvcG93ZXIuYwpAQCAtMzAsNjAgKzMw LDEwNyBAQAogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8dGltZS5oPgogI2luY2x1ZGUg PGVycm5vLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxtYXRoLmg+CiAKICNpbmNs dWRlICJpZ3RfcGVyZi5oIgogCiAjaW5jbHVkZSAicG93ZXIuaCIKICNpbmNsdWRlICJkZWJ1Z2Zz LmgiCiAKLS8qIFhYWCBJcyB0aGlzIGV4cG9zZWQgdGhyb3VnaCBSQVBMPyAqLwotCi1pbnQgcG93 ZXJfaW5pdChzdHJ1Y3QgcG93ZXIgKnBvd2VyKQorc3RhdGljIGludAorZmlsZW5hbWVfdG9fYnVm KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjaGFyICpidWYsIHVuc2lnbmVkIGludCBidWZzaXplKQog ewotCWNoYXIgYnVmWzQwOTZdOwotCWludCBmZCwgbGVuOwotCi0JbWVtc2V0KHBvd2VyLCAwLCBz aXplb2YoKnBvd2VyKSk7Ci0KLQlwb3dlci0+ZmQgPSAtMTsKKwlpbnQgZmQ7CisJc3NpemVfdCBy ZXQ7CiAKLQlzcHJpbnRmKGJ1ZiwgIiVzL2k5MTVfZW5lcmd5X3VKIiwgZGVidWdmc19kcmlfcGF0 aCk7Ci0JZmQgPSBvcGVuKGJ1ZiwgMCk7CisJZmQgPSBvcGVuKGZpbGVuYW1lLCBPX1JET05MWSk7 CiAJaWYgKGZkIDwgMCkKLQkJcmV0dXJuIHBvd2VyLT5lcnJvciA9IGVycm5vOworCQlyZXR1cm4g LTE7CiAKLQlsZW4gPSByZWFkKGZkLCBidWYsIHNpemVvZihidWYpKTsKKwlyZXQgPSByZWFkKGZk LCBidWYsIGJ1ZnNpemUgLSAxKTsKIAljbG9zZShmZCk7CisJaWYgKHJldCA8IDEpCisJCXJldHVy biAtMTsKIAotCWlmIChsZW4gPCAwKQotCQlyZXR1cm4gcG93ZXItPmVycm9yID0gZXJybm87Ci0K LQlidWZbbGVuXSA9ICdcMCc7Ci0JaWYgKHN0cnRvdWxsKGJ1ZiwgMCwgMCkgPT0gMCkKLQkJcmV0 dXJuIHBvd2VyLT5lcnJvciA9IEVJTlZBTDsKKwlidWZbcmV0XSA9ICdcMCc7CiAKIAlyZXR1cm4g MDsKIH0KIAotc3RhdGljIHVpbnQ2NF90IGZpbGVfdG9fdTY0KGNvbnN0IGNoYXIgKm5hbWUpCitz dGF0aWMgdWludDY0X3QgZmlsZW5hbWVfdG9fdTY0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQg YmFzZSkKIHsKLQljaGFyIGJ1Zls0MDk2XTsKLQlpbnQgZmQsIGxlbjsKKwljaGFyIGJ1Zls2NF0s ICpiOwogCi0Jc3ByaW50ZihidWYsICIlcy8lcyIsIGRlYnVnZnNfZHJpX3BhdGgsIG5hbWUpOwot CWZkID0gb3BlbihidWYsIDApOwotCWlmIChmZCA8IDApCisJaWYgKGZpbGVuYW1lX3RvX2J1Zihm aWxlbmFtZSwgYnVmLCBzaXplb2YoYnVmKSkpCiAJCXJldHVybiAwOwogCi0JbGVuID0gcmVhZChm ZCwgYnVmLCBzaXplb2YoYnVmKS0xKTsKLQljbG9zZShmZCk7CisJLyoKKwkgKiBIYW5kbGUgYm90 aCBzaW5nbGUgaW50ZWdlciBhbmQga2V5PXZhbHVlIGZvcm1hdHMgYnkgc2tpcHBpbmcKKwkgKiBs ZWFkaW5nIG5vbi1kaWdpdHMuCisJICovCisJYiA9IGJ1ZjsKKwl3aGlsZSAoKmIgJiYgIWlzZGln aXQoKmIpKQorCQliKys7CisKKwlyZXR1cm4gc3RydG91bGwoYiwgTlVMTCwgYmFzZSk7Cit9CisK K3N0YXRpYyB1aW50NjRfdCBkZWJ1Z2ZzX2ZpbGVfdG9fdTY0KGNvbnN0IGNoYXIgKm5hbWUpCit7 CisJY2hhciBidWZbMTAyNF07CisKKwlzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJXMvJXMi LCBkZWJ1Z2ZzX2RyaV9wYXRoLCBuYW1lKTsKKworCXJldHVybiBmaWxlbmFtZV90b191NjQoYnVm LCAwKTsKK30KKworc3RhdGljIHVpbnQ2NF90IHJhcGxfdHlwZV9pZCh2b2lkKQoreworCXJldHVy biBmaWxlbmFtZV90b191NjQoIi9zeXMvZGV2aWNlcy9wb3dlci90eXBlIiwgMTApOworfQorCitz dGF0aWMgdWludDY0X3QgcmFwbF9ncHVfcG93ZXIodm9pZCkKK3sKKwlyZXR1cm4gZmlsZW5hbWVf dG9fdTY0KCIvc3lzL2RldmljZXMvcG93ZXIvZXZlbnRzL2VuZXJneS1ncHUiLCAwKTsKK30KIAot CWlmIChsZW4gPCAwKQorc3RhdGljIGRvdWJsZSBmaWxlbmFtZV90b19kb3VibGUoY29uc3QgY2hh ciAqZmlsZW5hbWUpCit7CisJY2hhciBidWZbNjRdOworCisJaWYgKGZpbGVuYW1lX3RvX2J1Zihm aWxlbmFtZSwgYnVmLCBzaXplb2YoYnVmKSkpCiAJCXJldHVybiAwOwogCi0JYnVmW2xlbl0gPSAn XDAnOworCXJldHVybiBzdHJ0b2QoYnVmLCBOVUxMKTsKK30KKworc3RhdGljIGRvdWJsZSByYXBs X2dwdV9wb3dlcl9zY2FsZSh2b2lkKQoreworCXJldHVybiBmaWxlbmFtZV90b19kb3VibGUoIi9z eXMvZGV2aWNlcy9wb3dlci9ldmVudHMvZW5lcmd5LWdwdS5zY2FsZSIpOworfQorCitpbnQgcG93 ZXJfaW5pdChzdHJ1Y3QgcG93ZXIgKnBvd2VyKQoreworCXVpbnQ2NF90IHZhbDsKKworCW1lbXNl dChwb3dlciwgMCwgc2l6ZW9mKCpwb3dlcikpOworCisJcG93ZXItPmZkID0gaWd0X3BlcmZfb3Bl bihyYXBsX3R5cGVfaWQoKSwgcmFwbF9ncHVfcG93ZXIoKSk7CisJaWYgKHBvd2VyLT5mZCA+PSAw KSB7CisJCXBvd2VyLT5yYXBsX3NjYWxlID0gcmFwbF9ncHVfcG93ZXJfc2NhbGUoKTsKKworCQlp ZiAocG93ZXItPnJhcGxfc2NhbGUgIT0gTkFOKSB7CisJCQlwb3dlci0+cmFwbF9zY2FsZSAqPSAx ZTM7IC8qIGZyb20gbmFubyB0byBtaWNybyAqLworCQkJcmV0dXJuIDA7CisJCX0KKwl9CisKKwl2 YWwgPSBkZWJ1Z2ZzX2ZpbGVfdG9fdTY0KCJpOTE1X2VuZXJneV91SiIpOworCWlmICh2YWwgPT0g MCkKKwkJcmV0dXJuIHBvd2VyLT5lcnJvciA9IEVJTlZBTDsKIAotCXJldHVybiBzdHJ0b3VsbChi dWYsIDAsIDApOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdWludDY0X3QgY2xvY2tfbXNfdG9f dTY0KHZvaWQpCkBAIC05MywzMCArMTQwLDMwIEBAIHN0YXRpYyB1aW50NjRfdCBjbG9ja19tc190 b191NjQodm9pZCkKIAlpZiAoY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZ0dikgPCAw KQogCQlyZXR1cm4gMDsKIAotCXJldHVybiAodWludDY0X3QpdHYudHZfc2VjICogMTAwMCArIHR2 LnR2X25zZWMgLyAxMDAwMDAwOworCXJldHVybiAodWludDY0X3QpdHYudHZfc2VjICogMWUzICsg dHYudHZfbnNlYyAvIDFlNjsKIH0KIAogaW50IHBvd2VyX3VwZGF0ZShzdHJ1Y3QgcG93ZXIgKnBv d2VyKQogewotCXN0cnVjdCBwb3dlcl9zdGF0ICpzID0gJnBvd2VyLT5zdGF0W3Bvd2VyLT5jb3Vu dCsrJjFdOwotCXN0cnVjdCBwb3dlcl9zdGF0ICpkID0gJnBvd2VyLT5zdGF0W3Bvd2VyLT5jb3Vu dCYxXTsKKwlzdHJ1Y3QgcG93ZXJfc3RhdCAqcyA9ICZwb3dlci0+c3RhdFtwb3dlci0+Y291bnQr KyAmIDFdOworCXN0cnVjdCBwb3dlcl9zdGF0ICpkID0gJnBvd2VyLT5zdGF0W3Bvd2VyLT5jb3Vu dCAmIDFdOwogCXVpbnQ2NF90IGRfdGltZTsKIAogCWlmIChwb3dlci0+ZXJyb3IpCiAJCXJldHVy biBwb3dlci0+ZXJyb3I7CiAKLQlpZiAocG93ZXItPmZkICE9IC0xKSB7CisJaWYgKHBvd2VyLT5m ZCA+PSAwKSB7CiAJCXVpbnQ2NF90IGRhdGFbMl07CiAJCWludCBsZW47CiAKIAkJbGVuID0gcmVh ZChwb3dlci0+ZmQsIGRhdGEsIHNpemVvZihkYXRhKSk7Ci0JCWlmIChsZW4gPCAwKQorCQlpZiAo bGVuICE9IHNpemVvZihkYXRhKSkKIAkJCXJldHVybiBwb3dlci0+ZXJyb3IgPSBlcnJubzsKIAot CQlzLT5lbmVyZ3kgPSBkYXRhWzBdOwotCQlzLT50aW1lc3RhbXAgPSBkYXRhWzFdIC8gKDEwMDAq MTAwMCk7CisJCXMtPmVuZXJneSA9IGxscm91bmQoKGRvdWJsZSlkYXRhWzBdICogcG93ZXItPnJh cGxfc2NhbGUpOworCQlzLT50aW1lc3RhbXAgPSBkYXRhWzFdIC8gMWU2OwogCX0gZWxzZSB7Ci0J CXMtPmVuZXJneSA9IGZpbGVfdG9fdTY0KCJpOTE1X2VuZXJneV91SiIpOworCQlzLT5lbmVyZ3kg PSBkZWJ1Z2ZzX2ZpbGVfdG9fdTY0KCJpOTE1X2VuZXJneV91SiIpIC8gMWUzOwogCQlzLT50aW1l c3RhbXAgPSBjbG9ja19tc190b191NjQoKTsKIAl9CiAKQEAgLTEyNCw3ICsxNzEsOSBAQCBpbnQg cG93ZXJfdXBkYXRlKHN0cnVjdCBwb3dlciAqcG93ZXIpCiAJCXJldHVybiBFQUdBSU47CiAKIAlk X3RpbWUgPSBzLT50aW1lc3RhbXAgLSBkLT50aW1lc3RhbXA7Ci0JcG93ZXItPnBvd2VyX21XID0g KHMtPmVuZXJneSAtIGQtPmVuZXJneSkgLyBkX3RpbWU7CisJcG93ZXItPnBvd2VyX21XID0gcm91 bmQoKGRvdWJsZSkocy0+ZW5lcmd5IC0gZC0+ZW5lcmd5KSAqCisJCQkJKDFlM2YgLyBkX3RpbWUp KTsKIAlwb3dlci0+bmV3X3NhbXBsZSA9IDE7CisKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBh L292ZXJsYXkvcG93ZXIuaCBiL292ZXJsYXkvcG93ZXIuaAppbmRleCBiZjgzNDZjZTQ2YjQuLjI4 YWJmYzMyMjM0YiAxMDA2NDQKLS0tIGEvb3ZlcmxheS9wb3dlci5oCisrKyBiL292ZXJsYXkvcG93 ZXIuaApAQCAtMzksNiArMzksOCBAQCBzdHJ1Y3QgcG93ZXIgewogCWludCBuZXdfc2FtcGxlOwog CiAJdWludDY0X3QgcG93ZXJfbVc7CisKKwlkb3VibGUgcmFwbF9zY2FsZTsKIH07CiAKIGludCBw b3dlcl9pbml0KHN0cnVjdCBwb3dlciAqcG93ZXIpOwotLSAKMi45LjUKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=