From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v2 15/37] drm/i915/lmem: support CPU relocations Date: Thu, 27 Jun 2019 21:56:11 +0100 Message-ID: <20190627205633.1143-16-matthew.auld@intel.com> References: <20190627205633.1143-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id B4B066E843 for ; Thu, 27 Jun 2019 20:56:53 +0000 (UTC) In-Reply-To: <20190627205633.1143-1-matthew.auld@intel.com> 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 QWRkIExNRU0gc3VwcG9ydCBmb3IgdGhlIENQVSByZWxvYyBwYXRoLiBXaGVuIGRvaW5nIHJlbG9j YXRpb25zIHdlIGhhdmUKYm90aCBhIEdQVSBhbmQgQ1BVIHJlbG9jIHBhdGgsIGFzIHdlbGwgYXMg c29tZSBkZWJ1Z2dpbmcgb3B0aW9ucyB0byBmb3JjZSBhCnBhcnRpY3VsYXIgcGF0aC4gVGhlIEdQ VSByZWxvYyBwYXRoIGlzIHByZWZlcnJlZCB3aGVuIHRoZSBvYmplY3QKaXMgbm90IGN1cnJlbnRs eSBpZGxlLCBvdGhlcndpc2Ugd2UgdXNlIHRoZSBDUFUgcmVsb2MgcGF0aC4gU2luY2Ugd2UKY2Fu J3Qga21hcCB0aGUgb2JqZWN0LCBhbmQgdGhlIG1hcHBhYmxlIGFwZXJ0dXJlIG1pZ2h0IG5vdCBi ZSBhdmFpbGFibGUsCmFkZCBzdXBwb3J0IGZvciBtYXBwaW5nIGl0IHRocm91Z2ggTE1FTUJBUi4K ClNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KQ2M6 IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IEFi ZGllbCBKYW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4KQ2M6IFJvZHJp Z28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KLS0tCiAuLi4vZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgICAgfCA2OSArKysrKysrKysrKysrKysrLS0tCiAxIGZp bGUgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKaW5kZXggMWM1ZGZiZmFk NzFiLi5iNzI0MTQzZTg4ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX2V4ZWNidWZmZXIuYwpAQCAtMjUxLDYgKzI1MSw3IEBAIHN0cnVjdCBpOTE1X2V4ZWNidWZm ZXIgewogCQlib29sIGhhc19sbGMgOiAxOwogCQlib29sIGhhc19mZW5jZSA6IDE7CiAJCWJvb2wg bmVlZHNfdW5mZW5jZWQgOiAxOworCQlib29sIGlzX2xtZW0gOiAxOwogCiAJCXN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJxOwogCQl1MzIgKnJxX2NtZDsKQEAgLTk2Myw2ICs5NjQsNyBAQCBzdGF0aWMg dm9pZCByZWxvY19jYWNoZV9pbml0KHN0cnVjdCByZWxvY19jYWNoZSAqY2FjaGUsCiAJY2FjaGUt PnVzZV82NGJpdF9yZWxvYyA9IEhBU182NEJJVF9SRUxPQyhpOTE1KTsKIAljYWNoZS0+aGFzX2Zl bmNlID0gY2FjaGUtPmdlbiA8IDQ7CiAJY2FjaGUtPm5lZWRzX3VuZmVuY2VkID0gSU5URUxfSU5G TyhpOTE1KS0+dW5mZW5jZWRfbmVlZHNfYWxpZ25tZW50OworCWNhY2hlLT5pc19sbWVtID0gZmFs c2U7CiAJY2FjaGUtPm5vZGUuYWxsb2NhdGVkID0gZmFsc2U7CiAJY2FjaGUtPnJxID0gTlVMTDsK IAljYWNoZS0+cnFfc2l6ZSA9IDA7CkBAIC0xMDIwLDE2ICsxMDIyLDIzIEBAIHN0YXRpYyB2b2lk IHJlbG9jX2NhY2hlX3Jlc2V0KHN0cnVjdCByZWxvY19jYWNoZSAqY2FjaGUpCiAJCWk5MTVfZ2Vt X29iamVjdF9maW5pc2hfYWNjZXNzKChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqKWNhY2hl LT5ub2RlLm1tKTsKIAl9IGVsc2UgewogCQl3bWIoKTsKLQkJaW9fbWFwcGluZ191bm1hcF9hdG9t aWMoKHZvaWQgX19pb21lbSAqKXZhZGRyKTsKLQkJaWYgKGNhY2hlLT5ub2RlLmFsbG9jYXRlZCkg ewotCQkJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9IGNhY2hlX3RvX2dndHQoY2FjaGUpOwotCi0J CQlnZ3R0LT52bS5jbGVhcl9yYW5nZSgmZ2d0dC0+dm0sCi0JCQkJCSAgICAgY2FjaGUtPm5vZGUu c3RhcnQsCi0JCQkJCSAgICAgY2FjaGUtPm5vZGUuc2l6ZSk7Ci0JCQlkcm1fbW1fcmVtb3ZlX25v ZGUoJmNhY2hlLT5ub2RlKTsKKworCQlpZiAoY2FjaGUtPmlzX2xtZW0pIHsKKwkJCWlvX21hcHBp bmdfdW5tYXBfYXRvbWljKCh2b2lkIF9faW9tZW0gKil2YWRkcik7CisJCQlpOTE1X2dlbV9vYmpl Y3RfdW5waW5fcGFnZXMoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICopY2FjaGUtPm5vZGUu bW0pOworCQkJY2FjaGUtPmlzX2xtZW0gPSBmYWxzZTsKIAkJfSBlbHNlIHsKLQkJCWk5MTVfdm1h X3VucGluKChzdHJ1Y3QgaTkxNV92bWEgKiljYWNoZS0+bm9kZS5tbSk7CisJCQlpb19tYXBwaW5n X3VubWFwX2F0b21pYygodm9pZCBfX2lvbWVtICopdmFkZHIpOworCQkJaWYgKGNhY2hlLT5ub2Rl LmFsbG9jYXRlZCkgeworCQkJCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSBjYWNoZV90b19nZ3R0 KGNhY2hlKTsKKworCQkJCWdndHQtPnZtLmNsZWFyX3JhbmdlKCZnZ3R0LT52bSwKKwkJCQkJCSAg ICAgY2FjaGUtPm5vZGUuc3RhcnQsCisJCQkJCQkgICAgIGNhY2hlLT5ub2RlLnNpemUpOworCQkJ CWRybV9tbV9yZW1vdmVfbm9kZSgmY2FjaGUtPm5vZGUpOworCQkJfSBlbHNlIHsKKwkJCQlpOTE1 X3ZtYV91bnBpbigoc3RydWN0IGk5MTVfdm1hICopY2FjaGUtPm5vZGUubW0pOworCQkJfQogCQl9 CiAJfQogCkBAIC0xMDY5LDYgKzEwNzgsNDAgQEAgc3RhdGljIHZvaWQgKnJlbG9jX2ttYXAoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlyZXR1cm4gdmFkZHI7CiB9CiAKK3N0YXRp YyB2b2lkICpyZWxvY19sbWVtKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQlz dHJ1Y3QgcmVsb2NfY2FjaGUgKmNhY2hlLAorCQkJdW5zaWduZWQgbG9uZyBwYWdlKQoreworCXZv aWQgKnZhZGRyOworCWludCBlcnI7CisKKwlHRU1fQlVHX09OKHVzZV9jcHVfcmVsb2MoY2FjaGUs IG9iaikpOworCisJaWYgKGNhY2hlLT52YWRkcikgeworCQlpb19tYXBwaW5nX3VubWFwX2F0b21p Yygodm9pZCBfX2ZvcmNlIF9faW9tZW0gKikgdW5tYXNrX3BhZ2UoY2FjaGUtPnZhZGRyKSk7CisJ fSBlbHNlIHsKKwkJaTkxNV9nZW1fb2JqZWN0X2xvY2sob2JqKTsKKwkJZXJyID0gaTkxNV9nZW1f b2JqZWN0X3NldF90b193Y19kb21haW4ob2JqLCB0cnVlKTsKKwkJaTkxNV9nZW1fb2JqZWN0X3Vu bG9jayhvYmopOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKKworCQllcnIg PSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CisJCWlmIChlcnIpCisJCQlyZXR1cm4g RVJSX1BUUihlcnIpOworCisJCWNhY2hlLT5ub2RlLm1tID0gKHZvaWQgKilvYmo7CisJCWNhY2hl LT5pc19sbWVtID0gdHJ1ZTsKKwl9CisKKwl2YWRkciA9IGk5MTVfZ2VtX29iamVjdF9sbWVtX2lv X21hcF9wYWdlKG9iaiwgcGFnZSk7CisKKwljYWNoZS0+dmFkZHIgPSAodW5zaWduZWQgbG9uZyl2 YWRkcjsKKwljYWNoZS0+cGFnZSA9IHBhZ2U7CisKKwlyZXR1cm4gdmFkZHI7Cit9CisKIHN0YXRp YyB2b2lkICpyZWxvY19pb21hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJ IHN0cnVjdCByZWxvY19jYWNoZSAqY2FjaGUsCiAJCQkgdW5zaWduZWQgbG9uZyBwYWdlKQpAQCAt MTE0NSw4ICsxMTg4LDEyIEBAIHN0YXRpYyB2b2lkICpyZWxvY192YWRkcihzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAogCQl2YWRkciA9IHVubWFza19wYWdlKGNhY2hlLT52YWRkcik7 CiAJfSBlbHNlIHsKIAkJdmFkZHIgPSBOVUxMOwotCQlpZiAoKGNhY2hlLT52YWRkciAmIEtNQVAp ID09IDApCi0JCQl2YWRkciA9IHJlbG9jX2lvbWFwKG9iaiwgY2FjaGUsIHBhZ2UpOworCQlpZiAo KGNhY2hlLT52YWRkciAmIEtNQVApID09IDApIHsKKwkJCWlmIChpOTE1X2dlbV9vYmplY3RfaXNf bG1lbShvYmopKQorCQkJCXZhZGRyID0gcmVsb2NfbG1lbShvYmosIGNhY2hlLCBwYWdlKTsKKwkJ CWVsc2UKKwkJCQl2YWRkciA9IHJlbG9jX2lvbWFwKG9iaiwgY2FjaGUsIHBhZ2UpOworCQl9CiAJ CWlmICghdmFkZHIpCiAJCQl2YWRkciA9IHJlbG9jX2ttYXAob2JqLCBjYWNoZSwgcGFnZSk7CiAJ fQotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n Zng=