From mboxrd@z Thu Jan 1 00:00:00 1970 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 640276EACC for ; Tue, 30 Jan 2018 18:11:15 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id v123so2959715wmd.5 for ; Tue, 30 Jan 2018 10:11:15 -0800 (PST) From: Tvrtko Ursulin Date: Tue, 30 Jan 2018 18:11:04 +0000 Message-Id: <20180130181104.19237-1-tvrtko.ursulin@linux.intel.com> Subject: [igt-dev] [RFC i-g-t] tests/perf_pmu: Verify engine busyness accuracy 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: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Tvrtko Ursulin List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkEgc3VidGVz dCB0byB2ZXJpZnkgdGhhdCB0aGUgZW5naW5lIGJ1c3luZXNzIGlzIHJlcG9ydGVkIHdpdGggZXhw ZWN0ZWQKYWNjdXJhY3kgb24gcGxhdGZvcm1zIHdoZXJlIHRoZSBmZWF0dXJlIGlzIGF2YWlsYWJs ZS4KCldlIHRlc3QgdGhyZWUgcGF0dGVybnM6IDIlLCA1MCUgYW5kIDk4JSBsb2FkIHBlciBlbmdp bmUuCgp2MjoKICogVXNlIHNwaW4gYmF0Y2ggaW5zdGVhZCBvZiBub3AgY2FsaWJyYXRpb24uCiAq IFZhcmlvdXMgdHdlYWtzLgoKdjM6CiAqIENoYW5nZSBsb29wcyB0byBiZSB0aW1lIGJhc2VkLgog KiBVc2UgX19pZ3Rfc3Bpbl9iYXRjaF9uZXcgaW5zaWRlIHRpbWluZyBzZW5zaXRpdmUgbG9vcHMu CiAqIEZpeGVkIFBXTSBzbGVlcCBoYW5kbGluZy4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1 bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogdGVzdHMvcGVyZl9wbXUuYyB8IDE0 NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiAxIGZpbGUgY2hhbmdlZCwgMTQ1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90ZXN0cy9w ZXJmX3BtdS5jIGIvdGVzdHMvcGVyZl9wbXUuYwppbmRleCAyZjdkMzM0MTRhNTMuLmM2MDgzZDcx MDJiZCAxMDA2NDQKLS0tIGEvdGVzdHMvcGVyZl9wbXUuYworKysgYi90ZXN0cy9wZXJmX3BtdS5j CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8ZGlyZW50Lmg+CiAjaW5jbHVkZSA8dGltZS5o PgogI2luY2x1ZGUgPHBvbGwuaD4KKyNpbmNsdWRlIDxzY2hlZC5oPgogCiAjaW5jbHVkZSAiaWd0 LmgiCiAjaW5jbHVkZSAiaWd0X2NvcmUuaCIKQEAgLTExNjksNiArMTE3MCwxNDAgQEAgdGVzdF9y YzYoaW50IGdlbV9mZCkKIAlhc3NlcnRfd2l0aGluX2Vwc2lsb24oYnVzeSAtIHByZXYsIDAuMCwg dG9sZXJhbmNlKTsKIH0KIAorc3RhdGljIHVpbnQ2NF90IF9fcG11X3JlYWRfc2luZ2xlKGludCBm ZCwgdWludDY0X3QgKnRzKQoreworCXVpbnQ2NF90IGRhdGFbMl07CisKKwlpZ3RfYXNzZXJ0X2Vx KHJlYWQoZmQsIGRhdGEsIHNpemVvZihkYXRhKSksIHNpemVvZihkYXRhKSk7CisKKwkqdHMgPSBk YXRhWzFdOworCisJcmV0dXJuIGRhdGFbMF07Cit9CisKK3N0YXRpYyBkb3VibGUgX19lcnJvcihk b3VibGUgdmFsLCBkb3VibGUgcmVmKQoreworCXJldHVybiAoMTAwLjAgKiB2YWwgLyByZWYpIC0g MTAwLjA7Cit9CisKK3N0YXRpYyB2b2lkIGRlYnVnX2Vycm9yKGNvbnN0IGNoYXIgKnN0ciwgZG91 YmxlIHZhbCwgZG91YmxlIHJlZikKK3sKKwlpZ3RfZGVidWcoIiVzPSUuMmYlJSAoJS4yZi8lLjJm KVxuIiwgc3RyLCBfX2Vycm9yKHZhbCwgcmVmKSwgdmFsLCByZWYpOworfQorCitzdGF0aWMgdm9p ZCBsb2dfZXJyb3IoY29uc3QgY2hhciAqc3RyLCBkb3VibGUgdmFsLCBkb3VibGUgcmVmKQorewor CWRlYnVnX2Vycm9yKHN0ciwgdmFsLCByZWYpOworCWlndF9pbmZvKCIlcz0lLjJmJSVcbiIsIHN0 ciwgX19lcnJvcih2YWwsIHJlZikpOworfQorCisjZGVmaW5lIGRpdl9yb3VuZF91cChhLCBiKSAo KChhKSArIChiKSAtIDEpIC8gKGIpKQorCitzdGF0aWMgdm9pZAorYWNjdXJhY3koaW50IGdlbV9m ZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLAorCSB1bnNpZ25lZCBs b25nIHRhcmdldF9idXN5X3BjdCkKK3sKKwljb25zdCB1bnNpZ25lZCBpbnQgdGVzdF91cyA9IDFl NjsKKwljb25zdCB1bnNpZ25lZCBpbnQgcHdtX2NhbGlicmF0aW9uX3VzID0gNTAwZTM7CisJdW5z aWduZWQgbG9uZyBidXN5X3VzID0gMjUwMDsKKwl1bnNpZ25lZCBsb25nIGlkbGVfdXMgPSAxMDAg KiAoYnVzeV91cyAtIHRhcmdldF9idXN5X3BjdCAqCisJCQkJYnVzeV91cyAvIDEwMCkgLyB0YXJn ZXRfYnVzeV9wY3Q7CisJZG91YmxlIGJ1c3lfcjsKKwl1aW50NjRfdCB2YWxbMl07CisJdWludDY0 X3QgdHNbMl07CisJaW50IGZkOworCisJLyogU2FtcGxpbmcgcGxhdGZvcm1zIGNhbm5vdCByZWFj aCB0aGUgaGlnaCBhY2N1cmFjeSBjcml0ZXJpYS4gKi8KKwlpZ3RfcmVxdWlyZShpbnRlbF9nZW4o aW50ZWxfZ2V0X2RybV9kZXZpZChnZW1fZmQpKSA+PSA4KTsKKworCXdoaWxlIChpZGxlX3VzIDwg MjUwMCkgeworCQlidXN5X3VzICo9IDI7CisJCWlkbGVfdXMgKj0gMjsKKwl9CisKKwlhc3NlcnRf d2l0aGluX2Vwc2lsb24oKGRvdWJsZSlidXN5X3VzIC8gKGJ1c3lfdXMgKyBpZGxlX3VzKSwKKwkJ CQkoZG91YmxlKXRhcmdldF9idXN5X3BjdCAvIDEwMC4wLCB0b2xlcmFuY2UpOworCisJLyogRW1p dCBQV00gcGF0dGVybiBvbiB0aGUgZW5naW5lIGZyb20gYSBjaGlsZC4gKi8KKwlpZ3RfZm9yayhj aGlsZCwgMSkgeworCQlzdHJ1Y3Qgc2NoZWRfcGFyYW0gcnQgPSB7IC5zY2hlZF9wcmlvcml0eSA9 IDk5IH07CisJCXN0cnVjdCB0aW1lc3BlYyB0ZXN0X3N0YXJ0ID0geyB9OworCQl1bnNpZ25lZCBs b25nIG92ZXJoZWFkX25zID0gMDsKKwkJdW5zaWduZWQgbG9uZyBsb29wcyA9IDA7CisKKwkJLyog V2UgbmVlZCB0aGUgYmVzdCBzbGVlcCBhY2N1cmFjeSB3ZSBjYW4gZ2V0LiAqLworCQlpZ3RfcmVx dWlyZShzY2hlZF9zZXRzY2hlZHVsZXIoMCwKKwkJCQkJICAgICAgIFNDSEVEX0ZJRk8gfCBTQ0hF RF9SRVNFVF9PTl9GT1JLLAorCQkJCQkgICAgICAgJnJ0KSA9PSAwKTsKKworCQkvKiBNZWFzdXJl IHNldHVwIG92ZXJoZWFkLiAqLworCQlpZ3RfbnNlY19lbGFwc2VkKCZ0ZXN0X3N0YXJ0KTsKKwkJ ZG8geworCQkJc3RydWN0IHRpbWVzcGVjIHN0YXJ0ID0geyB9OworCQkJaWd0X3NwaW5fdCAqc3Bp bjsKKwkJCXVuc2lnbmVkIGludCBuczsKKworCQkJaWd0X25zZWNfZWxhcHNlZCgmc3RhcnQpOwor CQkJc3BpbiA9IF9faWd0X3NwaW5fYmF0Y2hfbmV3KGdlbV9mZCwgMCwKKwkJCQkJCSAgICBlMnJp bmcoZ2VtX2ZkLCBlKSwgMCk7CisJCQlpZ3Rfc3Bpbl9iYXRjaF9lbmQoc3Bpbik7CisJCQlucyA9 IGlndF9uc2VjX2VsYXBzZWQoJnN0YXJ0KTsKKwkJCWdlbV9zeW5jKGdlbV9mZCwgc3Bpbi0+aGFu ZGxlKTsKKwkJCWlndF9zcGluX2JhdGNoX2ZyZWUoZ2VtX2ZkLCBzcGluKTsKKwkJCW92ZXJoZWFk X25zICs9IG5zOworCQkJbG9vcHMrKzsKKwkJCXVzbGVlcCgxMDAwKTsKKwkJfSB3aGlsZSAoaWd0 X25zZWNfZWxhcHNlZCgmdGVzdF9zdGFydCkgPAorCQkJIHB3bV9jYWxpYnJhdGlvbl91cyAqIDEw MDApOworCisJCW92ZXJoZWFkX25zID0gZGl2X3JvdW5kX3VwKG92ZXJoZWFkX25zLCBsb29wcyk7 CisJCWlndF9kZWJ1Zygic3BpbiBzZXR1cCBvdmVyaGVhZCA9ICVsdXVzXG4iLCBvdmVyaGVhZF9u cyAvIDEwMDApOworCQlpZ3RfYXNzZXJ0KG92ZXJoZWFkX25zIDwgYnVzeV91cyAqIDEwMDApOwor CisJCS8qIEVtaXQgUFdNIGJ1c3kgc2lnbmFsLiAqLworCQlidXN5X3VzIC09IG92ZXJoZWFkX25z IC8gMTAwMDsKKwkJbWVtc2V0KCZ0ZXN0X3N0YXJ0LCAwLCBzaXplb2YodGVzdF9zdGFydCkpOwor CQlpZ3RfbnNlY19lbGFwc2VkKCZ0ZXN0X3N0YXJ0KTsKKwkJZG8geworCQkJc3RydWN0IHRpbWVz cGVjIHN0YXJ0ID0geyB9OworCQkJaWd0X3NwaW5fdCAqc3BpbjsKKwkJCXVuc2lnbmVkIGludCBu cywgc2xlZXA7CisKKwkJCXNwaW4gPSBfX2lndF9zcGluX2JhdGNoX25ldyhnZW1fZmQsIDAsCisJ CQkJCQkgICAgZTJyaW5nKGdlbV9mZCwgZSksIDApOworCQkJbnMgPSBtZWFzdXJlZF91c2xlZXAo YnVzeV91cyk7CisJCQlpZ3Rfc3Bpbl9iYXRjaF9lbmQoc3Bpbik7CisJCQlkZWJ1Z19lcnJvcigi YnVzeSBzbGVlcCBlcnJvciIsIG5zLCBidXN5X3VzICogMTAwMCk7CisJCQlnZW1fc3luYyhnZW1f ZmQsIHNwaW4tPmhhbmRsZSk7CisJCQlpZ3RfbnNlY19lbGFwc2VkKCZzdGFydCk7CisJCQlpZ3Rf c3Bpbl9iYXRjaF9mcmVlKGdlbV9mZCwgc3Bpbik7CisJCQlucyA9IGlndF9uc2VjX2VsYXBzZWQo JnN0YXJ0KTsKKwkJCWlndF9hc3NlcnRfbHQobnMsIGlkbGVfdXMgKiAxMDAwKTsKKwkJCXNsZWVw ID0gaWRsZV91cyAqIDEwMDAgLSBuczsKKwkJCW5zID0gbWVhc3VyZWRfdXNsZWVwKHNsZWVwIC8g MTAwMCk7CisJCQlkZWJ1Z19lcnJvcigiaWRsZSBzbGVlcCBlcnJvciIsIG5zLCBzbGVlcCk7CisJ CX0gd2hpbGUgKGlndF9uc2VjX2VsYXBzZWQoJnRlc3Rfc3RhcnQpIDwgdGVzdF91cyAqIDIgKiAx MDAwKTsKKwl9CisKKwkvKiBMZXQgdGhlIGNoaWxkIHJ1bi4gKi8KKwl1c2xlZXAocHdtX2NhbGli cmF0aW9uX3VzICogMik7CisKKwkvKiBDb2xsZWN0IGVuZ2luZSBidXN5bmVzcyBmb3IgYSBzdWJz ZXQgb2YgY2hpbGQgcnVudGltZS4gKi8KKwlmZCA9IG9wZW5fcG11KEk5MTVfUE1VX0VOR0lORV9C VVNZKGUtPmNsYXNzLCBlLT5pbnN0YW5jZSkpOworCXZhbFswXSA9IF9fcG11X3JlYWRfc2luZ2xl KGZkLCAmdHNbMF0pOworCXVzbGVlcCh0ZXN0X3VzIC8gMik7CisJdmFsWzFdID0gX19wbXVfcmVh ZF9zaW5nbGUoZmQsICZ0c1sxXSk7CisJY2xvc2UoZmQpOworCisJaWd0X3dhaXRjaGlsZHJlbigp OworCisJYnVzeV9yID0gKGRvdWJsZSkodmFsWzFdIC0gdmFsWzBdKSAvICh0c1sxXSAtIHRzWzBd KTsKKworCWxvZ19lcnJvcigiZXJyb3IiLCBidXN5X3IsIHRhcmdldF9idXN5X3BjdCAvIDEwMC4w KTsKKworCWFzc2VydF93aXRoaW5fZXBzaWxvbihidXN5X3IsIChkb3VibGUpdGFyZ2V0X2J1c3lf cGN0IC8gMTAwLjAsIDAuMTUpOworfQorCiBpZ3RfbWFpbgogewogCWNvbnN0IHVuc2lnbmVkIGlu dCBudW1fb3RoZXJfbWV0cmljcyA9CkBAIC0xMTk3LDYgKzEzMzIsOCBAQCBpZ3RfbWFpbgogCQlp bnZhbGlkX2luaXQoKTsKIAogCWZvcl9lYWNoX2VuZ2luZV9jbGFzc19pbnN0YW5jZShmZCwgZSkg eworCQljb25zdCB1bnNpZ25lZCBpbnQgcGN0W10gPSB7IDIsIDUwLCA5OCB9OworCiAJCS8qKgog CQkgKiBUZXN0IHRoYXQgYSBzaW5nbGUgZW5naW5lIG1ldHJpYyBjYW4gYmUgaW5pdGlhbGl6ZWQu CiAJCSAqLwpAQCAtMTI3Nyw2ICsxNDE0LDE0IEBAIGlndF9tYWluCiAJCSAqLwogCQlpZ3Rfc3Vi dGVzdF9mKCJidXN5LWRvdWJsZS1zdGFydC0lcyIsIGUtPm5hbWUpCiAJCQlidXN5X2RvdWJsZV9z dGFydChmZCwgZSk7CisKKwkJLyoqCisJCSAqIENoZWNrIGVuZ2luZSBidXN5bmVzcyBhY2N1cmFj eSBpcyBhcyBleHBlY3RlZC4KKwkJICovCisJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBj dCk7IGkrKykgeworCQkJaWd0X3N1YnRlc3RfZigiYnVzeS1hY2N1cmFjeS0ldS0lcyIsIHBjdFtp XSwgZS0+bmFtZSkKKwkJCQlhY2N1cmFjeShmZCwgZSwgcGN0W2ldKTsKKwkJfQogCX0KIAogCS8q KgotLSAKMi4xNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK