From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 3/7] drm/i915: More surgically unbreak the modeset vs reset deadlock Date: Thu, 20 Jul 2017 19:57:50 +0200 Message-ID: <20170720175754.30751-4-daniel.vetter@ffwll.ch> References: <20170720175754.30751-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id A3F816E6FB for ; Thu, 20 Jul 2017 17:58:05 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id t3so3419521wme.2 for ; Thu, 20 Jul 2017 10:58:05 -0700 (PDT) In-Reply-To: <20170720175754.30751-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel Graphics Development Cc: Daniel Vetter , Mika Kuoppala , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org VGhlcmUncyBubyByZWFzb24gdG8gZW50aXJlbHkgd2VkZ2UgdGhlIGdwdSwgZm9yIHRoZSBtaW5p bWFsIGRlYWRsb2NrCmJ1Z2ZpeCB3ZSBvbmx5IG5lZWQgdG8gdW5icmVhay9kZWNvdXBsZSB0aGUg YXRvbWljIGNvbW1pdCBmcm9tIHRoZSBncHUKcmVzZXQuIFRoZSBzaW1wbGVzdCB3YXkgdG8gZml4 IHRoYXQgaXMgYnkgcmVwbGFjaW5nIHRoZQp1bmNvbmRpdGlvbmFsIGZlbmNlIHdhaXQgYSB0aGUg dG9wIG9mIGNvbW1pdF90YWlsIGJ5IGEgd2FpdCB3aGljaApjb21wbGV0ZXMgZWl0aGVyIHdoZW4g dGhlIGZlbmNlcyBhcmUgZG9uZSAobm9ybWFsIGNhc2UsIG9yIHdoZW4gYQpyZXNldCBkb2Vzbid0 IG5lZWQgdG8gdG91Y2ggdGhlIGRpc3BsYXkgc3RhdGUpLiBPciB3aGVuIHRoZSBncHUgcmVzZXQK bmVlZHMgdG8gZm9yY2UtdW5ibG9jayBhbGwgcGVuZGluZyBtb2Rlc2V0IHN0YXRlcy4KClRoZSBs ZXNzZXIgc291cmNlIG9mIGRlYWRsb2NrcyBpcyB3aGVuIHdlIHRyeSB0byBwaW4gYSBuZXcgZnJh bWVidWZmZXIKYW5kIHJ1biBpbnRvIGEgc3RhbGwuIFRoZXJlJ3MgYSBidW5jaCBvZiBwbGFjZXMg dGhpcyBjYW4gaGFwcGVuLCBsaWtlCmV2aWN0aW9uLCBjaGFuZ2luZyB0aGUgY2FjaGluZyBtb2Rl LCBhY3F1aXJpbmcgYSBmZW5jZSBvbiBvbGRlcgpwbGF0Zm9ybXMuIEFuZCB3ZSBjYW4ndCBqdXN0 IGJyZWFrIHRoZSBkZXBlbmN5IGxvb3AgYW5kIGtlZXAgZ29pbmcsCnRoZSBvbmx5IHdheSB3b3Vs ZCBiZSB0byBicmVhayBvdXQgYW5kIHJlc3RhcnQuIEJ1dCB0aGUgcHJvYmxlbSB3aXRoCnRoYXQg YXBwcm9hY2ggaXMgdGhhdCB3ZSBtdXN0IHN0YWxsIGZvciB0aGUgcmVzZXQgdG8gY29tcGxldGUg YmVmb3JlCndlIGdyYWIgYW55IGxvY2tzLCBhbmQgd2l0aCB0aGUgYXRvbWljIGluZnJhc3RydWN0 dXJlIHRoYXQncyBhIGJpdAp0cmlja3kuIFRoZSBvbmx5IHBsYWNlIGlzIHRoZSBpb2N0bCBjb2Rl LCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBpbnNlcnQKY29kZSBpbnRvIGUuZy4gdGhlIEJVU1kgaW9j dGwuIEhlbmNlIGZvciB0aGF0IHByb2JsZW0ganVzdCBjcmVhdGUgYQpjcml0aWNhbCBzZWN0aW9u LCBhbmQgaWYgYW55IGNvZGUgaXMgaW4gdGhlcmUsIHdlZGdlIHRoZSBHUFUuIEZvciB0aGUKc3Rl YWR5LXN0YXRlIHRoaXMgc2hvdWxkIG5ldmVyIGJlIGEgcHJvYmxlbS4KCk5vdGUgdGhhdCBpbiBi b3RoIGNhc2VzIFREUiBpdHNlbGYga2VlcHMgd29ya2luZywgc28gZnJvbSBhIHVzZXJzcGFjZQpw b3YgdGhpcyB0cmlja2VyeSBpc24ndCBvYnNlcnZhYmxlLiBVc2VycyB0aGVtc2VsdnMgbWlnaHQg c3BvdCBhIHNob3J0CmdsaXRjaCB3aGlsZSB0aGUgcmVuZGVyaW5nIGlzIGNhdGNoaW5nIHVwIGFn YWluLCBidXQgdGhhdCdzIHN0aWxsCmJldHRlciB0aGFuIHByZS1URFIgd2hlcmUgd2UndmUgdGhy b3duIGF3YXkgYWxsIHRoZSByZW5kZXJpbmcsCmluY2x1ZGluZyBpbm5vY2VudCBiYXRjaGVzLiBB bHNvLCB0aGlzIGZpeGVzIHRoZSByZWdyZXNzaW9uIFREUgppbnRyb2R1Y2VkIG9mIG1ha2luZyBn cHUgcmVzZXRzIGRlYWRsb2NrLXByb25lIHdoZW4gd2UgZG8gbmVlZCB0bwp0b3VjaCB0aGUgZGlz cGxheS4KCk9uZSB0aGluZyBJIG5vdGljZWQgaXMgdGhhdCBncHVfZXJyb3IuZmxhZ3Mgc2VlbXMg dG8gdXNlIGJvdGggb3VyIG93bgp3YWl0LXF1ZXVlIGluIGdwdV9lcnJvci53YWl0X3F1ZXVlLCBh bmQgdGhlIGdlbmVyaWMgd2FpdF9vbl9iaXQKZmFjaWxpdGllcy4gTm90IGVudGlyZWx5IHN1cmUg d2h5IHRoaXMgaW5jb25zaXN0ZW5jeSBleGlzdHMsIEkganVzdApwaWNrZWQgb25lIHN0eWxlLgoK QSBwb3NzaWJsZSBmdXR1cmUgYXZlbnVlIGNvdWxkIGJlIHRvIGluc2VydCB0aGUgZ3B1IHJlc2V0 IGluLWJldHdlZW4Kb25nb2luZyBtb2Rlc2V0IGNoYW5nZXMsIHdoaWNoIHdvdWxkIGF2b2lkIHRo ZSBtb21lbnRhcnkgZ2xpdGNoLiBCdXQKdGhhdCdzIGEgbG90IG1vcmUgd29yayB0byBpbXBsZW1l bnQgaW4gdGhlIGF0b21pYyBjb21taXQgbWFjaGluZXJ5LAphbmQgZ2l2ZW4gdGhhdCB3ZSBvbmx5 IG5lZWQgdGhpcyBmb3IgcHJlLWc0eCBodywgb2YgcXVlc3Rpb25hYmxlCnV0aWxpdHkganVzdCBm b3IgdGhlIHNha2Ugb2YgcG9saXNoaW5nIGdwdSByZXNldCBldmVuIG1vcmUgb24gdGhvc2UKb2xk IGJveGVzLiBJdCBtaWdodCBiZSB1c2VmdWwgZm9yIG90aGVyIGZlYXR1cmVzIHRob3VnaC4KCnYy OiBSZWJhc2Ugb250byA0LjEzIHdpdGggYSBzL3dhaXRfcXVldWVfdC9zdHJ1Y3Qgd2FpdF9xdWV1 ZV9lbnRyeS8uCgp2MzogUmVhbGx5IGVtYWJhcnJhc3NpbmcgZml4dXAsIEkgY2hlY2tlZCB0aGUg d3JvbmcgYml0IGFuZCBicm9rZSB0aGUKdW5icmVhay93YWtldXAgbG9naWMuCgp2NDogQWxzbyBo YW5kbGUgZGVhZGxvY2tzIGluIHBpbl90b19kaXNwbGF5LgoKQ2M6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBp bnRlbC5jb20+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRl bC5jb20+ClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAzICsrKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgNDUgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyks IDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMDdlOThiMDdjNWJj Li45YjA1NWRlY2EzNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTUwNSw2ICsxNTA1 LDggQEAgc3RydWN0IGk5MTVfZ3B1X2Vycm9yIHsKIAkvKiBQcm90ZWN0ZWQgYnkgdGhlIGFib3Zl IGRldi0+Z3B1X2Vycm9yLmxvY2suICovCiAJc3RydWN0IGk5MTVfZ3B1X3N0YXRlICpmaXJzdF9l cnJvcjsKIAorCWF0b21pY190IHBlbmRpbmdfZmJfcGluOworCiAJdW5zaWduZWQgbG9uZyBtaXNz ZWRfaXJxX3JpbmdzOwogCiAJLyoqCkBAIC0xNTY0LDYgKzE1NjYsNyBAQCBzdHJ1Y3QgaTkxNV9n cHVfZXJyb3IgewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAjZGVmaW5lIEk5MTVfUkVTRVRfQkFD S09GRgkwCiAjZGVmaW5lIEk5MTVfUkVTRVRfSEFORE9GRgkxCisjZGVmaW5lIEk5MTVfUkVTRVRf TU9ERVNFVAkyCiAjZGVmaW5lIEk5MTVfV0VER0VECQkoQklUU19QRVJfTE9ORyAtIDEpCiAjZGVm aW5lIEk5MTVfUkVTRVRfRU5HSU5FCShJOTE1X1dFREdFRCAtIEk5MTVfTlVNX0VOR0lORVMpCiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBmNmJkNjI4MmQ3ZjcuLjYzZWE4 ZDZiMmViZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMjE2Miw2ICsy MTYyLDggQEAgaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIsIHVuc2lnbmVkIGludCByb3RhdGlvbikKIAkgKi8KIAlpbnRlbF9ydW50aW1lX3BtX2dl dChkZXZfcHJpdik7CiAKKwlhdG9taWNfaW5jKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnBlbmRpbmdf ZmJfcGluKTsKKwogCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFuZShv YmosIGFsaWdubWVudCwgJnZpZXcpOwogCWlmIChJU19FUlIodm1hKSkKIAkJZ290byBlcnI7CkBA IC0yMTg5LDYgKzIxOTEsOCBAQCBpbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29iaihzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwgdW5zaWduZWQgaW50IHJvdGF0aW9uKQogCiAJaTkxNV92bWFfZ2V0 KHZtYSk7CiBlcnI6CisJYXRvbWljX2RlYygmZGV2X3ByaXYtPmdwdV9lcnJvci5wZW5kaW5nX2Zi X3Bpbik7CisKIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7CiAJcmV0dXJuIHZtYTsK IH0KQEAgLTM0NzEsMTEgKzM0NzUsMTQgQEAgdm9pZCBpbnRlbF9wcmVwYXJlX3Jlc2V0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgICAgIWdwdV9yZXNldF9jbG9iYmVyc19k aXNwbGF5KGRldl9wcml2KSkKIAkJcmV0dXJuOwogCi0JLyogV2UgaGF2ZSBhIG1vZGVzZXQgdnMg cmVzZXQgZGVhZGxvY2ssIGRlZmVuc2l2ZWx5IHVuYnJlYWsgaXQuCi0JICoKLQkgKiBGSVhNRTog V2UgY2FuIGRvIGEgX2xvdF8gYmV0dGVyLCB0aGlzIGlzIGp1c3QgYSBmaXJzdCBpdGVyYXRpb24u Ki8KLQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGRldl9wcml2KTsKLQlEUk1fREVCVUdfRFJJVkVSKCJX ZWRnaW5nIEdQVSB0byBhdm9pZCBkZWFkbG9ja3Mgd2l0aCBwZW5kaW5nIG1vZGVzZXQgdXBkYXRl c1xuIik7CisJLyogV2UgaGF2ZSBhIG1vZGVzZXQgdnMgcmVzZXQgZGVhZGxvY2ssIGRlZmVuc2l2 ZWx5IHVuYnJlYWsgaXQuICovCisJc2V0X2JpdChJOTE1X1JFU0VUX01PREVTRVQsICZkZXZfcHJp di0+Z3B1X2Vycm9yLmZsYWdzKTsKKwl3YWtlX3VwX2FsbCgmZGV2X3ByaXYtPmdwdV9lcnJvci53 YWl0X3F1ZXVlKTsKKworCWlmIChhdG9taWNfcmVhZCgmZGV2X3ByaXYtPmdwdV9lcnJvci5wZW5k aW5nX2ZiX3BpbikpIHsKKwkJRFJNX0RFQlVHX0tNUygiTW9kZXNldCBwb3RlbnRpYWxseSBzdHVj aywgdW5icmVha2luZyB0aHJvdWdoIHdlZGdpbmdcbiIpOworCQlpOTE1X2dlbV9zZXRfd2VkZ2Vk KGRldl9wcml2KTsKKwl9CiAKIAkvKgogCSAqIE5lZWQgbW9kZV9jb25maWcubXV0ZXggc28gdGhh dCB3ZSBkb24ndApAQCAtMzU3MCw2ICszNTc3LDggQEAgdm9pZCBpbnRlbF9maW5pc2hfcmVzZXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWRybV9tb2Rlc2V0X2Ryb3BfbG9j a3MoY3R4KTsKIAlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoY3R4KTsKIAltdXRleF91bmxvY2so JmRldi0+bW9kZV9jb25maWcubXV0ZXgpOworCisJY2xlYXJfYml0KEk5MTVfUkVTRVRfTU9ERVNF VCwgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpOwogfQogCiBzdGF0aWMgYm9vbCBhYm9ydF9m bGlwX29uX3Jlc2V0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQpAQCAtMTIzODEsNiArMTIzOTAs MzAgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2hlbHBlcl9mcmVlX3N0YXRlX3dvcmtlcihz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJaW50ZWxfYXRvbWljX2hlbHBlcl9mcmVlX3N0YXRl KGRldl9wcml2KTsKIH0KIAorc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF9mZW5jZV93 YWl0KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlKQoreworCXN0cnVjdCB3 YWl0X3F1ZXVlX2VudHJ5IHdhaXRfZmVuY2UsIHdhaXRfcmVzZXQ7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9zdGF0ZS0+YmFzZS5kZXYpOworCisJ aW5pdF93YWl0X2VudHJ5KCZ3YWl0X2ZlbmNlLCAwKTsKKwlpbml0X3dhaXRfZW50cnkoJndhaXRf cmVzZXQsIDApOworCWZvciAoOzspIHsKKwkJcHJlcGFyZV90b193YWl0KCZpbnRlbF9zdGF0ZS0+ Y29tbWl0X3JlYWR5LndhaXQsCisJCQkJJndhaXRfZmVuY2UsIFRBU0tfVU5JTlRFUlJVUFRJQkxF KTsKKwkJcHJlcGFyZV90b193YWl0KCZkZXZfcHJpdi0+Z3B1X2Vycm9yLndhaXRfcXVldWUsCisJ CQkJJndhaXRfcmVzZXQsIFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKKworCisJCWlmIChpOTE1X3N3 X2ZlbmNlX2RvbmUoJmludGVsX3N0YXRlLT5jb21taXRfcmVhZHkpCisJCSAgICB8fCB0ZXN0X2Jp dChJOTE1X1JFU0VUX01PREVTRVQsICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKSkKKwkJCWJy ZWFrOworCisJCXNjaGVkdWxlKCk7CisJfQorCWZpbmlzaF93YWl0KCZpbnRlbF9zdGF0ZS0+Y29t bWl0X3JlYWR5LndhaXQsICZ3YWl0X2ZlbmNlKTsKKwlmaW5pc2hfd2FpdCgmZGV2X3ByaXYtPmdw dV9lcnJvci53YWl0X3F1ZXVlLCAmd2FpdF9yZXNldCk7Cit9CisKIHN0YXRpYyB2b2lkIGludGVs X2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7CkBAIC0xMjM5NCw3ICsxMjQyNyw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpCiAJdW5zaWduZWQgY3J0Y192YmxhbmtfbWFzayA9IDA7CiAJaW50IGk7 CiAKLQlpOTE1X3N3X2ZlbmNlX3dhaXQoJmludGVsX3N0YXRlLT5jb21taXRfcmVhZHkpOworCWlu dGVsX2F0b21pY19jb21taXRfZmVuY2Vfd2FpdChpbnRlbF9zdGF0ZSk7CiAKIAlkcm1fYXRvbWlj X2hlbHBlcl93YWl0X2Zvcl9kZXBlbmRlbmNpZXMoc3RhdGUpOwogCi0tIAoyLjEzLjIKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=