From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v2] drm/i915/pmu: Fix sleep under atomic in RC6 readout Date: Tue, 6 Feb 2018 18:33:11 +0000 Message-ID: <20180206183311.17924-1-tvrtko.ursulin@linux.intel.com> References: <20180206161058.nuc2cfilodtqk32a@ideak-desk.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180206161058.nuc2cfilodtqk32a@ideak-desk.fi.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: David Airlie , dri-devel@lists.freedesktop.org, Rodrigo Vivi , intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldlIGFyZSBu b3QgYWxsb3dlZCB0byBjYWxsIGludGVsX3J1bnRpbWVfcG1fZ2V0IGZyb20gdGhlIFBNVSBjb3Vu dGVyIHJlYWQKY2FsbGJhY2sgc2luY2UgdGhlIGZvcm1lciBjYW4gc2xlZXAsIGFuZCB0aGUgbGF0 dGVyIGlzIHJ1bm5pbmcgdW5kZXIgSVJRCmNvbnRleHQuCgpUbyB3b3JrYXJvdW5kIHRoaXMsIHdl IHJlY29yZCB0aGUgbGFzdCBrbm93biBSQzYgYW5kIHdoaWxlIHJ1bnRpbWUKc3VzcGVuZGVkIGVz dGltYXRlIGl0cyBpbmNyZWFzZSBieSBxdWVyeWluZyB0aGUgcnVudGltZSBQTSBjb3JlCnRpbWVz dGFtcHMuCgpEb3duc2lkZSBvZiB0aGlzIGFwcHJvYWNoIGlzIHRoYXQgd2UgY2FuIHRlbXBvcmFy aWx5IGxvc2UgYSBjaHVuayBvZiBSQzYKdGltZSwgZnJvbSB0aGUgbGFzdCBQTVUgcmVhZC1vdXQg dG8gcnVudGltZSBzdXNwZW5kIGVudHJ5LCBidXQgdGhhdCB3aWxsCmV2ZW50dWFsbHkgY2F0Y2gg dXAsIG9uY2UgZGV2aWNlIGNvbWVzIGJhY2sgb25saW5lIGFuZCBpbiB0aGUgcHJlc2VuY2Ugb2YK UE1VIHF1ZXJpZXMuCgpBbHNvLCB3ZSBoYXZlIHRvIGJlIGNhcmVmdWwgbm90IHRvIG92ZXJzaG9v dCB0aGUgUkM2IGVzdGltYXRlLCBzbyBvbmNlCnJlc3VtZWQgYWZ0ZXIgYSBwZXJpb2Qgb2YgYXBw cm94aW1hdGlvbiwgd2Ugb25seSB1cGRhdGUgdGhlIGNvdW50ZXIgb25jZQppdCBjYXRjaGVzIHVw LiBXaXRoIHRoZSBvYnNlcnZhdGlvbiB0aGF0IFJDNiBpcyBpbmNyZWFzaW5nIHdoaWxlIHRoZQpk ZXZpY2UgaXMgc3VzcGVuZGVkLCB0aGlzIHNob3VsZCBub3QgcG9zZSBhIHByb2JsZW0gYW5kIGNh biBvbmx5IGNhdXNlCnNsaWdodCBpbmFjY3VyYWNpZXMgZHVlIGNsb2NrIGJhc2UgZGlmZmVyZW5j ZXMuCgp2MjogU2ltcGxpZnkgYnkgZXN0aW1hdGluZyBvbiB0b3Agb2YgUE0gY29yZSBjb3VudGVy cy4gKEltcmUpCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5A aW50ZWwuY29tPgpCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9MTA0OTQzCkZpeGVzOiA2MDYwYjZhZWMwM2MgKCJkcm0vaTkxNS9wbXU6IEFkZCBS QzYgcmVzaWRlbmN5IG1ldHJpY3MiKQpUZXN0Y2FzZTogaWd0L3BlcmZfcG11L3JjNi1ydW50aW1l LXBtCkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBJbXJlIERlYWsgPGltcmUu ZGVha0BpbnRlbC5jb20+CkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwu Y29tPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29t PgpDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgpDYzogRGF2aWQgQWly bGllIDxhaXJsaWVkQGxpbnV4LmllPgpDYzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcG11LmMgfCA5MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuaCB8ICA2ICsrKwogMiBmaWxl cyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BtdS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9wbXUuYwppbmRleCAxYzQ0MDQ2MDI1NWQuLmJmYzQwMmQ0NzYwOSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3BtdS5jCkBAIC00MTUsNyArNDE1LDgxIEBAIHN0YXRpYyBpbnQgaTkxNV9wbXVfZXZl bnRfaW5pdChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRp YyB1NjQgX19pOTE1X3BtdV9ldmVudF9yZWFkKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKK3N0 YXRpYyB1NjQgZ2V0X3JjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgYm9vbCBsb2Nr ZWQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1NjQgdmFsOworCisJaWYgKGludGVsX3J1 bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShpOTE1KSkgeworCQl2YWwgPSBpbnRlbF9yYzZfcmVzaWRl bmN5X25zKGk5MTUsIElTX1ZBTExFWVZJRVcoaTkxNSkgPworCQkJCQkJICAgVkxWX0dUX1JFTkRF Ul9SQzYgOgorCQkJCQkJICAgR0VONl9HVF9HRlhfUkM2KTsKKworCQlpZiAoSEFTX1JDNnAoaTkx NSkpCisJCQl2YWwgKz0gaW50ZWxfcmM2X3Jlc2lkZW5jeV9ucyhpOTE1LCBHRU42X0dUX0dGWF9S QzZwKTsKKworCQlpZiAoSEFTX1JDNnBwKGk5MTUpKQorCQkJdmFsICs9IGludGVsX3JjNl9yZXNp ZGVuY3lfbnMoaTkxNSwgR0VONl9HVF9HRlhfUkM2cHApOworCisJCWludGVsX3J1bnRpbWVfcG1f cHV0KGk5MTUpOworCisJCS8qCisJCSAqIElmIHdlIGFyZSBjb21pbmcgYmFjayBmcm9tIGJlaW5n IHJ1bnRpbWUgc3VzcGVuZGVkIHdlIG11c3QKKwkJICogYmUgY2FyZWZ1bCBub3QgdG8gcmVwb3J0 IGEgbGFyZ2VyIHZhbHVlIHRoYW4gcmV0dXJuZWQKKwkJICogcHJldmlvdXNseS4KKwkJICovCisK KwkJaWYgKCFsb2NrZWQpCisJCQlzcGluX2xvY2tfaXJxc2F2ZSgmaTkxNS0+cG11LmxvY2ssIGZs YWdzKTsKKworCQlpZiAodmFsID49IGk5MTUtPnBtdS5zYW1wbGVbX19JOTE1X1NBTVBMRV9SQzZf RVNUSU1BVEVEXS5jdXIpIHsKKwkJCWk5MTUtPnBtdS5zYW1wbGVbX19JOTE1X1NBTVBMRV9SQzZf RVNUSU1BVEVEXS5jdXIgPSAwOworCQkJaTkxNS0+cG11LnNhbXBsZVtfX0k5MTVfU0FNUExFX1JD Nl0uY3VyID0gdmFsOworCQl9IGVsc2UgeworCQkJdmFsID0gaTkxNS0+cG11LnNhbXBsZVtfX0k5 MTVfU0FNUExFX1JDNl9FU1RJTUFURURdLmN1cjsKKwkJfQorCisJCWlmICghbG9ja2VkKQorCQkJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTkxNS0+cG11LmxvY2ssIGZsYWdzKTsKKwl9IGVsc2Ug eworCQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGk5MTUtPmRybS5wZGV2OworCQlzdHJ1Y3QgZGV2 aWNlICprZGV2ID0gJnBkZXYtPmRldjsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczI7CisKKwkJLyoK KwkJICogV2UgYXJlIHJ1bnRpbWUgc3VzcGVuZGVkLgorCQkgKgorCQkgKiBSZXBvcnQgdGhlIGRl bHRhIGZyb20gd2hlbiB0aGUgZGV2aWNlIHdhcyBzdXNwZW5kZWQgdG8gbm93LAorCQkgKiBvbiB0 b3Agb2YgdGhlIGxhc3Qga25vd24gcmVhbCB2YWx1ZSwgYXMgdGhlIGFwcHJveGltYXRlZCBSQzYK KwkJICogY291bnRlciB2YWx1ZS4KKwkJICovCisJCWlmICghbG9ja2VkKQorCQkJc3Bpbl9sb2Nr X2lycXNhdmUoJmk5MTUtPnBtdS5sb2NrLCBmbGFncyk7CisKKwkJc3Bpbl9sb2NrX2lycXNhdmUo JmtkZXYtPnBvd2VyLmxvY2ssIGZsYWdzMik7CisKKwkJaWYgKCFpOTE1LT5wbXUuc2FtcGxlW19f STkxNV9TQU1QTEVfUkM2X0VTVElNQVRFRF0uY3VyKQorCQkJaTkxNS0+cG11LnN1c3BlbmRlZF9q aWZmaWVzX2xhc3QgPQorCQkJCQkJa2Rldi0+cG93ZXIuc3VzcGVuZGVkX2ppZmZpZXM7CisKKwkJ dmFsID0ga2Rldi0+cG93ZXIuc3VzcGVuZGVkX2ppZmZpZXMgLQorCQkgICAgICBpOTE1LT5wbXUu c3VzcGVuZGVkX2ppZmZpZXNfbGFzdDsKKwkJdmFsICs9IGppZmZpZXMgLSBrZGV2LT5wb3dlci5h Y2NvdW50aW5nX3RpbWVzdGFtcDsKKworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZrZGV2LT5w b3dlci5sb2NrLCBmbGFnczIpOworCisJCXZhbCA9IGppZmZpZXNfdG9fbnNlY3ModmFsKTsKKwkJ dmFsICs9IGk5MTUtPnBtdS5zYW1wbGVbX19JOTE1X1NBTVBMRV9SQzZdLmN1cjsKKwkJaTkxNS0+ cG11LnNhbXBsZVtfX0k5MTVfU0FNUExFX1JDNl9FU1RJTUFURURdLmN1ciA9IHZhbDsKKworCQlp ZiAoIWxvY2tlZCkKKwkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk5MTUtPnBtdS5sb2NrLCBm bGFncyk7CisJfQorCisJcmV0dXJuIHZhbDsKK30KKworc3RhdGljIHU2NCBfX2k5MTVfcG11X2V2 ZW50X3JlYWQoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50LCBib29sIGxvY2tlZCkKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9CiAJCWNvbnRhaW5lcl9vZihldmVudC0+cG11LCB0 eXBlb2YoKmk5MTUpLCBwbXUuYmFzZSk7CkBAIC00NTMsMTggKzUyNyw3IEBAIHN0YXRpYyB1NjQg X19pOTE1X3BtdV9ldmVudF9yZWFkKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAkJCXZhbCA9 IGNvdW50X2ludGVycnVwdHMoaTkxNSk7CiAJCQlicmVhazsKIAkJY2FzZSBJOTE1X1BNVV9SQzZf UkVTSURFTkNZOgotCQkJaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7Ci0JCQl2YWwgPSBpbnRl bF9yYzZfcmVzaWRlbmN5X25zKGk5MTUsCi0JCQkJCQkgICAgIElTX1ZBTExFWVZJRVcoaTkxNSkg PwotCQkJCQkJICAgICBWTFZfR1RfUkVOREVSX1JDNiA6Ci0JCQkJCQkgICAgIEdFTjZfR1RfR0ZY X1JDNik7Ci0JCQlpZiAoSEFTX1JDNnAoaTkxNSkpCi0JCQkJdmFsICs9IGludGVsX3JjNl9yZXNp ZGVuY3lfbnMoaTkxNSwKLQkJCQkJCQkgICAgICBHRU42X0dUX0dGWF9SQzZwKTsKLQkJCWlmIChI QVNfUkM2cHAoaTkxNSkpCi0JCQkJdmFsICs9IGludGVsX3JjNl9yZXNpZGVuY3lfbnMoaTkxNSwK LQkJCQkJCQkgICAgICBHRU42X0dUX0dGWF9SQzZwcCk7Ci0JCQlpbnRlbF9ydW50aW1lX3BtX3B1 dChpOTE1KTsKKwkJCXZhbCA9IGdldF9yYzYoaTkxNSwgbG9ja2VkKTsKIAkJCWJyZWFrOwogCQl9 CiAJfQpAQCAtNDc5LDcgKzU0Miw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfcG11X2V2ZW50X3JlYWQo c3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCiBhZ2FpbjoKIAlwcmV2ID0gbG9jYWw2NF9yZWFk KCZod2MtPnByZXZfY291bnQpOwotCW5ldyA9IF9faTkxNV9wbXVfZXZlbnRfcmVhZChldmVudCk7 CisJbmV3ID0gX19pOTE1X3BtdV9ldmVudF9yZWFkKGV2ZW50LCBmYWxzZSk7CiAKIAlpZiAobG9j YWw2NF9jbXB4Y2hnKCZod2MtPnByZXZfY291bnQsIHByZXYsIG5ldykgIT0gcHJldikKIAkJZ290 byBhZ2FpbjsKQEAgLTUzNCw3ICs1OTcsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X3BtdV9lbmFibGUo c3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCSAqIGZvciBhbGwgbGlzdGVuZXJzLiBFdmVuIHdo ZW4gdGhlIGV2ZW50IHdhcyBhbHJlYWR5IGVuYWJsZWQgYW5kIGhhcwogCSAqIGFuIGV4aXN0aW5n IG5vbi16ZXJvIHZhbHVlLgogCSAqLwotCWxvY2FsNjRfc2V0KCZldmVudC0+aHcucHJldl9jb3Vu dCwgX19pOTE1X3BtdV9ldmVudF9yZWFkKGV2ZW50KSk7CisJbG9jYWw2NF9zZXQoJmV2ZW50LT5o dy5wcmV2X2NvdW50LCBfX2k5MTVfcG11X2V2ZW50X3JlYWQoZXZlbnQsIHRydWUpKTsKIAogCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmk5MTUtPnBtdS5sb2NrLCBmbGFncyk7CiB9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BtdS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9wbXUuaAppbmRleCA1YTJlMDEzYTU2YmIuLmFhMWIxYTk4N2VhMSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BtdS5oCkBAIC0yNyw2ICsyNyw4IEBACiBlbnVtIHsKIAlfX0k5MTVfU0FNUExF X0ZSRVFfQUNUID0gMCwKIAlfX0k5MTVfU0FNUExFX0ZSRVFfUkVRLAorCV9fSTkxNV9TQU1QTEVf UkM2LAorCV9fSTkxNV9TQU1QTEVfUkM2X0VTVElNQVRFRCwKIAlfX0k5MTVfTlVNX1BNVV9TQU1Q TEVSUwogfTsKIApAQCAtOTQsNiArOTYsMTAgQEAgc3RydWN0IGk5MTVfcG11IHsKIAkgKiBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzLgogCSAqLwogCXN0cnVjdCBpOTE1X3BtdV9zYW1wbGUgc2FtcGxl W19fSTkxNV9OVU1fUE1VX1NBTVBMRVJTXTsKKwkvKioKKwkgKiBAc3VzcGVuZGVkX2ppZmZpZXNf bGFzdDogQ2FjaGVkIHN1c3BlbmQgdGltZSBmcm9tIFBNIGNvcmUuCisJICovCisJdW5zaWduZWQg bG9uZyBzdXNwZW5kZWRfamlmZmllc19sYXN0OwogCS8qKgogCSAqIEBpOTE1X2F0dHI6IE1lbW9y eSBibG9jayBob2xkaW5nIGRldmljZSBhdHRyaWJ1dGVzLgogCSAqLwotLSAKMi4xNC4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK