From mboxrd@z Thu Jan 1 00:00:00 1970 From: sourab.gupta@intel.com Subject: [RFC 4/7] drm/i915: Add mechanism for forwarding the data samples to userspace through Gen PMU perf interface Date: Mon, 22 Jun 2015 15:25:06 +0530 Message-ID: <1434966909-4113-5-git-send-email-sourab.gupta@intel.com> References: <1434966909-4113-1-git-send-email-sourab.gupta@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 473486E5DD for ; Mon, 22 Jun 2015 02:53:22 -0700 (PDT) In-Reply-To: <1434966909-4113-1-git-send-email-sourab.gupta@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 Cc: Insoo Woo , Peter Zijlstra , Jabin Wu , Sourab Gupta List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgoKVGhpcyBwYXRjaCBh ZGRzIHRoZSBtZWNoYW5pc20gZm9yIGZvcndhcmRpbmcgdGhlIGRhdGEgc25hcHNob3RzCnRocm91 Z2ggdGhlIEdlbiBQTVUgcGVyZiBldmVudCBpbnRlcmZhY2UuCkluIHRoaXMgcGFydGljdWxhciBj YXNlLCB0aGUgZGF0YSB0eXBlIG9mIHRpbWVzdGFtcCBkYXRhIG5vZGUgaW50cm9kdWNlZAplYXJs aWVyIGlzIGJlaW5nIGZvcndhcmRlZCB0aHJvdWdoIHRoZSBpbnRlcmZhY2UuCgpUaGUgc2FtcGxl cyB3aWxsIGJlIGZvcndhcmRlZCBpbiBhIHdvcmtxdWV1ZSwgd2hpY2ggaXMgc2NoZWR1bGVkIHdo ZW4gaHJ0aW1lcgp0cmlnZ2Vycy4gSW4gdGhlIHdvcmtxdWV1ZSwgZWFjaCBub2RlIG9mIGRhdGEg Y29sbGVjdGVkIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGEKc2VwYXJhdGUgcGVyZiBzYW1wbGUuCgpT aWduZWQtb2ZmLWJ5OiBTb3VyYWIgR3VwdGEgPHNvdXJhYi5ndXB0YUBpbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9vYV9wZXJmLmMgfCAxMjUgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGI2YTg5N2EuLjI1YzA5MzggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjAyMSw2ICsyMDIxLDcgQEAgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgewogCQkJdTMyIGhlYWQ7CiAJCQl1MzIgdGFpbDsKIAkJfSBidWZmZXI7CisJCXN0 cnVjdCB3b3JrX3N0cnVjdCB3b3JrX3RpbWVyOwogCX0gZ2VuX3BtdTsKIAogCXN0cnVjdCBsaXN0 X2hlYWQgcHJvZmlsZV9jbWQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X29hX3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jCmluZGV4IGUy MDQyYjYuLmUzZTg2N2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ff cGVyZi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jCkBAIC0yMjQs MTEgKzIyNCwxMjEgQEAgdm9pZCBmb3J3YXJkX29hX2FzeW5jX3NuYXBzaG90c193b3JrKHN0cnVj dCB3b3JrX3N0cnVjdCAqX193b3JrKQogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRldi0+c3Ry dWN0X211dGV4KTsKIH0KIAorc3RhdGljIHZvaWQgaW5pdF9nZW5fcG11X2J1Zl9xdWV1ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RydWN0IGRybV9pOTE1X3RzX3F1 ZXVlX2hlYWRlciAqaGRyID0KKwkJKHN0cnVjdCBkcm1faTkxNV90c19xdWV1ZV9oZWFkZXIgKikK KwkJZGV2X3ByaXYtPmdlbl9wbXUuYnVmZmVyLmFkZHI7CisJdm9pZCAqZGF0YV9wdHI7CisKKwlo ZHItPnNpemVfaW5fYnl0ZXMgPSBkZXZfcHJpdi0+Z2VuX3BtdS5idWZmZXIub2JqLT5iYXNlLnNp emU7CisJLyogOCBieXRlIGFsaWdubWVudCBmb3Igbm9kZSBhZGRyZXNzICovCisJZGF0YV9wdHIg PSBQVFJfQUxJR04oKHZvaWQgKikoaGRyICsgMSksIDgpOworCWhkci0+ZGF0YV9vZmZzZXQgPSAo X191NjQpKGRhdGFfcHRyIC0gKHZvaWQgKiloZHIpOworCisJaGRyLT5ub2RlX2NvdW50ID0gMDsK KwloZHItPndyYXBfY291bnQgPSAwOworfQorCitzdGF0aWMgdm9pZCBmb3J3YXJkX29uZV9nZW5f cG11X3NhbXBsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJc3RydWN0 IGRybV9pOTE1X3RzX25vZGUgKm5vZGUpCit7CisJc3RydWN0IHBlcmZfc2FtcGxlX2RhdGEgZGF0 YTsKKwlzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQgPSBkZXZfcHJpdi0+Z2VuX3BtdS5leGNsdXNp dmVfZXZlbnQ7CisJaW50IHNuYXBzaG90X3NpemUgPSBzaXplb2Yoc3RydWN0IGRybV9pOTE1X3Rz X3VzZXJub2RlKTsKKwlzdHJ1Y3QgcGVyZl9yYXdfcmVjb3JkIHJhdzsKKworCXBlcmZfc2FtcGxl X2RhdGFfaW5pdCgmZGF0YSwgMCwgZXZlbnQtPmh3Lmxhc3RfcGVyaW9kKTsKKworCS8qIE5vdGU6 IHRoZSBjb21iaW5lZCB1MzIgcmF3LT5zaXplIG1lbWJlciArIHJhdyBkYXRhIGl0c2VsZiBtdXN0 IGJlIDgKKwkgKiBieXRlIGFsaWduZWQuKi8KKwlyYXcuc2l6ZSA9IHNuYXBzaG90X3NpemUgKyA0 OworCXJhdy5kYXRhID0gbm9kZTsKKworCWRhdGEucmF3ID0gJnJhdzsKKworCXBlcmZfZXZlbnRf b3ZlcmZsb3coZXZlbnQsICZkYXRhLCAmZGV2X3ByaXYtPmdlbl9wbXUuZHVtbXlfcmVncyk7Cit9 CisKK3ZvaWQgaTkxNV9nZW5fcG11X3dhaXRfZ3B1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfdHNfcXVldWVfaGVhZGVyICpoZHIgPQorCQko c3RydWN0IGRybV9pOTE1X3RzX3F1ZXVlX2hlYWRlciAqKQorCQlkZXZfcHJpdi0+Z2VuX3BtdS5i dWZmZXIuYWRkcjsKKwlzdHJ1Y3QgZHJtX2k5MTVfdHNfbm9kZSAqZmlyc3Rfbm9kZSwgKm5vZGU7 CisJaW50IGhlYWQsIHRhaWwsIG51bV9ub2RlcywgcmV0OworCXN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxOworCisJZmlyc3Rfbm9kZSA9IChzdHJ1Y3QgZHJtX2k5MTVfdHNfbm9kZSAq KQorCQkJKChjaGFyICopaGRyICsgaGRyLT5kYXRhX29mZnNldCk7CisJbnVtX25vZGVzID0gKGhk ci0+c2l6ZV9pbl9ieXRlcyAtIGhkci0+ZGF0YV9vZmZzZXQpIC8KKwkJCXNpemVvZigqbm9kZSk7 CisKKwl0YWlsID0gaGRyLT5ub2RlX2NvdW50OworCWhlYWQgPSBkZXZfcHJpdi0+Z2VuX3BtdS5i dWZmZXIuaGVhZDsKKworCS8qIHdhaXQgZm9yIGFsbCByZXF1ZXN0cyB0byBjb21wbGV0ZSovCisJ d2hpbGUgKChoZWFkICUgbnVtX25vZGVzKSAhPSAodGFpbCAlIG51bV9ub2RlcykpIHsKKwkJbm9k ZSA9ICZmaXJzdF9ub2RlW2hlYWQgJSBudW1fbm9kZXNdOworCQlyZXEgPSBub2RlLT5ub2RlX2lu Zm8ucmVxOworCQlpZiAocmVxKSB7CisJCQlpZiAoIWk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVk KHJlcSwgdHJ1ZSkpIHsKKwkJCQlyZXQgPSBpOTE1X3dhaXRfcmVxdWVzdChyZXEpOworCQkJCWlm IChyZXQpCisJCQkJCURSTV9ERUJVR19EUklWRVIoCisJCQkJCSJnZW4gcG11OiBmYWlsZWQgdG8g d2FpdFxuIik7CisJCQl9CisJCQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmbm9kZS0+bm9kZV9p bmZvLnJlcSwgTlVMTCk7CisJCX0KKwkJaGVhZCsrOworCX0KK30KKwordm9pZCBmb3J3YXJkX2dl bl9wbXVfc25hcHNob3RzX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCit7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KKwkJY29udGFpbmVyX29mKF9fd29yaywg dHlwZW9mKCpkZXZfcHJpdiksCisJCQkgICAgIGdlbl9wbXUud29ya190aW1lcik7CisJc3RydWN0 IGRybV9pOTE1X3RzX3F1ZXVlX2hlYWRlciAqaGRyID0KKwkJKHN0cnVjdCBkcm1faTkxNV90c19x dWV1ZV9oZWFkZXIgKikKKwkJZGV2X3ByaXYtPmdlbl9wbXUuYnVmZmVyLmFkZHI7CisJc3RydWN0 IGRybV9pOTE1X3RzX25vZGUgKmZpcnN0X25vZGUsICpub2RlOworCWludCBoZWFkLCB0YWlsLCBu dW1fbm9kZXMsIHJldDsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKKworCWZp cnN0X25vZGUgPSAoc3RydWN0IGRybV9pOTE1X3RzX25vZGUgKikKKwkJCSgoY2hhciAqKWhkciAr IGhkci0+ZGF0YV9vZmZzZXQpOworCW51bV9ub2RlcyA9IChoZHItPnNpemVfaW5fYnl0ZXMgLSBo ZHItPmRhdGFfb2Zmc2V0KSAvCisJCQlzaXplb2YoKm5vZGUpOworCisJcmV0ID0gaTkxNV9tdXRl eF9sb2NrX2ludGVycnVwdGlibGUoZGV2X3ByaXYtPmRldik7CisJaWYgKHJldCkKKwkJcmV0dXJu OworCisJdGFpbCA9IGhkci0+bm9kZV9jb3VudDsKKwloZWFkID0gZGV2X3ByaXYtPmdlbl9wbXUu YnVmZmVyLmhlYWQ7CisKKwl3aGlsZSAoKGhlYWQgJSBudW1fbm9kZXMpICE9ICh0YWlsICUgbnVt X25vZGVzKSkgeworCQlub2RlID0gJmZpcnN0X25vZGVbaGVhZCAlIG51bV9ub2Rlc107CisJCXJl cSA9IG5vZGUtPm5vZGVfaW5mby5yZXE7CisJCWlmIChyZXEgJiYgaTkxNV9nZW1fcmVxdWVzdF9j b21wbGV0ZWQocmVxLCB0cnVlKSkgeworCQkJZm9yd2FyZF9vbmVfZ2VuX3BtdV9zYW1wbGUoZGV2 X3ByaXYsIG5vZGUpOworCQkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJm5vZGUtPm5vZGVfaW5m by5yZXEsIE5VTEwpOworCQkJaGVhZCsrOworCQl9IGVsc2UKKwkJCWJyZWFrOworCX0KKworCWRl dl9wcml2LT5nZW5fcG11LmJ1ZmZlci50YWlsID0gdGFpbDsKKwlkZXZfcHJpdi0+Z2VuX3BtdS5i dWZmZXIuaGVhZCA9IGhlYWQ7CisKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5kZXYtPnN0cnVj dF9tdXRleCk7Cit9CisKIHN0YXRpYyB2b2lkIGdlbl9wbXVfZmx1c2hfc25hcHNob3RzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlXQVJOX09OKCFkZXZfcHJpdi0+Z2Vu X3BtdS5idWZmZXIuYWRkcik7Ci0KLQkvKiBUT0RPOiByb3V0aW5lIGZvciBmb3J3YXJkaW5nIHNu YXBzaG90cyB0byB1c2Vyc3BhY2UgKi8KKwlzY2hlZHVsZV93b3JrKCZkZXZfcHJpdi0+Z2VuX3Bt dS53b3JrX3RpbWVyKTsKIH0KIAogc3RhdGljIHZvaWQgZm9yd2FyZF9vbmVfb2Ffc25hcHNob3Rf dG9fZXZlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtNjUyLDYgKzc2 Miw3IEBAIHN0YXRpYyBpbnQgaW5pdF9nZW5fcG11X2J1ZmZlcihzdHJ1Y3QgcGVyZl9ldmVudCAq ZXZlbnQpCiAJZGV2X3ByaXYtPmdlbl9wbXUuYnVmZmVyLm9iaiA9IGJvOwogCiAJZGV2X3ByaXYt Pmdlbl9wbXUuYnVmZmVyLmFkZHIgPSB2bWFwX29hX2J1ZmZlcihibyk7CisJaW5pdF9nZW5fcG11 X2J1Zl9xdWV1ZShkZXZfcHJpdik7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJHZW4gUE1VIEJ1ZmZl ciBpbml0aWFsaXplZCwgdmFkZHIgPSAlcCIsCiAJCQkgZGV2X3ByaXYtPmdlbl9wbXUuYnVmZmVy LmFkZHIpOwpAQCAtMTMyNyw2ICsxNDM4LDEzIEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VuX2V2ZW50 X2ZsdXNoKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSA9CiAJCWNvbnRhaW5lcl9vZihldmVudC0+cG11LCB0eXBlb2YoKmk5MTUpLCBn ZW5fcG11LnBtdSk7CisJaW50IHJldDsKKworCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1 cHRpYmxlKGk5MTUtPmRldik7CisJaWYgKHJldCkKKwkJcmV0dXJuOworCWk5MTVfZ2VuX3BtdV93 YWl0X2dwdShpOTE1KTsKKwltdXRleF91bmxvY2soJmk5MTUtPmRldi0+c3RydWN0X211dGV4KTsK IAogCWdlbl9wbXVfZmx1c2hfc25hcHNob3RzKGk5MTUpOwogfQpAQCAtMTQ3Niw2ICsxNTk0LDcg QEAgdm9pZCBpOTE1X2dlbl9wbXVfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlo cnRpbWVyX2luaXQoJmk5MTUtPmdlbl9wbXUudGltZXIsIENMT0NLX01PTk9UT05JQywgSFJUSU1F Ul9NT0RFX1JFTCk7CiAJaTkxNS0+Z2VuX3BtdS50aW1lci5mdW5jdGlvbiA9IGhydGltZXJfc2Ft cGxlX2dlbjsKIAorCUlOSVRfV09SSygmaTkxNS0+Z2VuX3BtdS53b3JrX3RpbWVyLCBmb3J3YXJk X2dlbl9wbXVfc25hcHNob3RzX3dvcmspOwogCXNwaW5fbG9ja19pbml0KCZpOTE1LT5nZW5fcG11 LmxvY2spOwogCiAJaTkxNS0+Z2VuX3BtdS5wbXUuY2FwYWJpbGl0aWVzICA9IFBFUkZfUE1VX0NB UF9JU19ERVZJQ0U7CkBAIC0xNTA1LDYgKzE2MjQsOCBAQCB2b2lkIGk5MTVfZ2VuX3BtdV91bnJl Z2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKGk5MTUtPmdlbl9wbXUucG11LmV2 ZW50X2luaXQgPT0gTlVMTCkKIAkJcmV0dXJuOwogCisJY2FuY2VsX3dvcmtfc3luYygmaTkxNS0+ Z2VuX3BtdS53b3JrX3RpbWVyKTsKKwogCXBlcmZfcG11X3VucmVnaXN0ZXIoJmk5MTUtPmdlbl9w bXUucG11KTsKIAlpOTE1LT5nZW5fcG11LnBtdS5ldmVudF9pbml0ID0gTlVMTDsKIH0KLS0gCjEu OC41LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==