From mboxrd@z Thu Jan 1 00:00:00 1970 From: akash.goel@intel.com Subject: [RFC 10/12] drm/i915: Support to capture GuC logs by multiple clients via device file iface Date: Sat, 28 May 2016 01:13:01 +0530 Message-ID: <1464378183-9433-11-git-send-email-akash.goel@intel.com> References: <1464378183-9433-1-git-send-email-akash.goel@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 751656ED13 for ; Fri, 27 May 2016 19:30:15 +0000 (UTC) In-Reply-To: <1464378183-9433-1-git-send-email-akash.goel@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: sourab.gupta@intel.com, Akash Goel List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQWthc2ggR29lbCA8YWthc2guZ29lbEBpbnRlbC5jb20+CgpUaGlzIHBhdGNoIGFkZHMg c3VwcG9ydCBmb3IgbXVsdGlwbGUgY2xpZW50cyB0byBjYXB0dXJlIEd1QyBsb2dzIHZpYQonL2Rl di9kcmkvZ3VjX2xvZycgaW50ZXJmYWNlIGF0IHRoZSBzYW1lIHRpbWUuClRoZSBpbXBsZW1lbnRh dGlvbiBpcyBkb25lIG9uIHRoZSBsaW5lcyBvZiAnL2Rldi9rbXNnJywgc28gcHJvdmlkZXMgYQpz dHJlYW1pbmcgYmVoYXZpb3IsIG9uIGlzc3VpbmcgdGhlICdjYXQnIGNvbW1hbmQgVXNlciB3aWxs IGVudGVyIGludG8gYQpyZWFkIGxvb3AgYW5kIHdpbGwgaGF2ZSB0byBkbyAnQ1RSTCtDJyB0eXBl IGFjdGlvbiB0byBjb21lIG91dCBvZiB0aGUgbG9vcC4KClNpZ25lZC1vZmYtYnk6IEFrYXNoIEdv ZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3VjX3N1Ym1pc3Npb24uYyB8IDEyNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggICAgICAgICAgIHwgICA5ICsrKwogMiBmaWxl cyBjaGFuZ2VkLCAxMzIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwppbmRleCA4YTc5YjZkLi5mMjBlMzUyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC05ODgsMTEg Kzk4OCw0MCBAQCBzdGF0aWMgdm9pZCBndWNfY3JlYXRlX2xvZ19yZWxheV9maWxlKHN0cnVjdCBp bnRlbF9ndWMgKmd1YykKIHN0YXRpYyBzc2l6ZV90IGd1Y19sb2dfcmVhZChzdHJ1Y3QgZmlsZSAq ZmlsZSwgY2hhciBfX3VzZXIgKmJ1ZiwKIAkJCSAgIHNpemVfdCBsZW4sIGxvZmZfdCAqcG9zKQog ewotCXJldHVybiAwOworCXN0cnVjdCBpbnRlbF9ndWNfbG9nX2NsaWVudCAqbG9nX2NsaWVudCA9 IGZpbGUtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWM7CisJc3NpemVfdCBy ZXQ7CisKKwlpZiAoIWxvZ19jbGllbnQpCisJCXJldHVybiAtRUJBREY7CisKKwlndWMgPSBsb2df Y2xpZW50LT5ndWM7CisKKwkvKiBDYW4ndCBwcm92aWRlIG1vcmUgdGhhbiBzY3JhdGNoIGJ1ZiBz aXplICovCisJbGVuID0gbWluKFBBR0VfU0laRSwgbGVuKTsKKworCXNwaW5fbG9ja19pcnEoJmd1 Yy0+bG9nLmJ1Zl9sb2NrKTsKKwlyZXQgPSBpOTE1X2d1Y19yZWFkX2xvZ3MobG9nX2NsaWVudCwg bGVuLCBmaWxlLT5mX2ZsYWdzKTsKKwlzcGluX3VubG9ja19pcnEoJmd1Yy0+bG9nLmJ1Zl9sb2Nr KTsKKworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJaWYgKGNvcHlfdG9fdXNlcihi dWYsIGxvZ19jbGllbnQtPnNjcmF0Y2hfYnVmLCByZXQpKQorCQlyZXR1cm4gLUVGQVVMVDsKKwor CXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgZ3VjX2xvZ19yZWxlYXNlKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCXN0cnVjdCBpbnRlbF9ndWNfbG9nX2Ns aWVudCAqbG9nX2NsaWVudCA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKworCWlmICghbG9nX2NsaWVu dCkKKwkJcmV0dXJuIDA7CisKKwlrZnJlZShsb2dfY2xpZW50LT5zY3JhdGNoX2J1Zik7CisJa2Zy ZWUobG9nX2NsaWVudCk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEwMDMsNiArMTAzMiwyNiBAQCBz dGF0aWMgaW50IGd1Y19sb2dfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAq ZmlsZSkKIAkJY29udGFpbmVyX29mKG1pc2NkZXYsIHN0cnVjdCBpbnRlbF9ndWNfbG9nLCBtaXNj X2Rldik7CiAJc3RydWN0IGludGVsX2d1YyAqZ3VjID0KIAkJY29udGFpbmVyX29mKGd1Y19sb2cs IHN0cnVjdCBpbnRlbF9ndWMsIGxvZyk7CisJc3RydWN0IGludGVsX2d1Y19sb2dfY2xpZW50ICps b2dfY2xpZW50OworCisJbG9nX2NsaWVudCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBpbnRlbF9n dWNfbG9nX2NsaWVudCksIEdGUF9LRVJORUwpOworCWlmICghbG9nX2NsaWVudCkKKwkJcmV0dXJu IC1FTk9NRU07CisKKwkvKiBUT0RPLCBkZWNpZGUgYXB0IHNpemUgZm9yIHNjcmF0Y2hfYnVmIChh bmQgYWxsb2NhdGUgYXMgYSBHRU0gb2JqKSAqLworCWxvZ19jbGllbnQtPnNjcmF0Y2hfYnVmID0g a21hbGxvYyhQQUdFX1NJWkUsIEdGUF9LRVJORUwpOworCWlmICghbG9nX2NsaWVudC0+c2NyYXRj aF9idWYpIHsKKwkJa2ZyZWUobG9nX2NsaWVudCk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwor CWxvZ19jbGllbnQtPmd1YyA9IGd1YzsKKworCXNwaW5fbG9jaygmZ3VjLT5sb2cuYnVmX2xvY2sp OworCWxvZ19jbGllbnQtPnJlYWRfc2VxID0gZ3VjLT5sb2cuZmlyc3Rfc2VxOworCXNwaW5fdW5s b2NrKCZndWMtPmxvZy5idWZfbG9jayk7CisKKwlmaWxlLT5wcml2YXRlX2RhdGEgPSBsb2dfY2xp ZW50OwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMzY1LDMgKzE0MTQsNzYgQEAgdm9pZCBpOTE1X2d1 Y19jYXB0dXJlX2xvZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoaG9zdDJndWNfYWN0 aW9uKGd1YywgZGF0YSwgMSkpCiAJCURSTV9FUlJPUigiRmFpbGVkXG4iKTsKIH0KKworc3NpemVf dCBpOTE1X2d1Y19yZWFkX2xvZ3Moc3RydWN0IGludGVsX2d1Y19sb2dfY2xpZW50ICpsb2dfY2xp ZW50LAorCQkJICAgc2l6ZV90IGNvdW50LCB1aW50MzJfdCBmX2ZsYWdzKQoreworCXN0cnVjdCBp bnRlbF9ndWMgKmd1YyA9IGxvZ19jbGllbnQtPmd1YzsKKwljaGFyICpidWYgPSBsb2dfY2xpZW50 LT5zY3JhdGNoX2J1ZjsKKwl2b2lkICpsb2dfYnVmX2Jhc2UsICpsb2dfYnVmX2VuZCwgKmxvZ19i dWZfcmVhZCwgKmxvZ19idWZfd3JpdGU7CisJdWludDMyX3QgcmVhZF9pbmRleCwgbmV4dF9pbmRl eDsKKwlzaXplX3Qgbl9zdWJidWZzLCBzdWJidWZfc2l6ZTsKKwlzc2l6ZV90IHJldF9jb3VudCA9 IDA7CisJaW50IHJldCA9IDA7CisKKwlhc3NlcnRfc3Bpbl9sb2NrZWQoJmd1Yy0+bG9nLmJ1Zl9s b2NrKTsKKworCXN1YmJ1Zl9zaXplID0gZ3VjLT5sb2dfb2JqLT5iYXNlLnNpemU7CisJbl9zdWJi dWZzID0gZ3VjLT5sb2cuYnVmX29iai0+YmFzZS5zaXplIC8gc3ViYnVmX3NpemU7CisKKwkvKiBX YWl0IGlmIHRoZXJlIGlzIG5vIGRhdGEgdG8gcmVhZCAqLworCXdoaWxlIChsb2dfY2xpZW50LT5y ZWFkX3NlcSA9PSBndWMtPmxvZy5uZXh0X3NlcSkgeworCQlpZiAoZl9mbGFncyAmIE9fTk9OQkxP Q0spCisJCQlyZXR1cm4gLUVBR0FJTjsKKworCQlyZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGli bGVfbG9ja19pcnEoZ3VjLT5sb2cud3EsCisJCQkJbG9nX2NsaWVudC0+cmVhZF9zZXEgIT0gZ3Vj LT5sb2cubmV4dF9zZXEsCisJCQkJZ3VjLT5sb2cuYnVmX2xvY2spOworCQlpZiAocmV0KQorCQkJ cmV0dXJuIHJldDsKKwl9CisKKwkvKiBDaGVjayBpZiBvdXIgbGFzdCBzZWVuIGRhdGEgaXMgZ29u ZSAqLworCWlmIChsb2dfY2xpZW50LT5yZWFkX3NlcSA8IGd1Yy0+bG9nLmZpcnN0X3NlcSkgewor CQlsb2dfY2xpZW50LT5yZWFkX3NlcSA9IGd1Yy0+bG9nLmZpcnN0X3NlcTsKKwkJbG9nX2NsaWVu dC0+cmVhZF9vZmZzZXQgPSAwOworCX0KKworCXJlYWRfaW5kZXggPSBsb2dfY2xpZW50LT5yZWFk X3NlcSAmIChuX3N1YmJ1ZnMgLSAxKTsKKwluZXh0X2luZGV4ID0gZ3VjLT5sb2cubmV4dF9zZXEg JiAobl9zdWJidWZzIC0gMSk7CisKKwlsb2dfYnVmX2Jhc2UgPSBndWMtPmxvZy5idWZfb2JqLT5t YXBwaW5nOworCWxvZ19idWZfZW5kID0gbG9nX2J1Zl9iYXNlICsgZ3VjLT5sb2cuYnVmX29iai0+ YmFzZS5zaXplOworCWxvZ19idWZfd3JpdGUgPSBsb2dfYnVmX2Jhc2UgKyBuZXh0X2luZGV4ICog c3ViYnVmX3NpemU7CisJbG9nX2J1Zl9yZWFkID0gbG9nX2J1Zl9iYXNlICsgcmVhZF9pbmRleCAq IHN1YmJ1Zl9zaXplICsKKwkJCQlsb2dfY2xpZW50LT5yZWFkX29mZnNldDsKKworCWlmIChsb2df YnVmX3JlYWQgPCBsb2dfYnVmX3dyaXRlKSB7CisJCXJldF9jb3VudCA9CisJCQltaW5fdChzaXpl X3QsIGNvdW50LCAobG9nX2J1Zl93cml0ZSAtIGxvZ19idWZfcmVhZCkpOworCQltZW1jcHkoYnVm LCBsb2dfYnVmX3JlYWQsIHJldF9jb3VudCk7CisJfSBlbHNlIHsKKwkJc3NpemVfdCByZXRfY291 bnQxLCByZXRfY291bnQyID0gMDsKKwkJcmV0X2NvdW50MSA9CisJCQltaW5fdChzaXplX3QsIGNv dW50LCAobG9nX2J1Zl9lbmQgLSBsb2dfYnVmX3JlYWQpKTsKKwkJbWVtY3B5KGJ1ZiwgbG9nX2J1 Zl9yZWFkLCByZXRfY291bnQxKTsKKwkJaWYgKGNvdW50ID4gcmV0X2NvdW50MSkgeworCQkJY291 bnQgLT0gcmV0X2NvdW50MTsKKwkJCWJ1ZiArPSByZXRfY291bnQxOworCQkJcmV0X2NvdW50MiA9 CisJCQkgIG1pbl90KHNpemVfdCwgY291bnQsIChsb2dfYnVmX3dyaXRlIC0gbG9nX2J1Zl9iYXNl KSk7CisJCQltZW1jcHkoYnVmLCBsb2dfYnVmX2Jhc2UsIHJldF9jb3VudDIpOworCQl9CisJCXJl dF9jb3VudCA9IHJldF9jb3VudDEgKyByZXRfY291bnQyOworCX0KKworCWxvZ19jbGllbnQtPnJl YWRfb2Zmc2V0ICs9IHJldF9jb3VudDsKKwlpZiAobG9nX2NsaWVudC0+cmVhZF9vZmZzZXQgPj0g c3ViYnVmX3NpemUpIHsKKwkJbG9nX2NsaWVudC0+cmVhZF9zZXEgKz0gbG9nX2NsaWVudC0+cmVh ZF9vZmZzZXQgLyBzdWJidWZfc2l6ZTsKKwkJbG9nX2NsaWVudC0+cmVhZF9vZmZzZXQgJT0gc3Vi YnVmX3NpemU7CisJfQorCisJV0FSTl9PTihsb2dfY2xpZW50LT5yZWFkX3NlcSA+IGd1Yy0+bG9n Lm5leHRfc2VxKTsKKworCXJldHVybiByZXRfY291bnQ7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Yy5oCmluZGV4IDEzODEwZDAuLjk4NWZiNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCkBA IC0xMjEsNiArMTIxLDEzIEBAIHN0cnVjdCBpbnRlbF9ndWNfZncgewogCXVpbnQzMl90IHVjb2Rl X29mZnNldDsKIH07CiAKK3N0cnVjdCBpbnRlbF9ndWNfbG9nX2NsaWVudCB7CisJdWludDY0X3Qg cmVhZF9zZXE7CisJdWludDMyX3QgcmVhZF9vZmZzZXQ7CisJY2hhciAqc2NyYXRjaF9idWY7CisJ c3RydWN0IGludGVsX2d1YyAqZ3VjOworfTsKKwogc3RydWN0IGludGVsX2d1Y19sb2cgewogCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpidWZfb2JqOwogCXNwaW5sb2NrX3QgYnVmX2xvY2s7 CkBAIC0xODAsNSArMTg3LDcgQEAgaW50IGk5MTVfZ3VjX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJxKTsKIHZvaWQgaTkxNV9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBpOTE1X2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGk5MTVfZ3VjX2NhcHR1cmVfbG9ncyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKK3NzaXplX3QgaTkxNV9ndWNfcmVhZF9sb2dzKHN0cnVjdCBpbnRlbF9n dWNfbG9nX2NsaWVudCAqbG9nX2NsaWVudCwKKwkJCSAgIHNpemVfdCBjb3VudCwgdWludDMyX3Qg Zl9mbGFncyk7CiAKICNlbmRpZgotLSAKMS45LjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=