From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 33/73] drm/i915: Refactor blocking waits Date: Mon, 1 Aug 2016 10:10:41 +0100 Message-ID: <1470042681-25318-34-git-send-email-chris@chris-wilson.co.uk> References: <1470042681-25318-1-git-send-email-chris@chris-wilson.co.uk> 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 398BD6E275 for ; Mon, 1 Aug 2016 09:12:20 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id x83so25228497wma.3 for ; Mon, 01 Aug 2016 02:12:20 -0700 (PDT) In-Reply-To: <1470042681-25318-1-git-send-email-chris@chris-wilson.co.uk> 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 List-Id: intel-gfx@lists.freedesktop.org VGlkeSB1cCB0aGUgZm9yIGxvb3BzIHRoYXQgaGFuZGxlIHdhaXRpbmcgZm9yIHJlYWQvd3JpdGUg dnMgcmVhZC1vbmx5CmFjY2Vzcy4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNA Y2hyaXMtd2lsc29uLmNvLnVrPgpSZXZpZXdlZC1ieTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMu bGFodGluZW5AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMgfCAxNTggKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyksIDgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCmluZGV4IDYzZDk3NGIyMmI1OC4uNzNiMzY4NjgzZmQ3IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKQEAgLTEzMzksNiArMTMzOSwyMyBAQCBwdXRfcnBtOgogCXJldHVybiBy ZXQ7CiB9CiAKK3N0YXRpYyB2b2lkCitpOTE1X2dlbV9vYmplY3RfcmV0aXJlX3JlcXVlc3Qoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSkKK3sKKwlpbnQgaWR4ID0gcmVxLT5lbmdpbmUtPmlkOworCisJaWYg KGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxhc3RfcmVhZFtpZHhdLAorCQkJCSAmb2JqLT5i YXNlLmRldi0+c3RydWN0X211dGV4KSA9PSByZXEpCisJCWk5MTVfZ2VtX29iamVjdF9yZXRpcmVf X3JlYWQob2JqLCBpZHgpOworCWVsc2UgaWYgKGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxh c3Rfd3JpdGUsCisJCQkJICAgICAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCkgPT0gcmVx KQorCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX193cml0ZShvYmopOworCisJaWYgKCFpOTE1X3Jl c2V0X2luX3Byb2dyZXNzKCZyZXEtPmk5MTUtPmdwdV9lcnJvcikpCisJCWk5MTVfZ2VtX3JlcXVl c3RfcmV0aXJlX3VwdG8ocmVxKTsKK30KKwogLyoqCiAgKiBFbnN1cmVzIHRoYXQgYWxsIHJlbmRl cmluZyB0byB0aGUgb2JqZWN0IGhhcyBjb21wbGV0ZWQgYW5kIHRoZSBvYmplY3QgaXMKICAqIHNh ZmUgdG8gdW5iaW5kIGZyb20gdGhlIEdUVCBvciBhY2Nlc3MgZnJvbSB0aGUgQ1BVLgpAQCAtMTM0 OSwzOSArMTM2NiwzNCBAQCBpbnQKIGk5MTVfZ2VtX29iamVjdF93YWl0X3JlbmRlcmluZyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJICAgICAgIGJvb2wgcmVhZG9ubHkpCiB7 Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0OwogCXN0cnVjdCByZXNlcnZh dGlvbl9vYmplY3QgKnJlc3Y7Ci0JaW50IHJldCwgaTsKKwlzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZl ICphY3RpdmU7CisJdW5zaWduZWQgbG9uZyBhY3RpdmVfbWFzazsKKwlpbnQgaWR4LCByZXQ7CiAK LQlpZiAocmVhZG9ubHkpIHsKLQkJcmVxdWVzdCA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmot Pmxhc3Rfd3JpdGUsCi0JCQkJCSAgICAgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsK LQkJaWYgKHJlcXVlc3QpIHsKLQkJCXJldCA9IGk5MTVfd2FpdF9yZXF1ZXN0KHJlcXVlc3QpOwot CQkJaWYgKHJldCkKLQkJCQlyZXR1cm4gcmV0OworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJm9iai0+ YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CiAKLQkJCWkgPSByZXF1ZXN0LT5lbmdpbmUtPmlkOwot CQkJaWYgKGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxhc3RfcmVhZFtpXSwKLQkJCQkJCSAm b2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KSA9PSByZXF1ZXN0KQotCQkJCWk5MTVfZ2VtX29i amVjdF9yZXRpcmVfX3JlYWQob2JqLCBpKTsKLQkJCWVsc2UKLQkJCQlpOTE1X2dlbV9vYmplY3Rf cmV0aXJlX193cml0ZShvYmopOwotCQl9CisJaWYgKCFyZWFkb25seSkgeworCQlhY3RpdmUgPSBv YmotPmxhc3RfcmVhZDsKKwkJYWN0aXZlX21hc2sgPSBvYmotPmFjdGl2ZTsKIAl9IGVsc2Ugewot CQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5FUzsgaSsrKSB7Ci0JCQlyZXF1ZXN0ID0g aTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF9yZWFkW2ldLAotCQkJCQkJICAgICAgICZv YmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCQkJaWYgKCFyZXF1ZXN0KQotCQkJCWNvbnRp bnVlOworCQlhY3RpdmVfbWFzayA9IDE7CisJCWFjdGl2ZSA9ICZvYmotPmxhc3Rfd3JpdGU7CisJ fQogCi0JCQlyZXQgPSBpOTE1X3dhaXRfcmVxdWVzdChyZXF1ZXN0KTsKLQkJCWlmIChyZXQpCi0J CQkJcmV0dXJuIHJldDsKKwlmb3JfZWFjaF9hY3RpdmUoYWN0aXZlX21hc2ssIGlkeCkgeworCQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7CiAKLQkJCWk5MTVfZ2VtX29iamVj dF9yZXRpcmVfX3JlYWQob2JqLCBpKTsKLQkJfQotCQlHRU1fQlVHX09OKG9iai0+YWN0aXZlKTsK KwkJcmVxdWVzdCA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZhY3RpdmVbaWR4XSwKKwkJCQkJICAg ICAgICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCQlpZiAoIXJlcXVlc3QpCisJCQlj b250aW51ZTsKKworCQlyZXQgPSBpOTE1X3dhaXRfcmVxdWVzdChyZXF1ZXN0KTsKKwkJaWYgKHJl dCkKKwkJCXJldHVybiByZXQ7CisKKwkJaTkxNV9nZW1fb2JqZWN0X3JldGlyZV9yZXF1ZXN0KG9i aiwgcmVxdWVzdCk7CiAJfQogCiAJcmVzdiA9IGk5MTVfZ2VtX29iamVjdF9nZXRfZG1hYnVmX3Jl c3Yob2JqKTsKQEAgLTEzOTcsMjMgKzE0MDksNiBAQCBpOTE1X2dlbV9vYmplY3Rfd2FpdF9yZW5k ZXJpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIHZvaWQKLWk5MTVfZ2VtX29iamVjdF9yZXRpcmVfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAotCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQotewotCWludCBpZHggPSByZXEtPmVuZ2luZS0+aWQ7Ci0KLQlpZiAoaTkxNV9nZW1f YWN0aXZlX3BlZWsoJm9iai0+bGFzdF9yZWFkW2lkeF0sCi0JCQkJICZvYmotPmJhc2UuZGV2LT5z dHJ1Y3RfbXV0ZXgpID09IHJlcSkKLQkJaTkxNV9nZW1fb2JqZWN0X3JldGlyZV9fcmVhZChvYmos IGlkeCk7Ci0JZWxzZSBpZiAoaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF93cml0ZSwK LQkJCQkgICAgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KSA9PSByZXEpCi0JCWk5MTVf Z2VtX29iamVjdF9yZXRpcmVfX3dyaXRlKG9iaik7Ci0KLQlpZiAoIWk5MTVfcmVzZXRfaW5fcHJv Z3Jlc3MoJnJlcS0+aTkxNS0+Z3B1X2Vycm9yKSkKLQkJaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmVf dXB0byhyZXEpOwotfQotCiAvKiBBIG5vbmJsb2NraW5nIHZhcmlhbnQgb2YgdGhlIGFib3ZlIHdh aXQuIFRoaXMgaXMgYSBoaWdobHkgZGFuZ2Vyb3VzIHJvdXRpbmUKICAqIGFzIHRoZSBvYmplY3Qg c3RhdGUgbWF5IGNoYW5nZSBkdXJpbmcgdGhpcyBjYWxsLgogICovCkBAIC0xNDI1LDM0ICsxNDIw LDMxIEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3JlbmRlcmluZ19fbm9uYmxvY2tpbmcoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2Jq LT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0c1tJOTE1X05VTV9F TkdJTkVTXTsKKwlzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmU7CisJdW5zaWduZWQgbG9u ZyBhY3RpdmVfbWFzazsKIAlpbnQgcmV0LCBpLCBuID0gMDsKIAogCUJVR19PTighbXV0ZXhfaXNf bG9ja2VkKCZkZXYtPnN0cnVjdF9tdXRleCkpOwogCUJVR19PTighZGV2X3ByaXYtPm1tLmludGVy cnVwdGlibGUpOwogCi0JaWYgKCFvYmotPmFjdGl2ZSkKKwlhY3RpdmVfbWFzayA9IG9iai0+YWN0 aXZlOworCWlmICghYWN0aXZlX21hc2spCiAJCXJldHVybiAwOwogCi0JaWYgKHJlYWRvbmx5KSB7 Ci0JCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwotCi0JCXJlcSA9IGk5MTVfZ2Vt X2FjdGl2ZV9nZXQoJm9iai0+bGFzdF93cml0ZSwKLQkJCQkJICAmb2JqLT5iYXNlLmRldi0+c3Ry dWN0X211dGV4KTsKLQkJaWYgKHJlcSA9PSBOVUxMKQotCQkJcmV0dXJuIDA7Ci0KLQkJcmVxdWVz dHNbbisrXSA9IHJlcTsKKwlpZiAoIXJlYWRvbmx5KSB7CisJCWFjdGl2ZSA9IG9iai0+bGFzdF9y ZWFkOwogCX0gZWxzZSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBpKysp IHsKLQkJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOworCQlhY3RpdmVfbWFzayA9 IDE7CisJCWFjdGl2ZSA9ICZvYmotPmxhc3Rfd3JpdGU7CisJfQogCi0JCQlyZXEgPSBpOTE1X2dl bV9hY3RpdmVfZ2V0KCZvYmotPmxhc3RfcmVhZFtpXSwKLQkJCQkJCSAgJm9iai0+YmFzZS5kZXYt PnN0cnVjdF9tdXRleCk7Ci0JCQlpZiAocmVxID09IE5VTEwpCi0JCQkJY29udGludWU7CisJZm9y X2VhY2hfYWN0aXZlKGFjdGl2ZV9tYXNrLCBpKSB7CisJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxOwogCisJCXJlcSA9IGk5MTVfZ2VtX2FjdGl2ZV9nZXQoJmFjdGl2ZVtpXSwKKwkJ CQkJICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsKKwkJaWYgKHJlcSkKIAkJCXJlcXVl c3RzW24rK10gPSByZXE7Ci0JCX0KIAl9CiAKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211 dGV4KTsKQEAgLTI5MzQsMzMgKzI5MjYsMzMgQEAgaW50CiBpOTE1X2dlbV9vYmplY3Rfc3luYyhz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICAgIHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqdG8pCiB7Ci0JY29uc3QgYm9vbCByZWFkb25seSA9IG9iai0+YmFzZS5wZW5k aW5nX3dyaXRlX2RvbWFpbiA9PSAwOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx dWVzdHNbSTkxNV9OVU1fRU5HSU5FU107Ci0JaW50IHJldCwgaSwgbjsKKwlzdHJ1Y3QgaTkxNV9n ZW1fYWN0aXZlICphY3RpdmU7CisJdW5zaWduZWQgbG9uZyBhY3RpdmVfbWFzazsKKwlpbnQgaWR4 OwogCi0JaWYgKCFvYmotPmFjdGl2ZSkKLQkJcmV0dXJuIDA7CisJbG9ja2RlcF9hc3NlcnRfaGVs ZCgmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsKIAotCW4gPSAwOwotCWlmIChyZWFkb25s eSkgewotCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKKwlhY3RpdmVfbWFzayA9 IG9iai0+YWN0aXZlOworCWlmICghYWN0aXZlX21hc2spCisJCXJldHVybiAwOwogCi0JCXJlcSA9 IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxhc3Rfd3JpdGUsCi0JCQkJCSAgICZvYmotPmJh c2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCQlpZiAocmVxKQotCQkJcmVxdWVzdHNbbisrXSA9IHJl cTsKKwlpZiAob2JqLT5iYXNlLnBlbmRpbmdfd3JpdGVfZG9tYWluKSB7CisJCWFjdGl2ZSA9IG9i ai0+bGFzdF9yZWFkOwogCX0gZWxzZSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJ TkVTOyBpKyspIHsKLQkJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwotCi0JCQly ZXEgPSBpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3JlYWRbaV0sCi0JCQkJCQkgICAm b2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsKLQkJCWlmIChyZXEpCi0JCQkJcmVxdWVzdHNb bisrXSA9IHJlcTsKLQkJfQorCQlhY3RpdmVfbWFzayA9IDE7CisJCWFjdGl2ZSA9ICZvYmotPmxh c3Rfd3JpdGU7CiAJfQotCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKLQkJcmV0ID0gX19pOTE1 X2dlbV9vYmplY3Rfc3luYyhvYmosIHRvLCByZXF1ZXN0c1tpXSk7CisKKwlmb3JfZWFjaF9hY3Rp dmUoYWN0aXZlX21hc2ssIGlkeCkgeworCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cXVlc3Q7CisJCWludCByZXQ7CisKKwkJcmVxdWVzdCA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZh Y3RpdmVbaWR4XSwKKwkJCQkJICAgICAgICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwor CQlpZiAoIXJlcXVlc3QpCisJCQljb250aW51ZTsKKworCQlyZXQgPSBfX2k5MTVfZ2VtX29iamVj dF9zeW5jKG9iaiwgdG8sIHJlcXVlc3QpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9 Ci0tIAoyLjguMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==