From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [RFC PATCH 28/42] drm/i915: Split out GTT fault handler to make it generic Date: Thu, 14 Feb 2019 14:57:26 +0000 Message-ID: <20190214145740.14521-29-matthew.auld@intel.com> References: <20190214145740.14521-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 46E1E6E931 for ; Thu, 14 Feb 2019 14:58:18 +0000 (UTC) In-Reply-To: <20190214145740.14521-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 RnJvbTogQWJkaWVsIEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXguaW50ZWwuY29tPgoK SW4gcHJlcGFyYXRpb24gZm9yIHVzaW5nIG11bHRpcGxlIHBhZ2UtZmF1bHQgaGFuZGxlcnMgZGVw ZW5kaW5nCm9uIHRoZSBvYmplY3QncyBiYWNraW5nIHN0b3JhZ2UuCgpTaWduZWQtb2ZmLWJ5OiBB YmRpZWwgSmFudWxndWUgPGFiZGllbC5qYW51bGd1ZUBsaW51eC5pbnRlbC5jb20+CkNjOiBKb29u YXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyB8IDExMiArKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IGU1OWYzOGUwMGYwZC4uOTVlMzE1MjlhNzM4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTE3ODIsMTEgKzE3ODIsNyBAQCBjb21wdXRl X3BhcnRpYWxfdmlldyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogfQog CiAvKioKLSAqIGk5MTVfZ2VtX2ZhdWx0IC0gZmF1bHQgYSBwYWdlIGludG8gdGhlIEdUVAotICog QHZtZjogZmF1bHQgaW5mbwotICoKLSAqIFRoZSBmYXVsdCBoYW5kbGVyIGlzIHNldCB1cCBieSBk cm1fZ2VtX21tYXAoKSB3aGVuIGEgb2JqZWN0IGlzIEdUVCBtYXBwZWQKLSAqIGZyb20gdXNlcnNw YWNlLiAgVGhlIGZhdWx0IGhhbmRsZXIgdGFrZXMgY2FyZSBvZiBiaW5kaW5nIHRoZSBvYmplY3Qg dG8KKyAqIFRoZSBHVFQgZmlsbCBwYWdlcyBoYW5kbGVyIHRha2VzIGNhcmUgb2YgYmluZGluZyB0 aGUgb2JqZWN0IHRvCiAgKiB0aGUgR1RUIChpZiBuZWVkZWQpLCBhbGxvY2F0aW5nIGFuZCBwcm9n cmFtbWluZyBhIGZlbmNlIHJlZ2lzdGVyIChhZ2FpbiwKICAqIG9ubHkgaWYgbmVlZGVkIGJhc2Vk IG9uIHdoZXRoZXIgdGhlIG9sZCByZWcgaXMgc3RpbGwgdmFsaWQgb3IgdGhlIG9iamVjdAogICog aXMgdGlsZWQpIGFuZCBpbnNlcnRpbmcgYSBuZXcgUFRFIGludG8gdGhlIGZhdWx0aW5nIHByb2Nl c3MuCkBAIC0xNzk5LDU3ICsxNzk1LDIwIEBAIGNvbXB1dGVfcGFydGlhbF92aWV3KGNvbnN0IHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAgKiBUaGUgY3VycmVudCBmZWF0dXJlIHNl dCBzdXBwb3J0ZWQgYnkgaTkxNV9nZW1fZmF1bHQoKSBhbmQgdGh1cyBHVFQgbW1hcHMKICAqIGlz IGV4cG9zZWQgdmlhIEk5MTVfUEFSQU1fTU1BUF9HVFRfVkVSU0lPTiAoc2VlIGk5MTVfZ2VtX21t YXBfZ3R0X3ZlcnNpb24pLgogICovCi12bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2 bV9mYXVsdCAqdm1mKQorc3RhdGljIGludCBfX3ZtZl9maWxsX3BhZ2VzX2d0dChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJCXN0cnVjdCB2bV9mYXVsdCAqdm1mLAorCQkJCXBn b2ZmX3QgcGFnZV9vZmZzZXQpCiB7CiAjZGVmaW5lIE1JTl9DSFVOS19QQUdFUyAoU1pfMU0gPj4g UEFHRV9TSElGVCkKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmFyZWEgPSB2bWYtPnZtYTsKLQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdG9faW50ZWxfYm8oYXJlYS0+dm1fcHJp dmF0ZV9kYXRhKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0 IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKIAlib29sIHdyaXRlID0gYXJlYS0+ dm1fZmxhZ3MgJiBWTV9XUklURTsKLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAlzdHJ1Y3Qg aTkxNV92bWEgKnZtYTsKLQlwZ29mZl90IHBhZ2Vfb2Zmc2V0OwogCWludCBzcmN1OwogCWludCBy ZXQ7CiAKLQkvKiBTYW5pdHkgY2hlY2sgdGhhdCB3ZSBhbGxvdyB3cml0aW5nIGludG8gdGhpcyBv YmplY3QgKi8KLQlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX3JlYWRvbmx5KG9iaikgJiYgd3JpdGUp Ci0JCXJldHVybiBWTV9GQVVMVF9TSUdCVVM7Ci0KLQkvKiBXZSBkb24ndCB1c2Ugdm1mLT5wZ29m ZiBzaW5jZSB0aGF0IGhhcyB0aGUgZmFrZSBvZmZzZXQgKi8KLQlwYWdlX29mZnNldCA9ICh2bWYt PmFkZHJlc3MgLSBhcmVhLT52bV9zdGFydCkgPj4gUEFHRV9TSElGVDsKLQotCXRyYWNlX2k5MTVf Z2VtX29iamVjdF9mYXVsdChvYmosIHBhZ2Vfb2Zmc2V0LCB0cnVlLCB3cml0ZSk7Ci0KLQkvKiBU cnkgdG8gZmx1c2ggdGhlIG9iamVjdCBvZmYgdGhlIEdQVSBmaXJzdCB3aXRob3V0IGhvbGRpbmcg dGhlIGxvY2suCi0JICogVXBvbiBhY3F1aXJpbmcgdGhlIGxvY2ssIHdlIHdpbGwgcGVyZm9ybSBv dXIgc2FuaXR5IGNoZWNrcyBhbmQgdGhlbgotCSAqIHJlcGVhdCB0aGUgZmx1c2ggaG9sZGluZyB0 aGUgbG9jayBpbiB0aGUgbm9ybWFsIG1hbm5lciB0byBjYXRjaCBjYXNlcwotCSAqIHdoZXJlIHdl IGFyZSBnYXp1bXBlZC4KLQkgKi8KLQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfd2FpdChvYmosCi0J CQkJICAgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUsCi0JCQkJICAgTUFYX1NDSEVEVUxFX1RJTUVP VVQpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyOwotCi0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3Bp bl9wYWdlcyhvYmopOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyOwotCi0Jd2FrZXJlZiA9IGludGVs X3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKLQotCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRl cnJ1cHRpYmxlKGRldik7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfcnBtOwotCi0JLyogQWNjZXNz IHRvIHNub29wYWJsZSBwYWdlcyB0aHJvdWdoIHRoZSBHVFQgaXMgaW5jb2hlcmVudC4gKi8KLQlp ZiAob2JqLT5jYWNoZV9sZXZlbCAhPSBJOTE1X0NBQ0hFX05PTkUgJiYgIUhBU19MTEMoZGV2X3By aXYpKSB7Ci0JCXJldCA9IC1FRkFVTFQ7Ci0JCWdvdG8gZXJyX3VubG9jazsKLQl9Ci0KIAkvKiBO b3cgcGluIGl0IGludG8gdGhlIEdUVCBhcyBuZWVkZWQgKi8KIAl2bWEgPSBpOTE1X2dlbV9vYmpl Y3RfZ2d0dF9waW4ob2JqLCBOVUxMLCAwLCAwLAogCQkJCSAgICAgICBQSU5fTUFQUEFCTEUgfApA QCAtMTg4MCw3ICsxODM5LDcgQEAgdm1fZmF1bHRfdCBpOTE1X2dlbV9mYXVsdChzdHJ1Y3Qgdm1f ZmF1bHQgKnZtZikKIAl9CiAJaWYgKElTX0VSUih2bWEpKSB7CiAJCXJldCA9IFBUUl9FUlIodm1h KTsKLQkJZ290byBlcnJfdW5sb2NrOworCQlyZXR1cm4gcmV0OwogCX0KIAogCXJldCA9IGk5MTVf Z2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihvYmosIHdyaXRlKTsKQEAgLTE5MjAsNiArMTg3 OSw2NyBAQCB2bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQog CWk5MTVfdm1hX3VucGluX2ZlbmNlKHZtYSk7CiBlcnJfdW5waW46CiAJX19pOTE1X3ZtYV91bnBp bih2bWEpOworCisJcmV0dXJuIHJldDsKK30KKworLyoqCisgKiBpOTE1X2dlbV9mYXVsdCAtIGZh dWx0IGEgcGFnZSBpbnRvIHRoZSBtZW1vcnkKKyAqIEB2bWY6IGZhdWx0IGluZm8KKyAqCisgKiBU aGUgZmF1bHQgaGFuZGxlciBpcyBzZXQgdXAgYnkgZHJtX2dlbV9tbWFwKCkgd2hlbiBtbWFwX29m ZnNldCBpcyBjYWxsZWQgb24KKyAqIGFuIG9iamVjdCBmcm9tIHVzZXJzcGFjZS4gVGhlIG1pc3Np bmcgcGFnZXMgYXJlIHNldHVwIGJ5IGFuIG9iamVjdCdzCisgKiB2bWZfZmlsbF9wYWdlcyBwYWdl cyBoYW5kbGVyLCBkZXBlbmRpbmcgb24gaXQncyBiYWNraW5nIHN0b3JhZ2UuCisgKi8KK3ZtX2Zh dWx0X3QgaTkxNV9nZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCit7CisJc3RydWN0IHZt X2FyZWFfc3RydWN0ICphcmVhID0gdm1mLT52bWE7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiA9IHRvX2ludGVsX2JvKGFyZWEtPnZtX3ByaXZhdGVfZGF0YSk7CisJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IG9iai0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOworCWJv b2wgd3JpdGUgPSAhISh2bWYtPmZsYWdzICYgRkFVTFRfRkxBR19XUklURSk7CisJcGdvZmZfdCBw YWdlX29mZnNldDsKKwlpbnQgcmV0OworCisJLyogU2FuaXR5IGNoZWNrIHRoYXQgd2UgYWxsb3cg d3JpdGluZyBpbnRvIHRoaXMgb2JqZWN0ICovCisJaWYgKGk5MTVfZ2VtX29iamVjdF9pc19yZWFk b25seShvYmopICYmIHdyaXRlKQorCQlyZXR1cm4gVk1fRkFVTFRfU0lHQlVTOworCisJLyogV2Ug ZG9uJ3QgdXNlIHZtZi0+cGdvZmYgc2luY2UgdGhhdCBoYXMgdGhlIGZha2Ugb2Zmc2V0ICovCisJ cGFnZV9vZmZzZXQgPSAodm1mLT5hZGRyZXNzIC0gYXJlYS0+dm1fc3RhcnQpID4+IFBBR0VfU0hJ RlQ7CisKKwl0cmFjZV9pOTE1X2dlbV9vYmplY3RfZmF1bHQob2JqLCBwYWdlX29mZnNldCwgdHJ1 ZSwgd3JpdGUpOworCisJLyogVHJ5IHRvIGZsdXNoIHRoZSBvYmplY3Qgb2ZmIHRoZSBHUFUgZmly c3Qgd2l0aG91dCBob2xkaW5nIHRoZSBsb2NrLgorCSAqIFVwb24gYWNxdWlyaW5nIHRoZSBsb2Nr LCB3ZSB3aWxsIHBlcmZvcm0gb3VyIHNhbml0eSBjaGVja3MgYW5kIHRoZW4KKwkgKiByZXBlYXQg dGhlIGZsdXNoIGhvbGRpbmcgdGhlIGxvY2sgaW4gdGhlIG5vcm1hbCBtYW5uZXIgdG8gY2F0Y2gg Y2FzZXMKKwkgKiB3aGVyZSB3ZSBhcmUgZ2F6dW1wZWQuCisJICovCisJcmV0ID0gaTkxNV9nZW1f b2JqZWN0X3dhaXQob2JqLAorCQkJCSAgIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFLAorCQkJCSAg IE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycjsKKworCXJldCA9 IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMob2JqKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycjsK KworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CisKKwlyZXQgPSBp OTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZShkZXYpOworCWlmIChyZXQpCisJCWdvdG8gZXJy X3JwbTsKKworCS8qIEFjY2VzcyB0byBzbm9vcGFibGUgcGFnZXMgdGhyb3VnaCB0aGUgR1RUIGlz IGluY29oZXJlbnQuICovCisJaWYgKG9iai0+Y2FjaGVfbGV2ZWwgIT0gSTkxNV9DQUNIRV9OT05F ICYmICFIQVNfTExDKGRldl9wcml2KSkgeworCQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIGVycl91 bmxvY2s7CisJfQorCisJcmV0ID0gX192bWZfZmlsbF9wYWdlc19ndHQob2JqLCB2bWYsIHBhZ2Vf b2Zmc2V0KTsKKwogZXJyX3VubG9jazoKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4 KTsKIGVycl9ycG06Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeA==