From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 5/9] drm/i915: Rearrange switch_context to load the aliasing ppgtt on first use Date: Tue, 19 Apr 2016 07:49:16 +0100 Message-ID: <1461048560-31983-6-git-send-email-chris@chris-wilson.co.uk> References: <1460721275-1001-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1461048560-31983-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-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id E2EE86E6A7 for ; Tue, 19 Apr 2016 06:49:36 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id n3so2252092wmn.1 for ; Mon, 18 Apr 2016 23:49:36 -0700 (PDT) In-Reply-To: <1461048560-31983-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, Tvrtko Ursulin List-Id: intel-gfx@lists.freedesktop.org VGhlIGNvZGUgdG8gc3dpdGNoX21tKCkgaXMgYWxyZWFkeSBoYW5kbGVkIGJ5IGk5MTVfc3dpdGNo X2NvbnRleHQoKSwgdGhlCm9ubHkgZGlmZmVyZW5jZSByZXF1aXJlZCB0byBzZXR1cCB0aGUgYWxp YXNpbmcgcHBndHQgaXMgdGhhdCB3ZSBuZWVkIHRvCmVtaXQgdGUgc3dpdGNoX21tKCkgb24gdGhl IGZpcnN0IGNvbnRleHQsIGkuZS4gd2hlbiB0cmFuc2l0aW9uaW5nIGZyb20KZW5naW5lLT5sYXN0 X2NvbnRleHQgPT0gTlVMTC4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAg ICAgICB8ICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8IDI4 IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jIHwgNDMgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgfCAxMyAtLS0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCAgICAgfCAgMSAtCiA1IGZpbGVzIGNoYW5nZWQsIDEy IGluc2VydGlvbnMoKyksIDc0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmlu ZGV4IDRjNTVmNDgwZjYwYi4uNzdiZWNmZDVhMDlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK QEAgLTMxMjUsNyArMzEyNSw2IEBAIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fY29udGV4dF9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBpOTE1X2dlbV9jb250ZXh0X2Zpbmko c3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGk5MTVfZ2VtX2NvbnRleHRfcmVzZXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7CiBpbnQgaTkxNV9nZW1fY29udGV4dF9vcGVuKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7Ci1pbnQgaTkxNV9nZW1fY29u dGV4dF9lbmFibGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwogdm9pZCBpOTE1 X2dlbV9jb250ZXh0X2Nsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmls ZSAqZmlsZSk7CiBpbnQgaTkxNV9zd2l0Y2hfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSk7CiBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YwppbmRleCBmZDlhMzZiYWRiNDUuLjQwNTdjMGZlYmNjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCkBAIC00MjQ1LDM0ICs0MjQ1LDYgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCQl9CiAJfQogCi0JLyogTm93IGl0IGlzIHNhZmUgdG8gZ28gYmFjayByb3Vu ZCBhbmQgZG8gZXZlcnl0aGluZyBlbHNlOiAqLwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRl dl9wcml2KSB7Ci0JCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwotCi0JCXJlcSA9 IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MoZW5naW5lLCBOVUxMKTsKLQkJaWYgKElTX0VSUihyZXEp KSB7Ci0JCQlyZXQgPSBQVFJfRVJSKHJlcSk7Ci0JCQlicmVhazsKLQkJfQotCi0JCXJldCA9IGk5 MTVfcHBndHRfaW5pdF9yaW5nKHJlcSk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVycl9yZXF1ZXN0 OwotCi0JCXJldCA9IGk5MTVfZ2VtX2NvbnRleHRfZW5hYmxlKHJlcSk7Ci0JCWlmIChyZXQpCi0J CQlnb3RvIGVycl9yZXF1ZXN0OwotCi1lcnJfcmVxdWVzdDoKLQkJaTkxNV9hZGRfcmVxdWVzdF9u b19mbHVzaChyZXEpOwotCQlpZiAocmV0KSB7Ci0JCQlEUk1fRVJST1IoIkZhaWxlZCB0byBlbmFi bGUgJXMsIGVycm9yPSVkXG4iLAotCQkJCSAgZW5naW5lLT5uYW1lLCByZXQpOwotCQkJaTkxNV9n ZW1fY2xlYW51cF9lbmdpbmVzKGRldik7Ci0JCQlicmVhazsKLQkJfQotCX0KLQogb3V0OgogCWlu dGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGRldl9wcml2LCBGT1JDRVdBS0VfQUxMKTsKIAlyZXR1 cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4 dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IDY4NzA1 NTZhMTgwYi4uY2Y4NDEzOGRlNGVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jCkBAIC00NzEsMjcgKzQ3MSw2IEBAIHZvaWQgaTkxNV9nZW1fY29udGV4dF9maW5pKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0ID0gTlVMTDsK IH0KIAotaW50IGk5MTVfZ2VtX2NvbnRleHRfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKQotewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+ZW5n aW5lOwotCWludCByZXQ7Ci0KLQlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7Ci0JCWlmIChl bmdpbmUtPmluaXRfY29udGV4dCA9PSBOVUxMKQotCQkJcmV0dXJuIDA7Ci0KLQkJcmV0ID0gZW5n aW5lLT5pbml0X2NvbnRleHQocmVxKTsKLQl9IGVsc2UKLQkJcmV0ID0gaTkxNV9zd2l0Y2hfY29u dGV4dChyZXEpOwotCi0JaWYgKHJldCkgewotCQlEUk1fRVJST1IoInJpbmcgaW5pdCBjb250ZXh0 OiAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3Rh dGljIGludCBjb250ZXh0X2lkcl9jbGVhbnVwKGludCBpZCwgdm9pZCAqcCwgdm9pZCAqZGF0YSkK IHsKIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0gcDsKQEAgLTY2MSw3ICs2NDAsNyBAQCBz dGF0aWMgYm9vbAogbmVlZHNfcGRfbG9hZF9wcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLCBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqdG8pCiB7CiAJaWYgKCF0by0+cHBndHQpCi0JCXJl dHVybiBmYWxzZTsKKwkJcmV0dXJuIGVuZ2luZS0+bGFzdF9jb250ZXh0ID09IE5VTEw7CiAKIAlp ZiAoZW5naW5lLT5sYXN0X2NvbnRleHQgPT0gdG8gJiYKIAkgICAgIShpbnRlbF9lbmdpbmVfZmxh ZyhlbmdpbmUpICYgdG8tPnBwZ3R0LT5wZF9kaXJ0eV9yaW5ncykpCkBAIC03MjQsNiArNzAzLDcg QEAgc3RhdGljIGludCBkb19yY3Nfc3dpdGNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKQogewogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICp0byA9IHJlcS0+Y3R4OwogCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+ZW5naW5lOworCXN0cnVjdCBpOTE1X2h3X3Bw Z3R0ICpwcGd0dCA9IHRvLT5wcGd0dCA/OiByZXEtPmk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0Owog CXN0cnVjdCBpbnRlbF9jb250ZXh0ICpmcm9tOwogCXUzMiBod19mbGFnczsKIAlpbnQgcmV0LCBp OwpAQCAtNzY1LDcgKzc0NSw3IEBAIHN0YXRpYyBpbnQgZG9fcmNzX3N3aXRjaChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAkJICogUmVnaXN0ZXIgSW1tZWRpYXRlIGNvbW1hbmRz IGluIFJpbmcgQnVmZmVyIGJlZm9yZSBzdWJtaXR0aW5nCiAJCSAqIGEgY29udGV4dC4iKi8KIAkJ dHJhY2Vfc3dpdGNoX21tKGVuZ2luZSwgdG8pOwotCQlyZXQgPSB0by0+cHBndHQtPnN3aXRjaF9t bSh0by0+cHBndHQsIHJlcSk7CisJCXJldCA9IHBwZ3R0LT5zd2l0Y2hfbW0ocHBndHQsIHJlcSk7 CiAJCWlmIChyZXQpCiAJCQlnb3RvIHVucGluX291dDsKIAl9CkBAIC03NzYsOCArNzU2LDcgQEAg c3RhdGljIGludCBkb19yY3Nfc3dpdGNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQogCQkgKiBzcGFjZS4gVGhpcyBtZWFucyB3ZSBtdXN0IGVuZm9yY2UgdGhhdCBhIHBhZ2UgdGFi bGUgbG9hZAogCQkgKiBvY2N1ciB3aGVuIHRoaXMgb2NjdXJzLiAqLwogCQlod19mbGFncyA9IE1J X1JFU1RPUkVfSU5ISUJJVDsKLQllbHNlIGlmICh0by0+cHBndHQgJiYKLQkJIGludGVsX2VuZ2lu ZV9mbGFnKGVuZ2luZSkgJiB0by0+cHBndHQtPnBkX2RpcnR5X3JpbmdzKQorCWVsc2UgaWYgKHBw Z3R0ICYmIGludGVsX2VuZ2luZV9mbGFnKGVuZ2luZSkgJiBwcGd0dC0+cGRfZGlydHlfcmluZ3Mp CiAJCWh3X2ZsYWdzID0gTUlfRk9SQ0VfUkVTVE9SRTsKIAllbHNlCiAJCWh3X2ZsYWdzID0gMDsK QEAgLTgyMiw3ICs4MDEsNyBAQCBzdGF0aWMgaW50IGRvX3Jjc19zd2l0Y2goc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJICovCiAJaWYgKG5lZWRzX3BkX2xvYWRfcG9zdCh0bywg aHdfZmxhZ3MpKSB7CiAJCXRyYWNlX3N3aXRjaF9tbShlbmdpbmUsIHRvKTsKLQkJcmV0ID0gdG8t PnBwZ3R0LT5zd2l0Y2hfbW0odG8tPnBwZ3R0LCByZXEpOworCQlyZXQgPSBwcGd0dC0+c3dpdGNo X21tKHRvLT5wcGd0dCwgcmVxKTsKIAkJLyogVGhlIGhhcmR3YXJlIGNvbnRleHQgc3dpdGNoIGlz IGVtaXR0ZWQsIGJ1dCB3ZSBoYXZlbid0CiAJCSAqIGFjdHVhbGx5IGNoYW5nZWQgdGhlIHN0YXRl IC0gc28gaXQncyBwcm9iYWJseSBzYWZlIHRvIGJhaWwKIAkJICogaGVyZS4gU3RpbGwsIGxldCB0 aGUgdXNlciBrbm93IHNvbWV0aGluZyBkYW5nZXJvdXMgaGFzCkBAIC04MzIsOCArODExLDggQEAg c3RhdGljIGludCBkb19yY3Nfc3dpdGNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQogCQkJcmV0dXJuIHJldDsKIAl9CiAKLQlpZiAodG8tPnBwZ3R0KQotCQl0by0+cHBndHQtPnBk X2RpcnR5X3JpbmdzICY9IH5pbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpOworCWlmIChwcGd0dCkK KwkJcHBndHQtPnBkX2RpcnR5X3JpbmdzICY9IH5pbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpOwog CiAJZm9yIChpID0gMDsgaSA8IE1BWF9MM19TTElDRVM7IGkrKykgewogCQlpZiAoISh0by0+cmVt YXBfc2xpY2UgJiAoMTw8aSkpKQpAQCAtODg3LDE1ICs4NjYsMTcgQEAgaW50IGk5MTVfc3dpdGNo X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJCXN0cnVjdCBpbnRl bF9jb250ZXh0ICp0byA9IHJlcS0+Y3R4OwogCiAJCWlmIChuZWVkc19wZF9sb2FkX3ByZShlbmdp bmUsIHRvKSkgeworCQkJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0OwogCQkJaW50IHJldDsK IAorCQkJcHBndHQgPSB0by0+cHBndHQgPzogdG9faTkxNShyZXEpLT5tbS5hbGlhc2luZ19wcGd0 dDsKKwogCQkJdHJhY2Vfc3dpdGNoX21tKGVuZ2luZSwgdG8pOwotCQkJcmV0ID0gdG8tPnBwZ3R0 LT5zd2l0Y2hfbW0odG8tPnBwZ3R0LCByZXEpOworCQkJcmV0ID0gcHBndHQtPnN3aXRjaF9tbShw cGd0dCwgcmVxKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKIAotCQkJLyogRG9pbmcg YSBQRCBsb2FkIGFsd2F5cyByZWxvYWRzIHRoZSBwYWdlIGRpcnMgKi8KLQkJCXRvLT5wcGd0dC0+ cGRfZGlydHlfcmluZ3MgJj0gfmludGVsX2VuZ2luZV9mbGFnKGVuZ2luZSk7CisJCQlwcGd0dC0+ cGRfZGlydHlfcmluZ3MgJj0gfmludGVsX2VuZ2luZV9mbGFnKGVuZ2luZSk7CiAJCX0KIAogCQlp ZiAodG8gIT0gZW5naW5lLT5sYXN0X2NvbnRleHQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmMKaW5kZXggNzgwZTNhZDNjYTEwLi41MGJkYmE1Y2I2ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5jCkBAIC0yMTgwLDE5ICsyMTgwLDYgQEAgaW50IGk5MTVfcHBndHRfaW5p dF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJldHVybiAwOwogfQogCi1pbnQgaTkxNV9w cGd0dF9pbml0X3Jpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCi17Ci0Jc3Ry dWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0gdG9faTkxNShyZXEpLT5tbS5hbGlhc2luZ19wcGd0 dDsKLQotCWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMpCi0JCXJldHVybiAwOwotCi0JaWYgKCFw cGd0dCkKLQkJcmV0dXJuIDA7Ci0KLQlyZXR1cm4gcHBndHQtPnN3aXRjaF9tbShwcGd0dCwgcmVx KTsKLX0KLQogc3RydWN0IGk5MTVfaHdfcHBndHQgKgogaTkxNV9wcGd0dF9jcmVhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZnByaXYpCiB7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCmluZGV4IGQ3ZGQzZDhhODc1OC4uMzMzYTJm YzYyYjQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaApAQCAtNTE5LDcgKzUxOSw2 IEBAIHZvaWQgaTkxNV9nZ3R0X2NsZWFudXBfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAK IGludCBpOTE1X3BwZ3R0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGk5MTVf aHdfcHBndHQgKnBwZ3R0KTsKIGludCBpOTE1X3BwZ3R0X2luaXRfaHcoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Ci1pbnQgaTkxNV9wcGd0dF9pbml0X3Jpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEpOwogdm9pZCBpOTE1X3BwZ3R0X3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYp Owogc3RydWN0IGk5MTVfaHdfcHBndHQgKmk5MTVfcHBndHRfY3JlYXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJCQkJCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZwcml2KTsKLS0g CjIuOC4wLnJjMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==