From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhenyu Wang Subject: [PATCH v10 3/3] drm/i915/gvt: Fix guest i915 full ppgtt blocking issue Date: Mon, 14 Aug 2017 15:41:40 +0800 Message-ID: <20170814074140.23151-4-zhenyuw@linux.intel.com> References: <20170814074140.23151-1-zhenyuw@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170814074140.23151-1-zhenyuw@linux.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 Cc: intel-gvt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVGluYSBaaGFuZyA8dGluYS56aGFuZ0BpbnRlbC5jb20+CgpHdWVzdCBpOTE1IGZ1bGwg cHBndHQgZnVuY3Rpb25hbGl0eSB3YXMgYmxvY2tpbmcgYnkgYW4gaXNzdWUsIHdoaWNoIHdvdWxk CmxlYWQgdG8gZ3B1IGhhcmR3YXJlIGhhbmcuIEd1ZXN0IGk5MTUgZHJpdmVyIG1heSB1cGRhdGUg dGhlIHBwZ3R0IHRhYmxlCmp1c3QgYmVmb3JlIHRoaXMgd29ya2xvYWQgaXMgZ29pbmcgdG8gYmUg c3VibWl0dGVkIHRvIHRoZSBoYXJkd2FyZSBieQpkZXZpY2UgbW9kZWwuIFRoaXMgY2FzZSB3YXNu J3QgaGFuZGxlZCB3ZWxsIGJ5IGRldmljZSBtb2RlbCBiZWZvcmUsIGR1ZQp0byB0aGUgc21hbGwg dGltZSB3aW5kb3cgYmV0d2VlbiByZW1vdmluZyBvbGQgcHBndHQgZW50cnkgYW5kIGFkZGluZyB0 aGUKbmV3IG9uZS4gRXJyb3JzIG9jY3VyIHdoZW4gdGhlIHdvcmtsb2FkIGlzIGV4ZWN1dGVkIGJ5 IGhhcmR3YXJlIGR1cmluZwp0aGF0IHNtYWxsIHRpbWUgd2luZG93LiBUaGlzIHBhdGNoIGlzIHRv IHJlbW92ZSB0aGlzIHRpbWUgd2luZG93IGJ5IGFkZGluZwp0aGUgbmV3IHBwZ3R0IGVudHJ5IGZp cnN0IGFuZCB0aGVuIHJlbW92ZSB0aGUgb2xkIG9uZS4KCkNoYW5nZXMgaW4gdjI6Ci0gTW92ZSBW R1RfQ0FQU19GVUxMX1BQR1RUIGludHJvZHVjdGlvbiB0byBwYXRjaCAyLzQuIChKb29uYXMpCgpD aGFuZ2VzIHNpbmNlIHYyOgotIERpdmlkZSB0aGUgd2hvbGUgcGF0Y2ggc2V0IGludG8gdHdvIHNl cGFyYXRlIHBhdGNoIHNlcmllcywgd2l0aCBvbmUKICBwYXRjaCBpbiBpOTE1IHNpZGUgdG8gY2hl Y2sgZ3Vlc3QgaTkxNSBmdWxsIHBwZ3R0IGNhcGFiaWxpdHkgYW5kIGVuYWJsZQogIGl0IHdoZW4g dGhpcyBjYXBhYmlsaXR5IGlzIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlIG1vZGVsLCBhbmQgdGhl IG90aGVyCiAgb25lIGluIGd2dCBzaWRlIHdoaWNoIGZpeHMgdGhlIGJsb2NraW5nIGlzc3VlIGFu ZCBlbmFibGVzIHRoZSBkZXZpY2UKICBtb2RlbCB0byBwcm92aWRlIHRoZSBjYXBhYmlsaXR5IHRv IGd1ZXN0LiBBbmQgdGhpcyBwYXRjaCBmb2N1c2VzIG9uIGd2dAogIHNpZGUuIChKb29uYXMpCi0g Q2hhbmdlIHRoZSB0aXRsZSBmcm9tICJyZW9yZGVyIHRoZSBzaGFkb3cgcHBndHQgdXBkYXRlIHBy b2Nlc3MgYnkgYWRkaW5nCiAgZW50cnkgZmlyc3QiIHRvICJGaXggZ3Vlc3QgaTkxNSBmdWxsIHBw Z3R0IGJsb2NraW5nIGlzc3VlIi4gKFRpbmEpCgpDaGFuZ2VzIHNpbmNlIHYzOgotIFJlYmFzZSB0 byB0aGUgbGF0ZXN0IGJyYW5jaC4KCkNoYW5nZXMgc2luY2UgdjQ6Ci0gVGVzdGVkIGJ5IFRpbmEg WmhhbmcuCgpDaGFuZ2VzIHNpbmNlIHY1OgotIFJlYmFzZSB0byB0aGUgbGF0ZXN0IGJyYW5jaC4K CnY2OgotIFVwZGF0ZSBmdWxsIDQ4Yml0IHBwZ3R0IGRlZmluaXRpb24KCkNjOiBUaW5hIFpoYW5n IDx0aW5hLnpoYW5nQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVGluYSBaaGFuZyA8dGluYS56 aGFuZ0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFpoZW55dSBXYW5nIDx6aGVueXV3QGxpbnV4 LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3R0LmMgIHwgNDUgKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2d2dC92Z3B1LmMgfCAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyks IDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9n dHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndHQuYwppbmRleCBmODYyNjgxYzcwZDEu LmU2ZGZjMzMzMWY0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d0dC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndHQuYwpAQCAtOTg5LDI5ICs5ODksMjYg QEAgc3RhdGljIGludCBwcGd0dF9wb3B1bGF0ZV9zaGFkb3dfcGFnZShzdHJ1Y3QgaW50ZWxfdmdw dV9wcGd0dF9zcHQgKnNwdCkKIH0KIAogc3RhdGljIGludCBwcGd0dF9oYW5kbGVfZ3Vlc3RfZW50 cnlfcmVtb3ZhbChzdHJ1Y3QgaW50ZWxfdmdwdV9ndWVzdF9wYWdlICpncHQsCi0JCXVuc2lnbmVk IGxvbmcgaW5kZXgpCisJCXN0cnVjdCBpbnRlbF9ndnRfZ3R0X2VudHJ5ICpzZSwgdW5zaWduZWQg bG9uZyBpbmRleCkKIHsKIAlzdHJ1Y3QgaW50ZWxfdmdwdV9wcGd0dF9zcHQgKnNwdCA9IGd1ZXN0 X3BhZ2VfdG9fcHBndHRfc3B0KGdwdCk7CiAJc3RydWN0IGludGVsX3ZncHVfc2hhZG93X3BhZ2Ug KnNwID0gJnNwdC0+c2hhZG93X3BhZ2U7CiAJc3RydWN0IGludGVsX3ZncHUgKnZncHUgPSBzcHQt PnZncHU7CiAJc3RydWN0IGludGVsX2d2dF9ndHRfcHRlX29wcyAqb3BzID0gdmdwdS0+Z3Z0LT5n dHQucHRlX29wczsKLQlzdHJ1Y3QgaW50ZWxfZ3Z0X2d0dF9lbnRyeSBlOwogCWludCByZXQ7CiAK LQlwcGd0dF9nZXRfc2hhZG93X2VudHJ5KHNwdCwgJmUsIGluZGV4KTsKLQotCXRyYWNlX2dwdF9j aGFuZ2Uoc3B0LT52Z3B1LT5pZCwgInJlbW92ZSIsIHNwdCwgc3AtPnR5cGUsIGUudmFsNjQsCisJ dHJhY2VfZ3B0X2NoYW5nZShzcHQtPnZncHUtPmlkLCAicmVtb3ZlIiwgc3B0LCBzcC0+dHlwZSwg c2UtPnZhbDY0LAogCQkJIGluZGV4KTsKIAotCWlmICghb3BzLT50ZXN0X3ByZXNlbnQoJmUpKQor CWlmICghb3BzLT50ZXN0X3ByZXNlbnQoc2UpKQogCQlyZXR1cm4gMDsKIAotCWlmIChvcHMtPmdl dF9wZm4oJmUpID09IHZncHUtPmd0dC5zY3JhdGNoX3B0W3NwLT50eXBlXS5wYWdlX21mbikKKwlp ZiAob3BzLT5nZXRfcGZuKHNlKSA9PSB2Z3B1LT5ndHQuc2NyYXRjaF9wdFtzcC0+dHlwZV0ucGFn ZV9tZm4pCiAJCXJldHVybiAwOwogCi0JaWYgKGd0dF90eXBlX2lzX3B0KGdldF9uZXh0X3B0X3R5 cGUoZS50eXBlKSkpIHsKKwlpZiAoZ3R0X3R5cGVfaXNfcHQoZ2V0X25leHRfcHRfdHlwZShzZS0+ dHlwZSkpKSB7CiAJCXN0cnVjdCBpbnRlbF92Z3B1X3BwZ3R0X3NwdCAqcyA9Ci0JCQlwcGd0dF9m aW5kX3NoYWRvd19wYWdlKHZncHUsIG9wcy0+Z2V0X3BmbigmZSkpOworCQkJcHBndHRfZmluZF9z aGFkb3dfcGFnZSh2Z3B1LCBvcHMtPmdldF9wZm4oc2UpKTsKIAkJaWYgKCFzKSB7CiAJCQlndnRf dmdwdV9lcnIoImZhaWwgdG8gZmluZCBndWVzdCBwYWdlXG4iKTsKIAkJCXJldCA9IC1FTlhJTzsK QEAgLTEwMjEsMTIgKzEwMTgsMTAgQEAgc3RhdGljIGludCBwcGd0dF9oYW5kbGVfZ3Vlc3RfZW50 cnlfcmVtb3ZhbChzdHJ1Y3QgaW50ZWxfdmdwdV9ndWVzdF9wYWdlICpncHQsCiAJCWlmIChyZXQp CiAJCQlnb3RvIGZhaWw7CiAJfQotCW9wcy0+c2V0X3BmbigmZSwgdmdwdS0+Z3R0LnNjcmF0Y2hf cHRbc3AtPnR5cGVdLnBhZ2VfbWZuKTsKLQlwcGd0dF9zZXRfc2hhZG93X2VudHJ5KHNwdCwgJmUs IGluZGV4KTsKIAlyZXR1cm4gMDsKIGZhaWw6CiAJZ3Z0X3ZncHVfZXJyKCJmYWlsOiBzaGFkb3cg cGFnZSAlcCBndWVzdCBlbnRyeSAweCVsbHggdHlwZSAlZFxuIiwKLQkJCXNwdCwgZS52YWw2NCwg ZS50eXBlKTsKKwkJCXNwdCwgc2UtPnZhbDY0LCBzZS0+dHlwZSk7CiAJcmV0dXJuIHJldDsKIH0K IApAQCAtMTI0NiwyMiArMTI0MSwzNyBAQCBzdGF0aWMgaW50IHBwZ3R0X2hhbmRsZV9ndWVzdF93 cml0ZV9wYWdlX3RhYmxlKAogewogCXN0cnVjdCBpbnRlbF92Z3B1X3BwZ3R0X3NwdCAqc3B0ID0g Z3Vlc3RfcGFnZV90b19wcGd0dF9zcHQoZ3B0KTsKIAlzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSA9 IHNwdC0+dmdwdTsKKwlpbnQgdHlwZSA9IHNwdC0+c2hhZG93X3BhZ2UudHlwZTsKIAlzdHJ1Y3Qg aW50ZWxfZ3Z0X2d0dF9wdGVfb3BzICpvcHMgPSB2Z3B1LT5ndnQtPmd0dC5wdGVfb3BzOworCXN0 cnVjdCBpbnRlbF9ndnRfZ3R0X2VudHJ5IHNlOwogCiAJaW50IHJldDsKIAlpbnQgbmV3X3ByZXNl bnQ7CiAKIAluZXdfcHJlc2VudCA9IG9wcy0+dGVzdF9wcmVzZW50KHdlKTsKIAotCXJldCA9IHBw Z3R0X2hhbmRsZV9ndWVzdF9lbnRyeV9yZW1vdmFsKGdwdCwgaW5kZXgpOwotCWlmIChyZXQpCi0J CWdvdG8gZmFpbDsKKwkvKgorCSAqIEFkZGluZyB0aGUgbmV3IGVudHJ5IGZpcnN0IGFuZCB0aGVu IHJlbW92aW5nIHRoZSBvbGQgb25lLCB0aGF0IGNhbgorCSAqIGd1YXJhbnRlZSB0aGUgcHBndHQg dGFibGUgaXMgdmFsaWRhdGVkIGR1cmluZyB0aGUgd2luZG93IGJldHdlZW4KKwkgKiBhZGRpbmcg YW5kIHJlbW92YWwuCisJICovCisJcHBndHRfZ2V0X3NoYWRvd19lbnRyeShzcHQsICZzZSwgaW5k ZXgpOwogCiAJaWYgKG5ld19wcmVzZW50KSB7CiAJCXJldCA9IHBwZ3R0X2hhbmRsZV9ndWVzdF9l bnRyeV9hZGQoZ3B0LCB3ZSwgaW5kZXgpOwogCQlpZiAocmV0KQogCQkJZ290byBmYWlsOwogCX0K KworCXJldCA9IHBwZ3R0X2hhbmRsZV9ndWVzdF9lbnRyeV9yZW1vdmFsKGdwdCwgJnNlLCBpbmRl eCk7CisJaWYgKHJldCkKKwkJZ290byBmYWlsOworCisJaWYgKCFuZXdfcHJlc2VudCkgeworCQlv cHMtPnNldF9wZm4oJnNlLCB2Z3B1LT5ndHQuc2NyYXRjaF9wdFt0eXBlXS5wYWdlX21mbik7CisJ CXBwZ3R0X3NldF9zaGFkb3dfZW50cnkoc3B0LCAmc2UsIGluZGV4KTsKKwl9CisKIAlyZXR1cm4g MDsKIGZhaWw6CiAJZ3Z0X3ZncHVfZXJyKCJmYWlsOiBzaGFkb3cgcGFnZSAlcCBndWVzdCBlbnRy eSAweCVsbHggdHlwZSAlZC5cbiIsCkBAIC0xMzMzLDcgKzEzNDMsNyBAQCBzdGF0aWMgaW50IHBw Z3R0X2hhbmRsZV9ndWVzdF93cml0ZV9wYWdlX3RhYmxlX2J5dGVzKHZvaWQgKmdwLAogCXN0cnVj dCBpbnRlbF92Z3B1ICp2Z3B1ID0gc3B0LT52Z3B1OwogCXN0cnVjdCBpbnRlbF9ndnRfZ3R0X3B0 ZV9vcHMgKm9wcyA9IHZncHUtPmd2dC0+Z3R0LnB0ZV9vcHM7CiAJY29uc3Qgc3RydWN0IGludGVs X2d2dF9kZXZpY2VfaW5mbyAqaW5mbyA9ICZ2Z3B1LT5ndnQtPmRldmljZV9pbmZvOwotCXN0cnVj dCBpbnRlbF9ndnRfZ3R0X2VudHJ5IHdlOworCXN0cnVjdCBpbnRlbF9ndnRfZ3R0X2VudHJ5IHdl LCBzZTsKIAl1bnNpZ25lZCBsb25nIGluZGV4OwogCWludCByZXQ7CiAKQEAgLTEzNDksNyArMTM1 OSw4IEBAIHN0YXRpYyBpbnQgcHBndHRfaGFuZGxlX2d1ZXN0X3dyaXRlX3BhZ2VfdGFibGVfYnl0 ZXModm9pZCAqZ3AsCiAJCQlyZXR1cm4gcmV0OwogCX0gZWxzZSB7CiAJCWlmICghdGVzdF9iaXQo aW5kZXgsIHNwdC0+cG9zdF9zaGFkb3dfYml0bWFwKSkgewotCQkJcmV0ID0gcHBndHRfaGFuZGxl X2d1ZXN0X2VudHJ5X3JlbW92YWwoZ3B0LCBpbmRleCk7CisJCQlwcGd0dF9nZXRfc2hhZG93X2Vu dHJ5KHNwdCwgJnNlLCBpbmRleCk7CisJCQlyZXQgPSBwcGd0dF9oYW5kbGVfZ3Vlc3RfZW50cnlf cmVtb3ZhbChncHQsICZzZSwgaW5kZXgpOwogCQkJaWYgKHJldCkKIAkJCQlyZXR1cm4gcmV0Owog CQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvdmdwdS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Z0L3ZncHUuYwppbmRleCA1YjQ0ZDEyM2JmMjQuLjU4OTZlYWQ4NTI5 ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3ZncHUuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndnQvdmdwdS5jCkBAIC00Myw2ICs0Myw3IEBAIHZvaWQgcG9wdWxh dGVfcHZpbmZvX3BhZ2Uoc3RydWN0IGludGVsX3ZncHUgKnZncHUpCiAJdmdwdV92cmVnKHZncHUs IHZndGlmX3JlZyh2ZXJzaW9uX21pbm9yKSkgPSAwOwogCXZncHVfdnJlZyh2Z3B1LCB2Z3RpZl9y ZWcoZGlzcGxheV9yZWFkeSkpID0gMDsKIAl2Z3B1X3ZyZWcodmdwdSwgdmd0aWZfcmVnKHZndF9p ZCkpID0gdmdwdS0+aWQ7CisJdmdwdV92cmVnKHZncHUsIHZndGlmX3JlZyh2Z3RfY2FwcykpID0g VkdUX0NBUFNfRlVMTF80OEJJVF9QUEdUVDsKIAl2Z3B1X3ZyZWcodmdwdSwgdmd0aWZfcmVnKGF2 YWlsX3JzLm1hcHBhYmxlX2dtYWRyLmJhc2UpKSA9CiAJCXZncHVfYXBlcnR1cmVfZ21hZHJfYmFz ZSh2Z3B1KTsKIAl2Z3B1X3ZyZWcodmdwdSwgdmd0aWZfcmVnKGF2YWlsX3JzLm1hcHBhYmxlX2dt YWRyLnNpemUpKSA9Ci0tIAoyLjE0LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=