From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 06/13] drm/msm/gpu: Capture the state of the GPU Date: Thu, 12 Jul 2018 12:59:23 -0600 Message-ID: <20180712185930.2492-7-jcrouse@codeaurora.org> References: <20180712185930.2492-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180712185930.2492-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org QWRkIHRoZSBpbmZyYXN0cnVjdHVyZSB0byBjYXB0dXJlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRo ZSBHUFUgYW5kCnN0b3JlIGl0IGluIG1lbW9yeSBzbyB0aGF0IGl0IGNhbiBiZSBkdW1wZWQgbGF0 ZXIuCgpGb3Igbm93IGdyYWIgdGhlIHNhbWUgYmFzaWMgcmluZ2J1ZmZlciBpbmZvcm1hdGlvbiBh bmQgcmVnaXN0ZXJzCnRoYXQgYXJlIHByb3ZpZGVkIGJ5IHRoZSBkZWJ1Z2ZzICdncHUnIG5vZGUg YnV0IG9idmlvdXNseSB0aGlzIHNob3VsZApiZSBleHRlbmRlZCB0byBjYXB0dXJlIGEgbXVjaCBs YXJnZXIgc2V0IG9mIEdQVSBpbmZvcm1hdGlvbi4KClNpZ25lZC1vZmYtYnk6IEpvcmRhbiBDcm91 c2UgPGpjcm91c2VAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9hZHJl bm8vYTN4eF9ncHUuYyAgIHwgMTUgKysrKysrKwogZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8v YTR4eF9ncHUuYyAgIHwgMTQgKysrKysrKwogZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4 eF9ncHUuYyAgIHwgMjIgKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRy ZW5vX2dwdS5jIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJt L21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oIHwgIDMgKysKIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2dwdS5oICAgICAgICAgICB8IDE5ICsrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCAxMjcgaW5z ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2EzeHhf Z3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jCmluZGV4IDNlYmJl YjNhOWI2OC4uYjcwN2I1YmNhOWFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Fk cmVuby9hM3h4X2dwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2EzeHhfZ3B1 LmMKQEAgLTQyNyw2ICs0MjcsMTkgQEAgc3RhdGljIHZvaWQgYTN4eF9kdW1wKHN0cnVjdCBtc21f Z3B1ICpncHUpCiAJCQlncHVfcmVhZChncHUsIFJFR19BM1hYX1JCQk1fU1RBVFVTKSk7CiAJYWRy ZW5vX2R1bXAoZ3B1KTsKIH0KKworc3RhdGljIHN0cnVjdCBtc21fZ3B1X3N0YXRlICphM3h4X2dw dV9zdGF0ZV9nZXQoc3RydWN0IG1zbV9ncHUgKmdwdSkKK3sKKwlzdHJ1Y3QgbXNtX2dwdV9zdGF0 ZSAqc3RhdGUgPSBhZHJlbm9fZ3B1X3N0YXRlX2dldChncHUpOworCisJaWYgKElTX0VSUihzdGF0 ZSkpCisJCXJldHVybiBzdGF0ZTsKKworCXN0YXRlLT5yYmJtX3N0YXR1cyA9IGdwdV9yZWFkKGdw dSwgUkVHX0EzWFhfUkJCTV9TVEFUVVMpOworCisJcmV0dXJuIHN0YXRlOworfQorCiAvKiBSZWdp c3RlciBvZmZzZXQgZGVmaW5lcyBmb3IgQTNYWCAqLwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGlu dCBhM3h4X3JlZ2lzdGVyX29mZnNldHNbUkVHX0FEUkVOT19SRUdJU1RFUl9NQVhdID0gewogCVJF R19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fQ1BfUkJfQkFTRSwgUkVHX0FYWFhfQ1BfUkJfQkFT RSksCkBAIC00NTMsNiArNDY2LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhZHJlbm9fZ3B1X2Z1 bmNzIGZ1bmNzID0gewogI2lmZGVmIENPTkZJR19ERUJVR19GUwogCQkuc2hvdyA9IGEzeHhfc2hv dywKICNlbmRpZgorCQkuZ3B1X3N0YXRlX2dldCA9IGEzeHhfZ3B1X3N0YXRlX2dldCwKKwkJLmdw dV9zdGF0ZV9wdXQgPSBhZHJlbm9fZ3B1X3N0YXRlX3B1dCwKIAl9LAogfTsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTR4eF9ncHUuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vYWRyZW5vL2E0eHhfZ3B1LmMKaW5kZXggMTZkM2Q1OTY2MzhlLi4xN2U5N2ViYzEwNzcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E0eHhfZ3B1LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTR4eF9ncHUuYwpAQCAtNDY1LDYgKzQ2NSwxOCBA QCBzdGF0aWMgdm9pZCBhNHh4X3Nob3coc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IHNlcV9m aWxlICptKQogfQogI2VuZGlmCiAKK3N0YXRpYyBzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqYTR4eF9n cHVfc3RhdGVfZ2V0KHN0cnVjdCBtc21fZ3B1ICpncHUpCit7CisJc3RydWN0IG1zbV9ncHVfc3Rh dGUgKnN0YXRlID0gYWRyZW5vX2dwdV9zdGF0ZV9nZXQoZ3B1KTsKKworCWlmIChJU19FUlIoc3Rh dGUpKQorCQlyZXR1cm4gc3RhdGU7CisKKwlzdGF0ZS0+cmJibV9zdGF0dXMgPSBncHVfcmVhZChn cHUsIFJFR19BNFhYX1JCQk1fU1RBVFVTKTsKKworCXJldHVybiBzdGF0ZTsKK30KKwogLyogUmVn aXN0ZXIgb2Zmc2V0IGRlZmluZXMgZm9yIEE0WFgsIGluIG9yZGVyIG9mIGVudW0gYWRyZW5vX3Jl Z3MgKi8KIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgYTR4eF9yZWdpc3Rlcl9vZmZzZXRzW1JF R19BRFJFTk9fUkVHSVNURVJfTUFYXSA9IHsKIAlSRUdfQURSRU5PX0RFRklORShSRUdfQURSRU5P X0NQX1JCX0JBU0UsIFJFR19BNFhYX0NQX1JCX0JBU0UpLApAQCAtNTQxLDYgKzU1Myw4IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgYWRyZW5vX2dwdV9mdW5jcyBmdW5jcyA9IHsKICNpZmRlZiBDT05G SUdfREVCVUdfRlMKIAkJLnNob3cgPSBhNHh4X3Nob3csCiAjZW5kaWYKKwkJLmdwdV9zdGF0ZV9n ZXQgPSBhNHh4X2dwdV9zdGF0ZV9nZXQsCisJCS5ncHVfc3RhdGVfcHV0ID0gYWRyZW5vX2dwdV9z dGF0ZV9wdXQsCiAJfSwKIAkuZ2V0X3RpbWVzdGFtcCA9IGE0eHhfZ2V0X3RpbWVzdGFtcCwKIH07 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jIGIvZHJp dmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9ncHUuYwppbmRleCBkMzk0MDBlNWJjNDIuLjll ODVlNGY3MDE2ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9n cHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jCkBAIC0xMTk1 LDYgKzExOTUsMjYgQEAgc3RhdGljIGludCBhNXh4X2dldF90aW1lc3RhbXAoc3RydWN0IG1zbV9n cHUgKmdwdSwgdWludDY0X3QgKnZhbHVlKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgc3RydWN0 IG1zbV9ncHVfc3RhdGUgKmE1eHhfZ3B1X3N0YXRlX2dldChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQor eworCXN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZTsKKworCS8qCisJICogVGVtcG9yYXJpbHkg ZGlzYWJsZSBoYXJkd2FyZSBjbG9jayBnYXRpbmcgYmVmb3JlIGdvaW5nIGludG8KKwkgKiBhZHJl bm9fc2hvdyB0byBhdm9pZCBpc3N1ZXMgd2hpbGUgcmVhZGluZyB0aGUgcmVnaXN0ZXJzCisJICov CisJYTV4eF9zZXRfaHdjZyhncHUsIGZhbHNlKTsKKworCXN0YXRlID0gYWRyZW5vX2dwdV9zdGF0 ZV9nZXQoZ3B1KTsKKworCWlmICghSVNfRVJSKHN0YXRlKSkKKwkJc3RhdGUtPnJiYm1fc3RhdHVz ID0gZ3B1X3JlYWQoZ3B1LCBSRUdfQTVYWF9SQkJNX1NUQVRVUyk7CisKKwlhNXh4X3NldF9od2Nn KGdwdSwgdHJ1ZSk7CisKKwlyZXR1cm4gc3RhdGU7Cit9CisKICNpZmRlZiBDT05GSUdfREVCVUdf RlMKIHN0YXRpYyB2b2lkIGE1eHhfc2hvdyhzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3Qgc2Vx X2ZpbGUgKm0pCiB7CkBAIC0xMjQ0LDYgKzEyNjQsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFk cmVub19ncHVfZnVuY3MgZnVuY3MgPSB7CiAJCS5kZWJ1Z2ZzX2luaXQgPSBhNXh4X2RlYnVnZnNf aW5pdCwKICNlbmRpZgogCQkuZ3B1X2J1c3kgPSBhNXh4X2dwdV9idXN5LAorCQkuZ3B1X3N0YXRl X2dldCA9IGE1eHhfZ3B1X3N0YXRlX2dldCwKKwkJLmdwdV9zdGF0ZV9wdXQgPSBhZHJlbm9fZ3B1 X3N0YXRlX3B1dCwKIAl9LAogCS5nZXRfdGltZXN0YW1wID0gYTV4eF9nZXRfdGltZXN0YW1wLAog fTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYwppbmRleCBiY2JmOWYyYTI5 ZjkuLmM3YTBkMjc4YzU5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8v YWRyZW5vX2dwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUu YwpAQCAtMzY4LDYgKzM2OCw2MCBAQCBib29sIGFkcmVub19pZGxlKHN0cnVjdCBtc21fZ3B1ICpn cHUsIHN0cnVjdCBtc21fcmluZ2J1ZmZlciAqcmluZykKIAlyZXR1cm4gZmFsc2U7CiB9CiAKK3N0 cnVjdCBtc21fZ3B1X3N0YXRlICphZHJlbm9fZ3B1X3N0YXRlX2dldChzdHJ1Y3QgbXNtX2dwdSAq Z3B1KQoreworCXN0cnVjdCBhZHJlbm9fZ3B1ICphZHJlbm9fZ3B1ID0gdG9fYWRyZW5vX2dwdShn cHUpOworCXN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZTsKKwlpbnQgaSwgY291bnQgPSAwOwor CisJc3RhdGUgPSBremFsbG9jKHNpemVvZigqc3RhdGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXN0 YXRlKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCWRvX2dldHRpbWVvZmRheSgmc3Rh dGUtPnRpbWUpOworCisJZm9yIChpID0gMDsgaSA8IGdwdS0+bnJfcmluZ3M7IGkrKykgeworCQlz dGF0ZS0+cmluZ1tpXS5mZW5jZSA9IGdwdS0+cmJbaV0tPm1lbXB0cnMtPmZlbmNlOworCQlzdGF0 ZS0+cmluZ1tpXS5zZXFubyA9IGdwdS0+cmJbaV0tPnNlcW5vOworCQlzdGF0ZS0+cmluZ1tpXS5y cHRyID0gZ2V0X3JwdHIoYWRyZW5vX2dwdSwgZ3B1LT5yYltpXSk7CisJCXN0YXRlLT5yaW5nW2ld LndwdHIgPSBnZXRfd3B0cihncHUtPnJiW2ldKTsKKwl9CisKKwkvKiBDb3VudCB0aGUgbnVtYmVy IG9mIHJlZ2lzdGVycyAqLworCWZvciAoaSA9IDA7IGFkcmVub19ncHUtPnJlZ2lzdGVyc1tpXSAh PSB+MDsgaSArPSAyKQorCQljb3VudCArPSBhZHJlbm9fZ3B1LT5yZWdpc3RlcnNbaSArIDFdIC0K KwkJCWFkcmVub19ncHUtPnJlZ2lzdGVyc1tpXSArIDE7CisKKwlzdGF0ZS0+cmVnaXN0ZXJzID0g a2NhbGxvYyhjb3VudCAqIDIsIHNpemVvZih1MzIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoc3RhdGUt PnJlZ2lzdGVycykgeworCQlpbnQgcG9zID0gMDsKKworCQlmb3IgKGkgPSAwOyBhZHJlbm9fZ3B1 LT5yZWdpc3RlcnNbaV0gIT0gfjA7IGkgKz0gMikgeworCQkJdTMyIHN0YXJ0ID0gYWRyZW5vX2dw dS0+cmVnaXN0ZXJzW2ldOworCQkJdTMyIGVuZCAgID0gYWRyZW5vX2dwdS0+cmVnaXN0ZXJzW2kg KyAxXTsKKwkJCXUzMiBhZGRyOworCisJCQlmb3IgKGFkZHIgPSBzdGFydDsgYWRkciA8PSBlbmQ7 IGFkZHIrKykgeworCQkJCXN0YXRlLT5yZWdpc3RlcnNbcG9zKytdID0gYWRkcjsKKwkJCQlzdGF0 ZS0+cmVnaXN0ZXJzW3BvcysrXSA9IGdwdV9yZWFkKGdwdSwgYWRkcik7CisJCQl9CisJCX0KKwor CQlzdGF0ZS0+bnJfcmVnaXN0ZXJzID0gY291bnQ7CisJfQorCisJcmV0dXJuIHN0YXRlOworfQor Cit2b2lkIGFkcmVub19ncHVfc3RhdGVfcHV0KHN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSkK K3sKKwlpZiAoSVNfRVJSX09SX05VTEwoc3RhdGUpKQorCQlyZXR1cm47CisKKwlrZnJlZShzdGF0 ZS0+cmVnaXN0ZXJzKTsKKwlrZnJlZShzdGF0ZSk7Cit9CisKICNpZmRlZiBDT05GSUdfREVCVUdf RlMKIHZvaWQgYWRyZW5vX3Nob3coc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IHNlcV9maWxl ICptKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dw dS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oCmluZGV4IGJjOWVj MjdlOWVkOC4uNzM0ZTMxYTk2MzFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Fk cmVuby9hZHJlbm9fZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5v X2dwdS5oCkBAIC0yMjksNiArMjI5LDkgQEAgaW50IGFkcmVub19ncHVfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZHJtLCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogdm9pZCBhZHJlbm9f Z3B1X2NsZWFudXAoc3RydWN0IGFkcmVub19ncHUgKmdwdSk7CiAKIAorc3RydWN0IG1zbV9ncHVf c3RhdGUgKmFkcmVub19ncHVfc3RhdGVfZ2V0KHN0cnVjdCBtc21fZ3B1ICpncHUpOwordm9pZCBh ZHJlbm9fZ3B1X3N0YXRlX3B1dChzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUpOworCiAvKiBy aW5nYnVmZmVyIGhlbHBlcnMgKHRoZSBwYXJ0cyB0aGF0IGFyZSBhZHJlbm8gc3BlY2lmaWMpICov CiAKIHN0YXRpYyBpbmxpbmUgdm9pZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaAppbmRleCBiODI0MTE3OTE3 NWEuLjRiZTcyYTYxMmJlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKQEAgLTI3LDYgKzI3LDcgQEAK IAogc3RydWN0IG1zbV9nZW1fc3VibWl0Owogc3RydWN0IG1zbV9ncHVfcGVyZmNudHI7CitzdHJ1 Y3QgbXNtX2dwdV9zdGF0ZTsKIAogc3RydWN0IG1zbV9ncHVfY29uZmlnIHsKIAljb25zdCBjaGFy ICppb25hbWU7CkBAIC02OSw2ICs3MCw4IEBAIHN0cnVjdCBtc21fZ3B1X2Z1bmNzIHsKIAlpbnQg KCpkZWJ1Z2ZzX2luaXQpKHN0cnVjdCBtc21fZ3B1ICpncHUsIHN0cnVjdCBkcm1fbWlub3IgKm1p bm9yKTsKICNlbmRpZgogCWludCAoKmdwdV9idXN5KShzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCB1aW50 NjRfdCAqdmFsdWUpOworCXN0cnVjdCBtc21fZ3B1X3N0YXRlICooKmdwdV9zdGF0ZV9nZXQpKHN0 cnVjdCBtc21fZ3B1ICpncHUpOworCXZvaWQgKCpncHVfc3RhdGVfcHV0KShzdHJ1Y3QgbXNtX2dw dV9zdGF0ZSAqc3RhdGUpOwogfTsKIAogc3RydWN0IG1zbV9ncHUgewpAQCAtMTc1LDYgKzE3OCwy MiBAQCBzdHJ1Y3QgbXNtX2dwdV9zdWJtaXRxdWV1ZSB7CiAJc3RydWN0IGtyZWYgcmVmOwogfTsK IAorc3RydWN0IG1zbV9ncHVfc3RhdGUgeworCXN0cnVjdCB0aW1ldmFsIHRpbWU7CisKKwlzdHJ1 Y3QgeworCQl1MzIgZmVuY2U7CisJCXUzMiBzZXFubzsKKwkJdTMyIHJwdHI7CisJCXUzMiB3cHRy OworCX0gcmluZ1tNU01fR1BVX01BWF9SSU5HU107CisKKwlpbnQgbnJfcmVnaXN0ZXJzOworCXUz MiAqcmVnaXN0ZXJzOworCisJdTMyIHJiYm1fc3RhdHVzOworfTsKKwogc3RhdGljIGlubGluZSB2 b2lkIGdwdV93cml0ZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCB1MzIgcmVnLCB1MzIgZGF0YSkKIHsK IAltc21fd3JpdGVsKGRhdGEsIGdwdS0+bW1pbyArIChyZWcgPDwgMikpOwotLSAKMi4xNy4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8g bWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K