From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 24/38] drm/i915: Do a nonblocking wait first in pread/pwrite Date: Fri, 3 Jun 2016 17:55:39 +0100 Message-ID: <1464972953-2726-25-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-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 320626EE95 for ; Fri, 3 Jun 2016 16:56:23 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id e3so715453wme.2 for ; Fri, 03 Jun 2016 09:56:23 -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 SWYgd2UgdHJ5IGFuZCByZWFkIG9yIHdyaXRlIHRvIGFuIGFjdGl2ZSByZXF1ZXN0LCB3ZSBmaXJz dCBtdXN0IHdhaXQKdXBvbiB0aGUgR1BVIGNvbXBsZXRpbmcgdGhhdCByZXF1ZXN0LiBMZXQncyBk byB0aGF0IHdpdGhvdXQgaG9sZGluZyB0aGUKbXV0ZXggKGFuZCBzbyBhbGxvdyBzb21lb25lIGVs c2UgdG8gYWNjZXNzIHRoZSBHUFUgd2hpbHN0IHdlIHdhaXQpLiBVcG4KY29tcGxldGlvbiwgd2Ug d2lsbCByZWFjcXVpcmUgdGhlIG11dGV4IGFuZCBvbmx5IHRoZW4gc3RhcnQgdGhlCm9wZXJhdGlv biAoaS5lLiB3ZSBkbyBub3QgcmVseSBvbiBzdGF0ZSBmcm9tIGJlZm9yZSBkcm9wcGluZyB0aGUg bXV0ZXgpLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyB8IDY2ICsrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzcgaW5z ZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXgg OThhYTBhN2M5MWYwLi40YjE3YWFhYThkY2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAt NzczLDIxICs3NzMsMTUgQEAgaTkxNV9nZW1fcHJlYWRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIAkJICAgICAgIGFyZ3MtPnNpemUpKQogCQlyZXR1cm4gLUVGQVVM VDsKIAotCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldik7Ci0JaWYgKHJl dCkKLQkJcmV0dXJuIHJldDsKLQogCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9sb29rdXAoZmlsZSwg YXJncy0+aGFuZGxlKTsKLQlpZiAoIW9iaikgewotCQlyZXQgPSAtRU5PRU5UOwotCQlnb3RvIHVu bG9jazsKLQl9CisJaWYgKCFvYmopCisJCXJldHVybiAtRU5PRU5UOwogCiAJLyogQm91bmRzIGNo ZWNrIHNvdXJjZS4gICovCiAJaWYgKGFyZ3MtPm9mZnNldCA+IG9iai0+YmFzZS5zaXplIHx8CiAJ ICAgIGFyZ3MtPnNpemUgPiBvYmotPmJhc2Uuc2l6ZSAtIGFyZ3MtPm9mZnNldCkgewogCQlyZXQg PSAtRUlOVkFMOwotCQlnb3RvIG91dDsKKwkJZ290byBvdXRfdW5sb2NrZWQ7CiAJfQogCiAJLyog cHJpbWUgb2JqZWN0cyBoYXZlIG5vIGJhY2tpbmcgZmlscCB0byBHRU0gcHJlYWQvcHdyaXRlCkBA IC03OTUsMTcgKzc4OSwyNyBAQCBpOTE1X2dlbV9wcmVhZF9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAogCSAqLwogCWlmICghb2JqLT5iYXNlLmZpbHApIHsKIAkJcmV0 ID0gLUVJTlZBTDsKLQkJZ290byBvdXQ7CisJCWdvdG8gb3V0X3VubG9ja2VkOwogCX0KIAotCXRy YWNlX2k5MTVfZ2VtX29iamVjdF9wcmVhZChvYmosIGFyZ3MtPm9mZnNldCwgYXJncy0+c2l6ZSk7 CisJcmV0ID0gX191bnNhZmVfd2FpdF9yZW5kZXJpbmcob2JqLCB0b19ycHNfY2xpZW50KGZpbGUp LCB0cnVlKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF91bmxvY2tlZDsKKworCXJldCA9IGk5MTVf bXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldik7CisJaWYgKHJldCkKKwkJZ290byBvdXRfdW5s b2NrZWQ7CiAKKwl0cmFjZV9pOTE1X2dlbV9vYmplY3RfcHJlYWQob2JqLCBhcmdzLT5vZmZzZXQs IGFyZ3MtPnNpemUpOwogCXJldCA9IGk5MTVfZ2VtX3NobWVtX3ByZWFkKGRldiwgb2JqLCBhcmdz LCBmaWxlKTsKIAotb3V0OgogCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKLXVubG9jazoKIAlt dXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKKworCXJldHVybiByZXQ7CisKK291dF91 bmxvY2tlZDoKKwlpOTE1X2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKG9iaik7CiAJcmV0dXJuIHJl dDsKIH0KIApAQCAtMTEyNywyMyArMTEzMSwxNSBAQCBpOTE1X2dlbV9wd3JpdGVfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCXJldHVybiAtRUZBVUxUOwogCX0K IAotCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKLQotCXJldCA9IGk5MTVfbXV0ZXhf bG9ja19pbnRlcnJ1cHRpYmxlKGRldik7Ci0JaWYgKHJldCkKLQkJZ290byBwdXRfcnBtOwotCiAJ b2JqID0gaTkxNV9nZW1fb2JqZWN0X2xvb2t1cChmaWxlLCBhcmdzLT5oYW5kbGUpOwotCWlmICgh b2JqKSB7Ci0JCXJldCA9IC1FTk9FTlQ7Ci0JCWdvdG8gdW5sb2NrOwotCX0KKwlpZiAoIW9iaikK KwkJcmV0dXJuIC1FTk9FTlQ7CiAKIAkvKiBCb3VuZHMgY2hlY2sgZGVzdGluYXRpb24uICovCiAJ aWYgKGFyZ3MtPm9mZnNldCA+IG9iai0+YmFzZS5zaXplIHx8CiAJICAgIGFyZ3MtPnNpemUgPiBv YmotPmJhc2Uuc2l6ZSAtIGFyZ3MtPm9mZnNldCkgewogCQlyZXQgPSAtRUlOVkFMOwotCQlnb3Rv IG91dDsKKwkJZ290byBvdXRfdW5sb2NrZWQ7CiAJfQogCiAJLyogcHJpbWUgb2JqZWN0cyBoYXZl IG5vIGJhY2tpbmcgZmlscCB0byBHRU0gcHJlYWQvcHdyaXRlCkBAIC0xMTUxLDExICsxMTQ3LDIw IEBAIGk5MTVfZ2VtX3B3cml0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAogCSAqLwogCWlmICghb2JqLT5iYXNlLmZpbHApIHsKIAkJcmV0ID0gLUVJTlZBTDsKLQkJ Z290byBvdXQ7CisJCWdvdG8gb3V0X3VubG9ja2VkOwogCX0KIAotCXRyYWNlX2k5MTVfZ2VtX29i amVjdF9wd3JpdGUob2JqLCBhcmdzLT5vZmZzZXQsIGFyZ3MtPnNpemUpOworCXJldCA9IF9fdW5z YWZlX3dhaXRfcmVuZGVyaW5nKG9iaiwgdG9fcnBzX2NsaWVudChmaWxlKSwgZmFsc2UpOworCWlm IChyZXQpCisJCWdvdG8gb3V0X3VubG9ja2VkOworCisJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2 X3ByaXYpOwogCisJcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoZGV2KTsKKwlp ZiAocmV0KQorCQlnb3RvIG91dF9ycG07CisKKwl0cmFjZV9pOTE1X2dlbV9vYmplY3RfcHdyaXRl KG9iaiwgYXJncy0+b2Zmc2V0LCBhcmdzLT5zaXplKTsKIAlyZXQgPSAtRUZBVUxUOwogCS8qIFdl IGNhbiBvbmx5IGRvIHRoZSBHVFQgcHdyaXRlIG9uIHVudGlsZWQgYnVmZmVycywgYXMgb3RoZXJ3 aXNlCiAJICogaXQgd291bGQgZW5kIHVwIGdvaW5nIHRocm91Z2ggdGhlIGZlbmNlZCBhY2Nlc3Ms IGFuZCB3ZSdsbCBnZXQKQEAgLTExNzksMTQgKzExODQsMTcgQEAgaTkxNV9nZW1fcHdyaXRlX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQlyZXQgPSBpOTE1X2dl bV9zaG1lbV9wd3JpdGUoZGV2LCBvYmosIGFyZ3MsIGZpbGUpOwogCX0KIAotb3V0OgogCWk5MTVf Z2VtX29iamVjdF9wdXQob2JqKTsKLXVubG9jazoKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0 X211dGV4KTsKLXB1dF9ycG06CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwogCiAJ cmV0dXJuIHJldDsKKworb3V0X3JwbToKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7 CitvdXRfdW5sb2NrZWQ6CisJaTkxNV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmopOworCXJl dHVybiByZXQ7CiB9CiAKIC8qKgotLSAKMi44LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=