From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhi Wang Subject: [RFC 4/7] drm/i915: Introduce dynamic private PAT management Date: Wed, 16 Aug 2017 05:31:12 +0800 Message-ID: <1502832675-6123-5-git-send-email-zhi.a.wang@intel.com> References: <1502832675-6123-1-git-send-email-zhi.a.wang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1502832675-6123-1-git-send-email-zhi.a.wang@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, intel-gvt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VG8gbWFuYWdlIHRoZSBkeW5hbWljIHByaXZhdGUgUEFUIGVudHJpZXMsIHRoaXMgcGF0Y2ggaW50 cm9kdWNlcyBzb21lCmJhc2ljIGZ1bmN0aW9uYWxpdGllcyBmb3IgZ2V0dGluZyBhbmQgcHV0dGlu ZyBhbiBleHBlY3RlZCBwcml2YXRlIFBBVAplbnRyeS4KCldoZW4gYnVpbGRpbmcgdGhlIHByaXZh dGUgUEFUIG1hcHBpbmcgYmV0d2VlbiB2aXJ0dWFsIFBQQVQgaW5kZXhlcyBhbmQKcGh5c2ljYWwg UFBBVCBpbmRleGVzLCBHVlQtZyB3b3VsZCBjaGVjayBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIHVz YWJsZQpwcml2YXRlIFBBVCBlbnRyeS4KCklmIGl0J3MgYSBwZXJmZWN0IG1hdGNoLCBpdCB3b3Vs ZCBiZSBkaXJlY3RseSB1c2VkLgoKSWYgaXQncyBub3QgYSBwZXJmZWN0IG1hdGNoIGFuZCB0aGVy ZSBpcyBzdGlsbCB1bnVzZWQgUFBBVCBlbnRyeSwgR1ZUCndpbGwgYWxsb2NhdGUgYSBuZXcgUFBB VCBlbnRyeSBpbmRleCBmb3IgYSBndWVzdC4KCklmIGl0J3Mgbm90IGEgcGVyZmVjdCBtYXRjaCBh bmQgdGhlcmUgaXMgbm8gYXZhaWxhYmxlIHVudXNlZCBQUEFUIGVudHJ5LApHVlQgd2lsbCB1c2Ug dGhlIHBhcml0YWwgbWF0Y2hlZCBQUEFUIGVudHJ5IGluZGV4LgoKRWFjaCBkeW5hbWljIFBQQVQg ZW50cnkgaXMgYXNzb2NpYXRlZCB3aXRoIGEgcmVmZXJlbmNlIGNvdW50LiBJZiBubwp2R1BVIGlz IHVzaW5nIGl0LCBpdCB3aWxsIGJlIGZyZWVkLgoKU2lnbmVkLW9mZi1ieTogWmhpIFdhbmcgPHpo aS5hLndhbmdAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndHQuYyB8 IDEwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L2d0dC5oIHwgICA2ICsrKwogMiBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5z ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndHQuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndHQuYwppbmRleCBjNjMwMDE1Li42ZTE5ZDdhIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3R0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L2d0dC5jCkBAIC0yMjU0LDYgKzIyNTQsMTAzIEBAIHN0YXRpYyBpbnQg c2V0dXBfc3B0X29vcyhzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQpCiAJcmV0dXJuIHJldDsKIH0KIAor c3RhdGljIHZvaWQgc2V0dXBfcHJpdmF0ZV9wYXQoc3RydWN0IGludGVsX2d2dCAqZ3Z0KQorewor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd2dC0+ZGV2X3ByaXY7CisJc3Ry dWN0IGludGVsX2d2dF9ndHQgKmd0dCA9ICZndnQtPmd0dDsKKwlzdHJ1Y3QgaW50ZWxfZ3Z0X2d0 dF9wYXRfb3BzICpvcHMgPSBndHQtPnBhdF9vcHM7CisJaW50IGk7CisKKwlpID0gZmluZF9maXJz dF9iaXQoZGV2X3ByaXYtPmF2YWlsX3BwYXRfYml0bWFwLCBndHQtPm1heF9wcGF0X2luZGV4KTsK KwlpZiAoaSA+PSBndHQtPm1heF9wcGF0X2luZGV4KSB7CisJCURSTV9ERUJVR19EUklWRVIoIm5v IHByaXZhdGUgUEFUIHN1cHBvcnRcbiIpOworCQlyZXR1cm47CisJfQorCisJZ3R0LT5oYXNfcHBh dCA9IHRydWU7CisKKwkvKiBTYXZlIGF2YWlsYWJsZSBQUEFUIGJpdG1hcCBmcm9tIGhvc3QgKi8K KwliaXRtYXBfY29weShndHQtPmF2YWlsX3BwYXRfYml0bWFwLCBkZXZfcHJpdi0+YXZhaWxfcHBh dF9iaXRtYXAsCisJCQlndHQtPm1heF9wcGF0X2luZGV4KTsKKworCS8qIFJlYWQgaG9zdCBQUEFU IGNvbmZpZ3VyYXRpb24gKi8KKwlmb3JfZWFjaF9jbGVhcl9iaXQoaSwgZ3R0LT5hdmFpbF9wcGF0 X2JpdG1hcCwgZ3R0LT5tYXhfcHBhdF9pbmRleCkKKwkJZ3R0LT5wcGF0X3ZhbHVlW2ldID0gb3Bz LT5nZXRfcGF0X3ZhbHVlKE5VTEwsIGksIGd2dCk7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X3ByaXZh dGVfcGF0X2luZGV4KHN0cnVjdCBpbnRlbF9ndnQgKmd2dCwgdTMyIHZhbHVlKQoreworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd2dC0+ZGV2X3ByaXY7CisJc3RydWN0IGlu dGVsX2d2dF9ndHQgKmd0dCA9ICZndnQtPmd0dDsKKwlzdHJ1Y3QgaW50ZWxfZ3Z0X2d0dF9wYXRf b3BzICpvcHMgPSBndHQtPnBhdF9vcHM7CisJaW50IGksIGluZGV4LCB1c2VkOworCXVuc2lnbmVk IGludCBzY29yZSwgYmVzdF9zY29yZTsKKworCWlmIChXQVJOX09OKCFndHQtPmhhc19wcGF0KSkK KwkJcmV0dXJuIDA7CisKKwlzY29yZSA9IGJlc3Rfc2NvcmUgPSAwOworCXVzZWQgPSAwOworCisJ LyogRmlyc3QsIGZpbmQgYSBzdWl0YWJsZSB2YWx1ZSBmcm9tIGF2YWlsYWJsZSBjb25maWd1cmF0 aW9ucyAqLworCWZvcl9lYWNoX2NsZWFyX2JpdChpLCBndHQtPmF2YWlsX3BwYXRfYml0bWFwLCBn dHQtPm1heF9wcGF0X2luZGV4KSB7CisJCXNjb3JlID0gb3BzLT5tYXRjaF9wYXRfdmFsdWUoZ3R0 LT5wcGF0X3ZhbHVlW2ldLCB2YWx1ZSk7CisJCS8qIFBlcmZlY3QgbWF0Y2ggKi8KKwkJaWYgKHNj b3JlID09IH4wKSB7CisJCQlpbmRleCA9IGk7CisJCQlnb3RvIGZvdW5kOworCQl9CisKKwkJaWYg KHNjb3JlID4gYmVzdF9zY29yZSkgeworCQkJaW5kZXggPSBpOworCQkJYmVzdF9zY29yZSA9IHNj b3JlOworCQl9CisJCXVzZWQrKzsKKwl9CisKKwlpZiAoIWJlc3Rfc2NvcmUgJiYgdXNlZCA9PSBn dHQtPm1heF9wcGF0X2luZGV4KSB7CisJCURSTV9FUlJPUigiY2Fubm90IGZpbmQgYSBzdWl0YWJs ZSBQUEFUIGVudHJ5XG4iKTsKKwkJcmV0dXJuIC1FTk9TUEM7CisJfQorCisJLyoKKwkgKiBGb3Vu ZCBhIG1hdGNoZWQgZW50cnkgd2hpY2ggaXMgbm90IHBlcmZlY3QsCisJICogYnV0IHdlIGRvbid0 IGhhdmUgYSBhdmFpbGFibGUgZnJlZSBlbnRyeQorCSAqLworCWlmIChiZXN0X3Njb3JlICYmIHVz ZWQgPT0gZ3R0LT5tYXhfcHBhdF9pbmRleCkKKwkJZ290byBmb3VuZDsKKworCS8qIEFsbG9jYXRl IGEgbmV3IG9uZSAqLworCWluZGV4ID0gZmluZF9maXJzdF9iaXQoZ3R0LT5hdmFpbF9wcGF0X2Jp dG1hcCwgZ3R0LT5tYXhfcHBhdF9pbmRleCk7CisJY2xlYXJfYml0KGluZGV4LCBndHQtPmF2YWls X3BwYXRfYml0bWFwKTsKKwlndHQtPnBwYXRfdmFsdWVbaW5kZXhdID0gdmFsdWU7CisJb3BzLT5z ZXRfcGF0X3ZhbHVlKE5VTEwsIGluZGV4LCBndHQtPnBwYXRfdmFsdWVbaW5kZXhdLCBndnQpOwor Citmb3VuZDoKKwkvKiBOb3QgbmVlZCB0byBpbmNyZWFzZSByZWZlcmVuY2UgZm9yIGhvc3QgZW50 cmllcy4qLworCWlmICh0ZXN0X2JpdChpbmRleCwgZGV2X3ByaXYtPmF2YWlsX3BwYXRfYml0bWFw KSkKKwkJcmV0dXJuIGluZGV4OworCisJYXRvbWljX2luYygmZ3R0LT5wcGF0X3JlZmNbaW5kZXhd KTsKKwlyZXR1cm4gaW5kZXg7Cit9CisKK3N0YXRpYyB2b2lkIHB1dF9wcml2YXRlX3BhdF9pbmRl eChzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQsIHVuc2lnbmVkIGludCBpbmRleCkKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndnQtPmRldl9wcml2OworCXN0cnVjdCBpbnRl bF9ndnRfZ3R0ICpndHQgPSAmZ3Z0LT5ndHQ7CisKKwlpZiAoV0FSTl9PTighZ3R0LT5oYXNfcHBh dCkpCisJCXJldHVybjsKKworCS8qIE5vdGhpbmcgdG8gZG8gd2l0aCBob3N0IFBQQVQgY29uZmln dXJhdGlvbiAqLworCWlmICh0ZXN0X2JpdChpbmRleCwgZGV2X3ByaXYtPmF2YWlsX3BwYXRfYml0 bWFwKSkKKwkJcmV0dXJuOworCisJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmd0dC0+cHBhdF9y ZWZjW2luZGV4XSkpCisJCXNldF9iaXQoaW5kZXgsIGd0dC0+YXZhaWxfcHBhdF9iaXRtYXApOwor fQorCiAvKioKICAqIGludGVsX3ZncHVfZmluZF9wcGd0dF9tbSAtIGZpbmQgYSBQUEdUVCBtbSBv YmplY3QKICAqIEB2Z3B1OiBhIHZHUFUKQEAgLTIzODYsMTIgKzI0ODMsMTUgQEAgaW50IGludGVs X2d2dF9pbml0X2d0dChzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQpCiAJCWd2dC0+Z3R0LnB0ZV9vcHMg PSAmZ2VuOF9ndHRfcHRlX29wczsKIAkJZ3Z0LT5ndHQuZ21hX29wcyA9ICZnZW44X2d0dF9nbWFf b3BzOwogCQlndnQtPmd0dC5wYXRfb3BzID0gJmdlbjhfcGF0X29wczsKKwkJZ3Z0LT5ndHQubWF4 X3BwYXRfaW5kZXggPSA4OwogCQlndnQtPmd0dC5tbV9hbGxvY19wYWdlX3RhYmxlID0gZ2VuOF9t bV9hbGxvY19wYWdlX3RhYmxlOwogCQlndnQtPmd0dC5tbV9mcmVlX3BhZ2VfdGFibGUgPSBnZW44 X21tX2ZyZWVfcGFnZV90YWJsZTsKIAl9IGVsc2UgewogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAK KwlzZXR1cF9wcml2YXRlX3BhdChndnQpOworCiAJcGFnZSA9ICh2b2lkICopZ2V0X3plcm9lZF9w YWdlKEdGUF9LRVJORUwpOwogCWlmICghcGFnZSkgewogCQlndnRfZXJyKCJmYWlsIHRvIGFsbG9j YXRlIHNjcmF0Y2ggZ2d0dCBwYWdlXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d2dC9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndHQuaAppbmRleCAwMmY2 YmQ5Li42Y2Q0ZmM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3R0LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d0dC5oCkBAIC0xMDAsNiArMTAwLDEyIEBA IHN0cnVjdCBpbnRlbF9ndnRfZ3R0IHsKIAogCXN0cnVjdCBwYWdlICpzY3JhdGNoX2dndHRfcGFn ZTsKIAl1bnNpZ25lZCBsb25nIHNjcmF0Y2hfZ2d0dF9tZm47CisKKwlERUNMQVJFX0JJVE1BUChh dmFpbF9wcGF0X2JpdG1hcCwgTUFYX1BQQVRfSU5ERVgpOworCXVuc2lnbmVkIGludCBwcGF0X3Zh bHVlW01BWF9QUEFUX0lOREVYXTsKKwlhdG9taWNfdCBwcGF0X3JlZmNbTUFYX1BQQVRfSU5ERVhd OworCXVuc2lnbmVkIGludCBtYXhfcHBhdF9pbmRleDsKKwlib29sIGhhc19wcGF0OwogfTsKIAog ZW51bSB7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==