From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 14/20] drm/i915/gtt: Lazily allocate page directories for gen7 Date: Thu, 7 Jun 2018 10:58:09 +0100 Message-ID: <20180607095815.10938-15-chris@chris-wilson.co.uk> References: <20180607095815.10938-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 fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 173C06F200 for ; Thu, 7 Jun 2018 09:59:40 +0000 (UTC) In-Reply-To: <20180607095815.10938-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 QXMgd2Ugd2VyZSBvbmx5IHN1cHBvcnRpbmcgYWxpYXNpbmdfcHBndHQgb24gZ2VuNyBmb3Igc29t ZSB0aW1lLCB3ZQpzYXZlZCBhIGZldyBjaGVja3MgYnkgcHJlYWxsb2NhdGluZyB0aGUgcGFnZSBk aXJlY3RvcmllcyBvbiBjcmVhdGlvbi4KSG93ZXZlciwgc2luY2Ugd2UgbmVlZCAyTWlCIG9mIHBh Z2UgZGlyZWN0b3JpZXMgZm9yIGVhY2ggcHBndHQsIHRvCnN1cHBvcnQgYXJiaXRyYXJ5IG51bWJl cnMgb2YgdXNlciBjb250ZXh0cywgd2UgbmVlZCB0byBiZSBtb3JlIHBydWRlbnQKaW4gb3VyIGFs bG9jYXRpb25zLCBhbmQgZGVmZXIgdGhlIHBhZ2UgYWxsb2NhdGlvbiB1bnRpbCBpdCBpcyB1c2Vk LiBXZQpkb24ndCByZWNvdmVyIHVudXNlZCBwYWdlcyB5ZXQgYXMgd2UgZm91bmQgdGhhdCBkb2lu ZyBzbyBvbiB0aGUgZmx5CihpLmUuIGFsdGVyaW5nIFRMQiBlbnRyaWVzKSB3b3VsZCBjb25mdXNl IHRoZSBHUFUuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNv bi5jby51az4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVs LmNvbT4KQ2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgpD YzogTWF0dGhldyBBdWxkIDxtYXR0aGV3LndpbGxpYW0uYXVsZEBnbWFpbC5jb20+ClJldmlld2Vk LWJ5OiBNYXR0aGV3IEF1bGQgPG1hdHRoZXcud2lsbGlhbS5hdWxkQGdtYWlsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyB8IDY3ICsrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCBhNjljZDFiNWY4ZjIu LjY2MDU5NmViZDNjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTE5MCwx MSArMTkwLDE5IEBAIGludCBpbnRlbF9zYW5pdGl6ZV9lbmFibGVfcHBndHQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXJldHVybiAxOwogfQogCi1zdGF0aWMgaW50IGdlbjZf cHBndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCi0JCQkgICAgICAgZW51bSBpOTE1 X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAotCQkJICAgICAgIHUzMiB1bnVzZWQpCitzdGF0aWMg aW50IHBwZ3R0X2JpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAorCQkJICBlbnVtIGk5MTVf Y2FjaGVfbGV2ZWwgY2FjaGVfbGV2ZWwsCisJCQkgIHUzMiB1bnVzZWQpCiB7CiAJdTMyIHB0ZV9m bGFnczsKKwlpbnQgZXJyOworCisJaWYgKCEodm1hLT5mbGFncyAmIEk5MTVfVk1BX0xPQ0FMX0JJ TkQpKSB7CisJCWVyciA9IHZtYS0+dm0tPmFsbG9jYXRlX3ZhX3JhbmdlKHZtYS0+dm0sCisJCQkJ CQkgdm1hLT5ub2RlLnN0YXJ0LCB2bWEtPnNpemUpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVy cjsKKwl9CiAKIAkvKiBDdXJyZW50bHkgYXBwbGljYWJsZSBvbmx5IHRvIFZMViAqLwogCXB0ZV9m bGFncyA9IDA7CkBAIC0yMDYsMjIgKzIxNCw2IEBAIHN0YXRpYyBpbnQgZ2VuNl9wcGd0dF9iaW5k X3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBn ZW44X3BwZ3R0X2JpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAotCQkJICAgICAgIGVudW0g aTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKLQkJCSAgICAgICB1MzIgdW51c2VkKQotewot CWludCByZXQ7Ci0KLQlpZiAoISh2bWEtPmZsYWdzICYgSTkxNV9WTUFfTE9DQUxfQklORCkpIHsK LQkJcmV0ID0gdm1hLT52bS0+YWxsb2NhdGVfdmFfcmFuZ2Uodm1hLT52bSwKLQkJCQkJCSB2bWEt Pm5vZGUuc3RhcnQsIHZtYS0+c2l6ZSk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCX0K LQotCXJldHVybiBnZW42X3BwZ3R0X2JpbmRfdm1hKHZtYSwgY2FjaGVfbGV2ZWwsIHVudXNlZCk7 Ci19Ci0KIHN0YXRpYyB2b2lkIHBwZ3R0X3VuYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEp CiB7CiAJdm1hLT52bS0+Y2xlYXJfcmFuZ2Uodm1hLT52bSwgdm1hLT5ub2RlLnN0YXJ0LCB2bWEt PnNpemUpOwpAQCAtMTYyMiw3ICsxNjE0LDcgQEAgc3RhdGljIHN0cnVjdCBpOTE1X2h3X3BwZ3R0 ICpnZW44X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlwcGd0 dC0+dm0uY2xlYW51cCA9IGdlbjhfcHBndHRfY2xlYW51cDsKIAlwcGd0dC0+ZGVidWdfZHVtcCA9 IGdlbjhfZHVtcF9wcGd0dDsKIAotCXBwZ3R0LT52bS52bWFfb3BzLmJpbmRfdm1hICAgID0gZ2Vu OF9wcGd0dF9iaW5kX3ZtYTsKKwlwcGd0dC0+dm0udm1hX29wcy5iaW5kX3ZtYSAgICA9IHBwZ3R0 X2JpbmRfdm1hOwogCXBwZ3R0LT52bS52bWFfb3BzLnVuYmluZF92bWEgID0gcHBndHRfdW5iaW5k X3ZtYTsKIAlwcGd0dC0+dm0udm1hX29wcy5zZXRfcGFnZXMgICA9IHBwZ3R0X3NldF9wYWdlczsK IAlwcGd0dC0+dm0udm1hX29wcy5jbGVhcl9wYWdlcyA9IGNsZWFyX3BhZ2VzOwpAQCAtMTgzNyw3 ICsxODI5LDggQEAgc3RhdGljIHZvaWQgZ2VuNl9wcGd0dF9jbGVhcl9yYW5nZShzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSwKIAogCQludW1fZW50cmllcyAtPSBlbmQgLSBwdGU7CiAKLQkJ LyogTm90ZSB0aGF0IHRoZSBodyBkb2Vzbid0IHN1cHBvcnQgcmVtb3ZpbmcgUERFIG9uIHRoZSBm bHkKKwkJLyoKKwkJICogTm90ZSB0aGF0IHRoZSBodyBkb2Vzbid0IHN1cHBvcnQgcmVtb3Zpbmcg UERFIG9uIHRoZSBmbHkKIAkJICogKHRoZXkgYXJlIGNhY2hlZCBpbnNpZGUgdGhlIGNvbnRleHQg d2l0aCBubyBtZWFucyB0bwogCQkgKiBpbnZhbGlkYXRlIHRoZSBjYWNoZSksIHNvIHdlIGNhbiBv bmx5IHJlc2V0IHRoZSBQVEUKIAkJICogZW50cmllcyBiYWNrIHRvIHNjcmF0Y2guCkBAIC0yMTEz LDEyICsyMTA2LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9od19wcGd0dCAqZ2VuNl9wcGd0dF9j cmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAKIAlwcGd0dC0+YmFzZS52bS50 b3RhbCA9IEk5MTVfUERFUyAqIEdFTjZfUFRFUyAqIFBBR0VfU0laRTsKIAorCXBwZ3R0LT5iYXNl LnZtLmFsbG9jYXRlX3ZhX3JhbmdlID0gZ2VuNl9hbGxvY192YV9yYW5nZTsKIAlwcGd0dC0+YmFz ZS52bS5jbGVhcl9yYW5nZSA9IGdlbjZfcHBndHRfY2xlYXJfcmFuZ2U7CiAJcHBndHQtPmJhc2Uu dm0uaW5zZXJ0X2VudHJpZXMgPSBnZW42X3BwZ3R0X2luc2VydF9lbnRyaWVzOwogCXBwZ3R0LT5i YXNlLnZtLmNsZWFudXAgPSBnZW42X3BwZ3R0X2NsZWFudXA7CiAJcHBndHQtPmJhc2UuZGVidWdf ZHVtcCA9IGdlbjZfZHVtcF9wcGd0dDsKIAotCXBwZ3R0LT5iYXNlLnZtLnZtYV9vcHMuYmluZF92 bWEgICAgPSBnZW42X3BwZ3R0X2JpbmRfdm1hOworCXBwZ3R0LT5iYXNlLnZtLnZtYV9vcHMuYmlu ZF92bWEgICAgPSBwcGd0dF9iaW5kX3ZtYTsKIAlwcGd0dC0+YmFzZS52bS52bWFfb3BzLnVuYmlu ZF92bWEgID0gcHBndHRfdW5iaW5kX3ZtYTsKIAlwcGd0dC0+YmFzZS52bS52bWFfb3BzLnNldF9w YWdlcyAgID0gcHBndHRfc2V0X3BhZ2VzOwogCXBwZ3R0LT5iYXNlLnZtLnZtYV9vcHMuY2xlYXJf cGFnZXMgPSBjbGVhcl9wYWdlczsKQEAgLTIxNDMsMTQgKzIxMzcsOCBAQCBzdGF0aWMgc3RydWN0 IGk5MTVfaHdfcHBndHQgKmdlbjZfcHBndHRfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQogCQlnb3RvIGVycl9zY3JhdGNoOwogCX0KIAotCWVyciA9IGdlbjZfYWxsb2NfdmFf cmFuZ2UoJnBwZ3R0LT5iYXNlLnZtLCAwLCBwcGd0dC0+YmFzZS52bS50b3RhbCk7Ci0JaWYgKGVy cikKLQkJZ290byBlcnJfdm1hOwotCiAJcmV0dXJuICZwcGd0dC0+YmFzZTsKIAotZXJyX3ZtYToK LQlpOTE1X3ZtYV9kZXN0cm95KHBwZ3R0LT52bWEpOwogZXJyX3NjcmF0Y2g6CiAJZ2VuNl9wcGd0 dF9mcmVlX3NjcmF0Y2goJnBwZ3R0LT5iYXNlLnZtKTsKIGVycl9mcmVlOgpAQCAtMjc0Niw4ICsy NzM0LDcgQEAgc3RhdGljIGludCBhbGlhc2luZ19ndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1h ICp2bWEsCiAJaWYgKGZsYWdzICYgSTkxNV9WTUFfTE9DQUxfQklORCkgewogCQlzdHJ1Y3QgaTkx NV9od19wcGd0dCAqYXBwZ3R0ID0gaTkxNS0+bW0uYWxpYXNpbmdfcHBndHQ7CiAKLQkJaWYgKCEo dm1hLT5mbGFncyAmIEk5MTVfVk1BX0xPQ0FMX0JJTkQpICYmCi0JCSAgICBhcHBndHQtPnZtLmFs bG9jYXRlX3ZhX3JhbmdlKSB7CisJCWlmICghKHZtYS0+ZmxhZ3MgJiBJOTE1X1ZNQV9MT0NBTF9C SU5EKSkgewogCQkJcmV0ID0gYXBwZ3R0LT52bS5hbGxvY2F0ZV92YV9yYW5nZSgmYXBwZ3R0LT52 bSwKIAkJCQkJCQkgICB2bWEtPm5vZGUuc3RhcnQsCiAJCQkJCQkJICAgdm1hLT5zaXplKTsKQEAg LTI4NTEsMTcgKzI4MzgsMTUgQEAgaW50IGk5MTVfZ2VtX2luaXRfYWxpYXNpbmdfcHBndHQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCWdvdG8gZXJyX3BwZ3R0OwogCX0KIAotCWlm IChwcGd0dC0+dm0uYWxsb2NhdGVfdmFfcmFuZ2UpIHsKLQkJLyogTm90ZSB3ZSBvbmx5IHByZS1h bGxvY2F0ZSBhcyBmYXIgYXMgdGhlIGVuZCBvZiB0aGUgZ2xvYmFsCi0JCSAqIEdUVC4gT24gNDhi IC8gNC1sZXZlbCBwYWdlLXRhYmxlcywgdGhlIGRpZmZlcmVuY2UgaXMgdmVyeSwKLQkJICogdmVy eSBzaWduaWZpY2FudCEgV2UgaGF2ZSB0byBwcmVhbGxvY2F0ZSBhcyBHVlQvdmdwdSBkb2VzCi0J CSAqIG5vdCBsaWtlIHRoZSBwYWdlIGRpcmVjdG9yeSBkaXNhcHBlYXJpbmcuCi0JCSAqLwotCQll cnIgPSBwcGd0dC0+dm0uYWxsb2NhdGVfdmFfcmFuZ2UoJnBwZ3R0LT52bSwKLQkJCQkJCSAgMCwg Z2d0dC0+dm0udG90YWwpOwotCQlpZiAoZXJyKQotCQkJZ290byBlcnJfcHBndHQ7Ci0JfQorCS8q CisJICogTm90ZSB3ZSBvbmx5IHByZS1hbGxvY2F0ZSBhcyBmYXIgYXMgdGhlIGVuZCBvZiB0aGUg Z2xvYmFsCisJICogR1RULiBPbiA0OGIgLyA0LWxldmVsIHBhZ2UtdGFibGVzLCB0aGUgZGlmZmVy ZW5jZSBpcyB2ZXJ5LAorCSAqIHZlcnkgc2lnbmlmaWNhbnQhIFdlIGhhdmUgdG8gcHJlYWxsb2Nh dGUgYXMgR1ZUL3ZncHUgZG9lcworCSAqIG5vdCBsaWtlIHRoZSBwYWdlIGRpcmVjdG9yeSBkaXNh cHBlYXJpbmcuCisJICovCisJZXJyID0gcHBndHQtPnZtLmFsbG9jYXRlX3ZhX3JhbmdlKCZwcGd0 dC0+dm0sIDAsIGdndHQtPnZtLnRvdGFsKTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl9wcGd0dDsK IAogCWk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0ID0gcHBndHQ7CiAKLS0gCjIuMTcuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==