From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 23/41] drm/i915: Acquire the backing storage outside of struct_mutex in set-domain Date: Thu, 20 Oct 2016 16:04:05 +0100 Message-ID: <20161020150423.4560-24-chris@chris-wilson.co.uk> References: <20161020150423.4560-1-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-lf0-x244.google.com (mail-lf0-x244.google.com [IPv6:2a00:1450:4010:c07::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 63E746EBAC for ; Thu, 20 Oct 2016 15:04:55 +0000 (UTC) Received: by mail-lf0-x244.google.com with SMTP id b75so717796lfg.3 for ; Thu, 20 Oct 2016 08:04:55 -0700 (PDT) In-Reply-To: <20161020150423.4560-1-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 QXMgd2UgY2FuIGxvY2tsZXNzbHkgKHdlbGwgc3RydWN0X211dGV4LWxlc3NseSkgYWNxdWlyZSB0 aGUgYmFja2luZwpzdG9yYWdlLCBkbyBzbyBpbiBzZXQtZG9tYWluLWlvY3RsIHRvIHJlZHVjZSB0 aGUgY29udGVudGlvbiBvbiB0aGUKc3RydWN0X211dGV4LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5OiBKb29uYXMgTGFo dGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyB8IDk5ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgMzggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggYmEzMTFhMTA0NTY0Li42OTdhODM4MjM5 MjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMTQ1MSw2ICsxNDUxLDMwIEBAIHdyaXRl X29yaWdpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCB1bnNpZ25lZCBkb21haW4p CiAJCW9iai0+ZnJvbnRidWZmZXJfZ2d0dF9vcmlnaW4gOiBPUklHSU5fQ1BVKTsKIH0KIAorc3Rh dGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2J1bXBfaW5hY3RpdmVfZ2d0dChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1Owor CXN0cnVjdCBsaXN0X2hlYWQgKmxpc3Q7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisKKwlsaXN0 X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9iai0+dm1hX2xpc3QsIG9ial9saW5rKSB7CisJCWlmICgh aTkxNV92bWFfaXNfZ2d0dCh2bWEpKQorCQkJY29udGludWU7CisKKwkJaWYgKGk5MTVfdm1hX2lz X2FjdGl2ZSh2bWEpKQorCQkJY29udGludWU7CisKKwkJaWYgKCFkcm1fbW1fbm9kZV9hbGxvY2F0 ZWQoJnZtYS0+bm9kZSkpCisJCQljb250aW51ZTsKKworCQlsaXN0X21vdmVfdGFpbCgmdm1hLT52 bV9saW5rLCAmdm1hLT52bS0+aW5hY3RpdmVfbGlzdCk7CisJfQorCisJaTkxNSA9IHRvX2k5MTUo b2JqLT5iYXNlLmRldik7CisJbGlzdCA9IG9iai0+YmluZF9jb3VudCA/ICZpOTE1LT5tbS5ib3Vu ZF9saXN0IDogJmk5MTUtPm1tLnVuYm91bmRfbGlzdDsKKwlsaXN0X21vdmVfdGFpbCgmb2JqLT5n bG9iYWxfbGlzdCwgbGlzdCk7Cit9CisKIC8qKgogICogQ2FsbGVkIHdoZW4gdXNlciBzcGFjZSBw cmVwYXJlcyB0byB1c2UgYW4gb2JqZWN0IHdpdGggdGhlIENQVSwgZWl0aGVyCiAgKiB0aHJvdWdo IHRoZSBtbWFwIGlvY3RsJ3MgbWFwcGluZyBvciBhIEdUVCBtYXBwaW5nLgpAQCAtMTQ2Niw3ICsx NDkwLDcgQEAgaTkxNV9nZW1fc2V0X2RvbWFpbl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJdWludDMy X3QgcmVhZF9kb21haW5zID0gYXJncy0+cmVhZF9kb21haW5zOwogCXVpbnQzMl90IHdyaXRlX2Rv bWFpbiA9IGFyZ3MtPndyaXRlX2RvbWFpbjsKLQlpbnQgcmV0OworCWludCBlcnI7CiAKIAkvKiBP bmx5IGhhbmRsZSBzZXR0aW5nIGRvbWFpbnMgdG8gdHlwZXMgdXNlZCBieSB0aGUgQ1BVLiAqLwog CWlmICgod3JpdGVfZG9tYWluIHwgcmVhZF9kb21haW5zKSAmIEk5MTVfR0VNX0dQVV9ET01BSU5T KQpAQCAtMTQ4NiwzMyArMTUxMCw0OCBAQCBpOTE1X2dlbV9zZXRfZG9tYWluX2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJICogV2Ugd2lsbCByZXBlYXQgdGhlIGZs dXNoIGhvbGRpbmcgdGhlIGxvY2sgaW4gdGhlIG5vcm1hbCBtYW5uZXIKIAkgKiB0byBjYXRjaCBj YXNlcyB3aGVyZSB3ZSBhcmUgZ2F6dW1wZWQuCiAJICovCi0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0 X3dhaXQob2JqLAorCWVyciA9IGk5MTVfZ2VtX29iamVjdF93YWl0KG9iaiwKIAkJCQkgICBJOTE1 X1dBSVRfSU5URVJSVVBUSUJMRSB8CiAJCQkJICAgKHdyaXRlX2RvbWFpbiA/IEk5MTVfV0FJVF9B TEwgOiAwKSwKIAkJCQkgICBNQVhfU0NIRURVTEVfVElNRU9VVCwKIAkJCQkgICB0b19ycHNfY2xp ZW50KGZpbGUpKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycjsKKwlpZiAoZXJyKQorCQlnb3RvIG91 dF91bmxvY2tlZDsKIAotCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldik7 Ci0JaWYgKHJldCkKLQkJZ290byBlcnI7CisJLyogRmx1c2ggYW5kIGFjcXVpcmUgb2JqLT5wYWdl cyBzbyB0aGF0IHdlIGFyZSBjb2hlcmVudCB0aHJvdWdoCisJICogZGlyZWN0IGFjY2VzcyBpbiBt ZW1vcnkgd2l0aCBwcmV2aW91cyBjYWNoZWQgd3JpdGVzIHRocm91Z2gKKwkgKiBzaG1lbWZzIGFu ZCB0aGF0IG91ciBjYWNoZSBkb21haW4gdHJhY2tpbmcgcmVtYWlucyB2YWxpZC4KKwkgKiBGb3Ig ZXhhbXBsZSwgaWYgdGhlIG9iai0+ZmlscCB3YXMgbW92ZWQgdG8gc3dhcCB3aXRob3V0IHVzCisJ ICogYmVpbmcgbm90aWZpZWQgYW5kIHJlbGVhc2luZyB0aGUgcGFnZXMsIHdlIHdvdWxkIG1pc3Rh a2VubHkKKwkgKiBjb250aW51ZSB0byBhc3N1bWUgdGhhdCB0aGUgb2JqIHJlbWFpbmVkIG91dCBv ZiB0aGUgQ1BVIGNhY2hlZAorCSAqIGRvbWFpbi4KKwkgKi8KKwllcnIgPSBpOTE1X2dlbV9vYmpl Y3RfcGluX3BhZ2VzKG9iaik7CisJaWYgKGVycikKKwkJZ290byBvdXRfdW5sb2NrZWQ7CisKKwll cnIgPSBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZShkZXYpOworCWlmIChlcnIpCisJCWdv dG8gb3V0X3BhZ2VzOwogCiAJaWYgKHJlYWRfZG9tYWlucyAmIEk5MTVfR0VNX0RPTUFJTl9HVFQp Ci0JCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihvYmosIHdyaXRlX2Rv bWFpbiAhPSAwKTsKKwkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKG9i aiwgd3JpdGVfZG9tYWluICE9IDApOwogCWVsc2UKLQkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3Nl dF90b19jcHVfZG9tYWluKG9iaiwgd3JpdGVfZG9tYWluICE9IDApOworCQllcnIgPSBpOTE1X2dl bV9vYmplY3Rfc2V0X3RvX2NwdV9kb21haW4ob2JqLCB3cml0ZV9kb21haW4gIT0gMCk7CiAKLQlp ZiAod3JpdGVfZG9tYWluICE9IDApCi0JCWludGVsX2ZiX29ial9pbnZhbGlkYXRlKG9iaiwgd3Jp dGVfb3JpZ2luKG9iaiwgd3JpdGVfZG9tYWluKSk7CisJLyogQW5kIGJ1bXAgdGhlIExSVSBmb3Ig dGhpcyBhY2Nlc3MgKi8KKwlpOTE1X2dlbV9vYmplY3RfYnVtcF9pbmFjdGl2ZV9nZ3R0KG9iaik7 CiAKLQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7Ci0JcmV0dXJuIHJldDsKIAotZXJyOgorCWlmICh3cml0ZV9kb21haW4gIT0gMCkK KwkJaW50ZWxfZmJfb2JqX2ludmFsaWRhdGUob2JqLCB3cml0ZV9vcmlnaW4ob2JqLCB3cml0ZV9k b21haW4pKTsKKworb3V0X3BhZ2VzOgorCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmop Oworb3V0X3VubG9ja2VkOgogCWk5MTVfZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQob2JqKTsKLQly ZXR1cm4gcmV0OworCXJldHVybiBlcnI7CiB9CiAKIC8qKgpAQCAtMTczMyw2ICsxNzcyLDEwIEBA IGludCBpOTE1X2dlbV9mYXVsdChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmFyZWEsIHN0cnVjdCB2 bV9mYXVsdCAqdm1mKQogCWlmIChyZXQpCiAJCWdvdG8gZXJyOwogCisJcmV0ID0gaTkxNV9nZW1f b2JqZWN0X3Bpbl9wYWdlcyhvYmopOworCWlmIChyZXQpCisJCWdvdG8gZXJyOworCiAJaW50ZWxf cnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwogCiAJcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVy cnVwdGlibGUoZGV2KTsKQEAgLTE4MTUsNiArMTg1OCw3IEBAIGludCBpOTE1X2dlbV9mYXVsdChz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmFyZWEsIHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCW11dGV4 X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogZXJyX3JwbToKIAlpbnRlbF9ydW50aW1lX3Bt X3B1dChkZXZfcHJpdik7CisJaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CiBlcnI6 CiAJc3dpdGNoIChyZXQpIHsKIAljYXNlIC1FSU86CkBAIC0zMjcyLDI0ICszMzE2LDYgQEAgaTkx NV9nZW1fb2JqZWN0X2ZsdXNoX2NwdV93cml0ZV9kb21haW4oc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKIAkJCQkJICAgIEk5MTVfR0VNX0RPTUFJTl9DUFUpOwogfQogCi1zdGF0aWMg dm9pZCBpOTE1X2dlbV9vYmplY3RfYnVtcF9pbmFjdGl2ZV9nZ3R0KHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopCi17Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0KLQlsaXN0X2Zvcl9l YWNoX2VudHJ5KHZtYSwgJm9iai0+dm1hX2xpc3QsIG9ial9saW5rKSB7Ci0JCWlmICghaTkxNV92 bWFfaXNfZ2d0dCh2bWEpKQotCQkJY29udGludWU7Ci0KLQkJaWYgKGk5MTVfdm1hX2lzX2FjdGl2 ZSh2bWEpKQotCQkJY29udGludWU7Ci0KLQkJaWYgKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZt YS0+bm9kZSkpCi0JCQljb250aW51ZTsKLQotCQlsaXN0X21vdmVfdGFpbCgmdm1hLT52bV9saW5r LCAmdm1hLT52bS0+aW5hY3RpdmVfbGlzdCk7Ci0JfQotfQotCiAvKioKICAqIE1vdmVzIGEgc2lu Z2xlIG9iamVjdCB0byB0aGUgR1RUIHJlYWQsIGFuZCBwb3NzaWJseSB3cml0ZSBkb21haW4uCiAg KiBAb2JqOiBvYmplY3QgdG8gYWN0IG9uCkBAIC0zMzQ1LDcgKzMzNzEsNyBAQCBpOTE1X2dlbV9v YmplY3Rfc2V0X3RvX2d0dF9kb21haW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwg Ym9vbCB3cml0ZSkKIAkvKiBJdCBzaG91bGQgbm93IGJlIG91dCBvZiBhbnkgb3RoZXIgd3JpdGUg ZG9tYWlucywgYW5kIHdlIGNhbiB1cGRhdGUKIAkgKiB0aGUgZG9tYWluIHZhbHVlcyBmb3Igb3Vy IGNoYW5nZXMuCiAJICovCi0JQlVHX09OKChvYmotPmJhc2Uud3JpdGVfZG9tYWluICYgfkk5MTVf R0VNX0RPTUFJTl9HVFQpICE9IDApOworCUdFTV9CVUdfT04oKG9iai0+YmFzZS53cml0ZV9kb21h aW4gJiB+STkxNV9HRU1fRE9NQUlOX0dUVCkgIT0gMCk7CiAJb2JqLT5iYXNlLnJlYWRfZG9tYWlu cyB8PSBJOTE1X0dFTV9ET01BSU5fR1RUOwogCWlmICh3cml0ZSkgewogCQlvYmotPmJhc2UucmVh ZF9kb21haW5zID0gSTkxNV9HRU1fRE9NQUlOX0dUVDsKQEAgLTMzNTcsMTAgKzMzODMsNyBAQCBp OTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwgYm9vbCB3cml0ZSkKIAkJCQkJICAgIG9sZF9yZWFkX2RvbWFpbnMsCiAJCQkJCSAg ICBvbGRfd3JpdGVfZG9tYWluKTsKIAotCS8qIEFuZCBidW1wIHRoZSBMUlUgZm9yIHRoaXMgYWNj ZXNzICovCi0JaTkxNV9nZW1fb2JqZWN0X2J1bXBfaW5hY3RpdmVfZ2d0dChvYmopOwogCWk5MTVf Z2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTM3MTks NyArMzc0Miw3IEBAIGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fY3B1X2RvbWFpbihzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLCBib29sIHdyaXRlKQogCS8qIEl0IHNob3VsZCBub3cgYmUg b3V0IG9mIGFueSBvdGhlciB3cml0ZSBkb21haW5zLCBhbmQgd2UgY2FuIHVwZGF0ZQogCSAqIHRo ZSBkb21haW4gdmFsdWVzIGZvciBvdXIgY2hhbmdlcy4KIAkgKi8KLQlCVUdfT04oKG9iai0+YmFz ZS53cml0ZV9kb21haW4gJiB+STkxNV9HRU1fRE9NQUlOX0NQVSkgIT0gMCk7CisJR0VNX0JVR19P Tigob2JqLT5iYXNlLndyaXRlX2RvbWFpbiAmIH5JOTE1X0dFTV9ET01BSU5fQ1BVKSAhPSAwKTsK IAogCS8qIElmIHdlJ3JlIHdyaXRpbmcgdGhyb3VnaCB0aGUgQ1BVLCB0aGVuIHRoZSBHUFUgcmVh ZCBkb21haW5zIHdpbGwKIAkgKiBuZWVkIHRvIGJlIGludmFsaWRhdGVkIGF0IG5leHQgdXNlLgot LSAKMi45LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=