From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 18/38] drm/i915: Convert non-blocking waits for requests over to using RCU Date: Fri, 3 Jun 2016 17:55:33 +0100 Message-ID: <1464972953-2726-19-git-send-email-chris@chris-wilson.co.uk> References: <1464972953-2726-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-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3BB526E06A for ; Fri, 3 Jun 2016 16:56:18 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id a20so704868wma.3 for ; Fri, 03 Jun 2016 09:56:18 -0700 (PDT) In-Reply-To: <1464972953-2726-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 V2UgY2FuIGNvbXBsZXRlbHkgYXZvaWQgdGFraW5nIHRoZSBzdHJ1Y3RfbXV0ZXggYXJvdW5kIHRo ZSBub24tYmxvY2tpbmcKd2FpdHMgYnkgc3dpdGNoaW5nIG92ZXIgdG8gdGhlIFJDVSByZXF1ZXN0 IG1hbmFnZW1lbnQgKHRyYWRpbmcgdGhlIG11dGV4CmZvciBhIFJDVSByZWFkIGxvY2sgYW5kIHNv bWUgY29tcGxleCBhdG9taWMgb3BlcmF0aW9ucykuIFRoZSBpbXByb3ZlbWVudAppcyB0aGF0IHdl IGdhaW4gZnVydGhlciBjb250ZW50aW9uIHJlZHVjdGlvbiwgYW5kIG92ZXJhbGwgdGhlIGNvZGUK YmVjb21lIHNpbXBsZXIgZHVlIHRvIHRoZSByZWR1Y2VkIG11dGV4IGRhbmNpbmcuCgpTaWduZWQt b2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIHwgMTEzICsrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCA2NiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA0YzBlMzYzMjIxNGYuLjc2 ZTVhMjQxYzdiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0zMTMsMjUgKzMxMywyMCBA QCBpOTE1X2dlbV9vYmplY3Rfd2FpdF9yZW5kZXJpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKIAlyZXR1cm4gMDsKIH0KIAotLyogQSBub25ibG9ja2luZyB2YXJpYW50IG9mIHRo ZSBhYm92ZSB3YWl0LiBUaGlzIGlzIGEgaGlnaGx5IGRhbmdlcm91cyByb3V0aW5lCi0gKiBhcyB0 aGUgb2JqZWN0IHN0YXRlIG1heSBjaGFuZ2UgZHVyaW5nIHRoaXMgY2FsbC4KKy8qIEEgbm9uYmxv Y2tpbmcgdmFyaWFudCBvZiB0aGUgYWJvdmUgd2FpdC4gTXVzdCBiZSBjYWxsZWQgcHJpb3IgdG8K KyAqIGFjcXVpcmluZyB0aGUgbXV0ZXggZm9yIHRoZSBvYmplY3QsIGFzIHRoZSBvYmplY3Qgc3Rh dGUgbWF5IGNoYW5nZQorICogZHVyaW5nIHRoaXMgY2FsbC4gQSByZWZlcmVuY2UgbXVzdCBiZSBo ZWxkIGJ5IHRoZSBjYWxsZXIgZm9yIHRoZSBvYmplY3QuCiAgKi8KIHN0YXRpYyBfX211c3RfY2hl Y2sgaW50Ci1pOTE1X2dlbV9vYmplY3Rfd2FpdF9yZW5kZXJpbmdfX25vbmJsb2NraW5nKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCi0JCQkJCSAgICBzdHJ1Y3QgaW50ZWxfcnBzX2Ns aWVudCAqcnBzLAotCQkJCQkgICAgYm9vbCByZWFkb25seSkKK19fdW5zYWZlX3dhaXRfcmVuZGVy aW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQlzdHJ1Y3QgaW50ZWxfcnBz X2NsaWVudCAqcnBzLAorCQkJYm9vbCByZWFkb25seSkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gb2JqLT5iYXNlLmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVz dHNbSTkxNV9OVU1fRU5HSU5FU107CiAJc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlOwog CXVuc2lnbmVkIGxvbmcgYWN0aXZlX21hc2s7Ci0JaW50IHJldCwgaSwgbiA9IDA7Ci0KLQlCVUdf T04oIW11dGV4X2lzX2xvY2tlZCgmZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKLQlCVUdfT04oIWRldl9w cml2LT5tbS5pbnRlcnJ1cHRpYmxlKTsKKwlpbnQgaWR4OwogCi0JYWN0aXZlX21hc2sgPSBpOTE1 X2dlbV9vYmplY3RfaXNfYWN0aXZlKG9iaik7CisJYWN0aXZlX21hc2sgPSBfX0k5MTVfQk9fQUNU SVZFKG9iaik7CiAJaWYgKCFhY3RpdmVfbWFzaykKIAkJcmV0dXJuIDA7CiAKQEAgLTM0MiwyNSAr MzM3LDE2IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3JlbmRlcmluZ19fbm9uYmxvY2tpbmcoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJYWN0aXZlID0gJm9iai0+bGFzdF93cml0 ZTsKIAl9CiAKLQlmb3JfZWFjaF9hY3RpdmUoYWN0aXZlX21hc2ssIGkpIHsKLQkJc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisJZm9yX2VhY2hfYWN0aXZlKGFjdGl2ZV9tYXNrLCBp ZHgpIHsKKwkJaW50IHJldDsKIAotCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfZ2V0KCZhY3RpdmVb aV0sCi0JCQkJCSAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7Ci0JCWlmIChyZXEpCi0J CQlyZXF1ZXN0c1tuKytdID0gcmVxOworCQlyZXQgPSBpOTE1X2dlbV9hY3RpdmVfd2FpdF91bmxv Y2tlZCgmYWN0aXZlW2lkeF0sCisJCQkJCQkgICAgdHJ1ZSwgTlVMTCwgcnBzKTsKKwkJaWYgKHJl dCkKKwkJCXJldHVybiByZXQ7CiAJfQogCi0JbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7Ci0JcmV0ID0gMDsKLQlmb3IgKGkgPSAwOyByZXQgPT0gMCAmJiBpIDwgbjsgaSsrKQotCQly ZXQgPSBfX2k5MTVfd2FpdF9yZXF1ZXN0KHJlcXVlc3RzW2ldLCB0cnVlLCBOVUxMLCBycHMpOwot CW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQotCWZvciAoaSA9IDA7IGkgPCBuOyBp KyspCi0JCWk5MTVfZ2VtX3JlcXVlc3RfcHV0KHJlcXVlc3RzW2ldKTsKLQotCXJldHVybiByZXQ7 CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfcnBzX2NsaWVudCAqdG9fcnBz X2NsaWVudChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCkBAIC0xMjE4LDEwICsxMjA0LDcgQEAgaTkx NV9nZW1fc2V0X2RvbWFpbl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAogCWludCByZXQ7CiAKIAkvKiBPbmx5IGhhbmRsZSBzZXR0aW5nIGRvbWFpbnMgdG8gdHlwZXMg dXNlZCBieSB0aGUgQ1BVLiAqLwotCWlmICh3cml0ZV9kb21haW4gJiBJOTE1X0dFTV9HUFVfRE9N QUlOUykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlpZiAocmVhZF9kb21haW5zICYgSTkxNV9HRU1f R1BVX0RPTUFJTlMpCisJaWYgKCh3cml0ZV9kb21haW4gfCByZWFkX2RvbWFpbnMpICYgSTkxNV9H RU1fR1BVX0RPTUFJTlMpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJLyogSGF2aW5nIHNvbWV0aGlu ZyBpbiB0aGUgd3JpdGUgZG9tYWluIGltcGxpZXMgaXQncyBpbiB0aGUgcmVhZApAQCAtMTIzMCwy NSArMTIxMywyMSBAQCBpOTE1X2dlbV9zZXRfZG9tYWluX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCiAJaWYgKHdyaXRlX2RvbWFpbiAhPSAwICYmIHJlYWRfZG9tYWlu cyAhPSB3cml0ZV9kb21haW4pCiAJCXJldHVybiAtRUlOVkFMOwogCi0JcmV0ID0gaTkxNV9tdXRl eF9sb2NrX2ludGVycnVwdGlibGUoZGV2KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCiAJ b2JqID0gaTkxNV9nZW1fb2JqZWN0X2xvb2t1cChmaWxlLCBhcmdzLT5oYW5kbGUpOwotCWlmICgh b2JqKSB7Ci0JCXJldCA9IC1FTk9FTlQ7Ci0JCWdvdG8gdW5sb2NrOwotCX0KKwlpZiAoIW9iaikK KwkJcmV0dXJuIC1FTk9FTlQ7CiAKIAkvKiBUcnkgdG8gZmx1c2ggdGhlIG9iamVjdCBvZmYgdGhl IEdQVSB3aXRob3V0IGhvbGRpbmcgdGhlIGxvY2suCiAJICogV2Ugd2lsbCByZXBlYXQgdGhlIGZs dXNoIGhvbGRpbmcgdGhlIGxvY2sgaW4gdGhlIG5vcm1hbCBtYW5uZXIKIAkgKiB0byBjYXRjaCBj YXNlcyB3aGVyZSB3ZSBhcmUgZ2F6dW1wZWQuCiAJICovCi0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0 X3dhaXRfcmVuZGVyaW5nX19ub25ibG9ja2luZyhvYmosCi0JCQkJCQkJICB0b19ycHNfY2xpZW50 KGZpbGUpLAotCQkJCQkJCSAgIXdyaXRlX2RvbWFpbik7CisJcmV0ID0gX191bnNhZmVfd2FpdF9y ZW5kZXJpbmcob2JqLCB0b19ycHNfY2xpZW50KGZpbGUpLCAhd3JpdGVfZG9tYWluKTsKKwlpZiAo cmV0KQorCQlnb3RvIG91dF91bmxvY2tlZDsKKworCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRl cnJ1cHRpYmxlKGRldik7CiAJaWYgKHJldCkKLQkJZ290byB1bnJlZjsKKwkJZ290byBvdXRfdW5s b2NrZWQ7CiAKIAlpZiAocmVhZF9kb21haW5zICYgSTkxNV9HRU1fRE9NQUlOX0dUVCkKIAkJcmV0 ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKG9iaiwgd3JpdGVfZG9tYWluICE9 IDApOwpAQCAtMTI2MCwxMSArMTIzOSwxMyBAQCBpOTE1X2dlbV9zZXRfZG9tYWluX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkJCXdyaXRlX2RvbWFpbiA9PSBJ OTE1X0dFTV9ET01BSU5fR1RUID8KIAkJCQkJT1JJR0lOX0dUVCA6IE9SSUdJTl9DUFUpOwogCi11 bnJlZjoKIAlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7Ci11bmxvY2s6CiAJbXV0ZXhfdW5sb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJcmV0dXJuIHJldDsKKworb3V0X3VubG9ja2VkOgorCWk5 MTVfZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQob2JqKTsKKwlyZXR1cm4gcmV0OwogfQogCiAvKioK QEAgLTEzOTcsNiArMTM3OCwxNSBAQCBpbnQgaTkxNV9nZW1fZmF1bHQoc3RydWN0IHZtX2FyZWFf c3RydWN0ICp2bWEsIHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCWludCByZXQgPSAwOwogCWJvb2wg d3JpdGUgPSAhISh2bWYtPmZsYWdzICYgRkFVTFRfRkxBR19XUklURSk7CiAKKwkvKiBUcnkgdG8g Zmx1c2ggdGhlIG9iamVjdCBvZmYgdGhlIEdQVSBmaXJzdCB3aXRob3V0IGhvbGRpbmcgdGhlIGxv Y2suCisJICogVXBvbiBhY3F1aXJpbmcgdGhlIGxvY2ssIHdlIHdpbGwgcGVyZm9ybSBvdXIgc2Fu aXR5IGNoZWNrcyBhbmQgdGhlbgorCSAqIHJlcGVhdCB0aGUgZmx1c2ggaG9sZGluZyB0aGUgbG9j ayBpbiB0aGUgbm9ybWFsIG1hbm5lciB0byBjYXRjaCBjYXNlcworCSAqIHdoZXJlIHdlIGFyZSBn YXp1bXBlZC4KKwkgKi8KKwlyZXQgPSBfX3Vuc2FmZV93YWl0X3JlbmRlcmluZyhvYmosIE5VTEws ICF3cml0ZSk7CisJaWYgKHJldCkKKwkJZ290byBlcnI7CisKIAlpbnRlbF9ydW50aW1lX3BtX2dl dChkZXZfcHJpdik7CiAKIAkvKiBXZSBkb24ndCB1c2Ugdm1mLT5wZ29mZiBzaW5jZSB0aGF0IGhh cyB0aGUgZmFrZSBvZmZzZXQgKi8KQEAgLTE0MDUsMjMgKzEzOTUsMTQgQEAgaW50IGk5MTVfZ2Vt X2ZhdWx0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikK IAogCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldik7CiAJaWYgKHJldCkK LQkJZ290byBvdXQ7CisJCWdvdG8gZXJyX3JwbTsKIAogCXRyYWNlX2k5MTVfZ2VtX29iamVjdF9m YXVsdChvYmosIHBhZ2Vfb2Zmc2V0LCB0cnVlLCB3cml0ZSk7CiAKLQkvKiBUcnkgdG8gZmx1c2gg dGhlIG9iamVjdCBvZmYgdGhlIEdQVSBmaXJzdCB3aXRob3V0IGhvbGRpbmcgdGhlIGxvY2suCi0J ICogVXBvbiByZWFjcXVpcmluZyB0aGUgbG9jaywgd2Ugd2lsbCBwZXJmb3JtIG91ciBzYW5pdHkg Y2hlY2tzIGFuZCB0aGVuCi0JICogcmVwZWF0IHRoZSBmbHVzaCBob2xkaW5nIHRoZSBsb2NrIGlu IHRoZSBub3JtYWwgbWFubmVyIHRvIGNhdGNoIGNhc2VzCi0JICogd2hlcmUgd2UgYXJlIGdhenVt cGVkLgotCSAqLwotCXJldCA9IGk5MTVfZ2VtX29iamVjdF93YWl0X3JlbmRlcmluZ19fbm9uYmxv Y2tpbmcob2JqLCBOVUxMLCAhd3JpdGUpOwotCWlmIChyZXQpCi0JCWdvdG8gdW5sb2NrOwotCiAJ LyogQWNjZXNzIHRvIHNub29wYWJsZSBwYWdlcyB0aHJvdWdoIHRoZSBHVFQgaXMgaW5jb2hlcmVu dC4gKi8KIAlpZiAob2JqLT5jYWNoZV9sZXZlbCAhPSBJOTE1X0NBQ0hFX05PTkUgJiYgIUhBU19M TEMoZGV2KSkgewogCQlyZXQgPSAtRUZBVUxUOwotCQlnb3RvIHVubG9jazsKKwkJZ290byBlcnJf dW5sb2NrOwogCX0KIAogCS8qIFVzZSBhIHBhcnRpYWwgdmlldyBpZiB0aGUgb2JqZWN0IGlzIGJp Z2dlciB0aGFuIHRoZSBhcGVydHVyZS4gKi8KQEAgLTE0NDIsMTUgKzE0MjMsMTUgQEAgaW50IGk5 MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fZmF1bHQg KnZtZikKIAkvKiBOb3cgcGluIGl0IGludG8gdGhlIEdUVCBpZiBuZWVkZWQgKi8KIAlyZXQgPSBp OTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCAmdmlldywgMCwgMCwgUElOX01BUFBBQkxFKTsK IAlpZiAocmV0KQotCQlnb3RvIHVubG9jazsKKwkJZ290byBlcnJfdW5sb2NrOwogCiAJcmV0ID0g aTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKG9iaiwgd3JpdGUpOwogCWlmIChyZXQp Ci0JCWdvdG8gdW5waW47CisJCWdvdG8gZXJyX3VucGluOwogCiAJcmV0ID0gaTkxNV9nZW1fb2Jq ZWN0X2dldF9mZW5jZShvYmopOwogCWlmIChyZXQpCi0JCWdvdG8gdW5waW47CisJCWdvdG8gZXJy X3VucGluOwogCiAJLyogRmluYWxseSwgcmVtYXAgaXQgdXNpbmcgdGhlIG5ldyBHVFQgb2Zmc2V0 ICovCiAJcGZuID0gZ2d0dC0+bWFwcGFibGVfYmFzZSArCkBAIC0xNDk1LDExICsxNDc2LDEzIEBA IGludCBpOTE1X2dlbV9mYXVsdChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHZt X2ZhdWx0ICp2bWYpCiAJCQkJCSAgICAodW5zaWduZWQgbG9uZyl2bWYtPnZpcnR1YWxfYWRkcmVz cywKIAkJCQkJICAgIHBmbiArIHBhZ2Vfb2Zmc2V0KTsKIAl9Ci11bnBpbjoKK2Vycl91bnBpbjoK IAlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbl92aWV3KG9iaiwgJnZpZXcpOwotdW5sb2NrOgor ZXJyX3VubG9jazoKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKLW91dDoKK2Vy cl9ycG06CisJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOworZXJyOgogCXN3aXRjaCAo cmV0KSB7CiAJY2FzZSAtRUlPOgogCQkvKgpAQCAtMTU0MCw4ICsxNTIzLDYgQEAgb3V0OgogCQly ZXQgPSBWTV9GQVVMVF9TSUdCVVM7CiAJCWJyZWFrOwogCX0KLQotCWludGVsX3J1bnRpbWVfcG1f cHV0KGRldl9wcml2KTsKIAlyZXR1cm4gcmV0OwogfQogCi0tIAoyLjguMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==