From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 for-4.7] xen/nested_p2m: Don't walk EPT tables with a regular PT walker Date: Fri, 13 May 2016 18:25:41 +0100 Message-ID: <1463160341-6080-1-git-send-email-andrew.cooper3@citrix.com> References: <57360C9802000078000EB4A8@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <57360C9802000078000EB4A8@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Kevin Tian , Wei Liu , Jan Beulich , George Dunlap , Andrew Cooper , Tim Deegan , Jun Nakajima List-Id: xen-devel@lists.xenproject.org aG9zdG1vZGUtPnAybV9nYV90b19nZm4oKSBpcyBhIHBsYWluIFBUIHdhbGtlciwgYW5kIGlzIG5v dCBhcHByb3ByaWF0ZSBmb3IgYQpnZW5lcmFsIEwxIHAybSB3YWxrLiAgSXQgaXMgZmluZSBmb3Ig QU1EIGFzIE5QVCBzaGFyZSB0aGUgc2FtZSBmb3JtYXQgYXMKbm9ybWFsIHBhZ2V0YWJsZXMuICBG b3IgSW50ZWwgRVBUIGhvd2V2ZXIsIGl0IGlzIHdyb25nLgoKVGhlIHRyYW5zbGF0aW9uIGVuZHMg dXAgY29ycmVjdCAoYXMgdGhlIGZvcm1hdHMgYXJlIHN1ZmZpY2llbnRseSBzaW1pbGFyKSwgYnV0 CnRoZSBjb250cm9sIGJpdHMgaW4gbG93ZXIgMTIgYml0cyBkaWZmZXIgaW4gbWVhbmluZy4gIEEg cGxhaW4gUFQgd2Fsa2VyIHNldHMKQS9EIGJpdHMgKGJpdHMgNSBhbmQgNikgYXMgaXQgd2Fsa3Ms IGJ1dCBpbiBFUFQgdGFibGVzLCB0aGVzZSBhcmUgdGhlIElQQVQgYW5kCnRvcCBiaXQgb2YgRU1U IChjYWNoaW5nIHR5cGUpLiAgVGhpcyBpbiB0dXJuIGNhdXNlcyBwcm9ibGVtIHdoZW4gdGhlIEVQ VAp0YWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkLgoKUmVwbGFjZSBob3N0bW9kZS0+cDJtX2dh X3RvX2dmbigpIHdpdGggbmVzdGVkaGFwX3dhbGtfTDFfcDJtKCkgaW4KcGFnaW5nX2d2YV90b19n Zm4oKSwgd2hpY2ggaXMgdGhlIGNvcnJlY3QgZnVuY3Rpb24gZm9yIHRoZSB0YXNrLiAgVGhpcwpp bnZvbHZlcyBtYWtpbmcgbmVzdGVkaGFwX3dhbGtfTDFfcDJtKCkgbm9uLXN0YXRpYywgYW5kIGFk ZGluZwp2bXhfdm1jc19lbnRlci9leGl0KCkgcGFpcnMgdG8gbnZteF9oYXBfd2Fsa19MMV9wMm0o KSBhcyBpdCBpcyBub3cgcmVhY2hhYmxlCmZyb20gY29udGV4dHMgb3RoZXIgdGhhbiB2ID09IGN1 cnJlbnQuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IEdlb3Jn ZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KQ0M6IFRpbSBEZWVnYW4gPHRp bUB4ZW4ub3JnPgpDQzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWppbWFAaW50ZWwuY29tPgpDQzog S2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1MkBj aXRyaXguY29tPgoKdjI6CiAqIEFTU0VSVCgpIHRoYXQgdGhlIHRyYW5zbGF0aW9uIGRvZXNuJ3Qg Z28gd3Jvbmcgd2l0aCBzdXBlcnBhZ2VzCi0tLQogeGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5j ICAgICAgICAgfCAgNCArKysrCiB4ZW4vYXJjaC94ODYvbW0vaGFwL25lc3RlZF9oYXAuYyAgICB8 ICAyICstCiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAgICAgICAgICB8IDI5ICsrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9uZXN0ZWRodm0u aCB8ICA0ICsrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMgYi94ZW4vYXJj aC94ODYvaHZtL3ZteC92dm14LmMKaW5kZXggMzVmMzY4Ny4uZmFhOGI2OSAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2 bXguYwpAQCAtMjAzNiw2ICsyMDM2LDggQEAgbnZteF9oYXBfd2Fsa19MMV9wMm0oc3RydWN0IHZj cHUgKnYsIHBhZGRyX3QgTDJfZ3BhLCBwYWRkcl90ICpMMV9ncGEsCiAgICAgdWludDMyX3Qgcnd4 X3JpZ2h0cyA9IChhY2Nlc3NfeCA8PCAyKSB8IChhY2Nlc3NfdyA8PCAxKSB8IGFjY2Vzc19yOwog ICAgIHN0cnVjdCBuZXN0ZWR2bXggKm52bXggPSAmdmNwdV8yX252bXgodik7CiAKKyAgICB2bXhf dm1jc19lbnRlcih2KTsKKwogICAgIF9fdm1yZWFkKEVYSVRfUVVBTElGSUNBVElPTiwgJmV4aXRf cXVhbCk7CiAgICAgcmMgPSBuZXB0X3RyYW5zbGF0ZV9sMmdhKHYsIEwyX2dwYSwgcGFnZV9vcmRl ciwgcnd4X3JpZ2h0cywgJmdmbiwgcDJtX2FjYywKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmV4aXRfcXVhbCwgJmV4aXRfcmVhc29uKTsKQEAgLTIwNjAsNiArMjA2Miw4IEBAIG52bXhf aGFwX3dhbGtfTDFfcDJtKHN0cnVjdCB2Y3B1ICp2LCBwYWRkcl90IEwyX2dwYSwgcGFkZHJfdCAq TDFfZ3BhLAogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICB2bXhfdm1jc19leGl0KHYpOwor CiAgICAgcmV0dXJuIHJjOwogfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vaGFwL25l c3RlZF9oYXAuYyBiL3hlbi9hcmNoL3g4Ni9tbS9oYXAvbmVzdGVkX2hhcC5jCmluZGV4IDljZWU1 YTAuLmQ0MWJiMDkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvbmVzdGVkX2hhcC5j CisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9oYXAvbmVzdGVkX2hhcC5jCkBAIC0xNDEsNyArMTQxLDcg QEAgbmVzdGVkaGFwX2ZpeF9wMm0oc3RydWN0IHZjcHUgKnYsIHN0cnVjdCBwMm1fZG9tYWluICpw Mm0sCiAgKiB3YWxrIGlzIHN1Y2Nlc3NmdWwsIHRoZSB0cmFuc2xhdGVkIHZhbHVlIGlzIHJldHVy bmVkIGluCiAgKiBMMV9ncGEuIFRoZSByZXN1bHQgdmFsdWUgdGVsbHMgd2hhdCB0byBkbyBuZXh0 LgogICovCi1zdGF0aWMgaW50CitpbnQKIG5lc3RlZGhhcF93YWxrX0wxX3AybShzdHJ1Y3QgdmNw dSAqdiwgcGFkZHJfdCBMMl9ncGEsIHBhZGRyX3QgKkwxX2dwYSwKICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgKnBhZ2Vfb3JkZXIsIHVpbnQ4X3QgKnAybV9hY2MsCiAgICAgICAg ICAgICAgICAgICAgICAgYm9vbF90IGFjY2Vzc19yLCBib29sX3QgYWNjZXNzX3csIGJvb2xfdCBh Y2Nlc3NfeCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4 Ni9tbS9wMm0uYwppbmRleCA5NGVhYmY2Li45YjE5NzY5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC0yMDgxLDIwICsyMDgx LDM5IEBAIHVuc2lnbmVkIGxvbmcgcGFnaW5nX2d2YV90b19nZm4oc3RydWN0IHZjcHUgKnYsCiAK ICAgICBpZiAoIGlzX2h2bV92Y3B1KHYpICYmIHBhZ2luZ19tb2RlX2hhcCh2LT5kb21haW4pICYm IG5lc3RlZGh2bV9pc19uMih2KSApCiAgICAgewotICAgICAgICB1bnNpZ25lZCBsb25nIGdmbjsK KyAgICAgICAgdW5zaWduZWQgbG9uZyBsMl9nZm4sIGwxX2dmbjsKICAgICAgICAgc3RydWN0IHAy bV9kb21haW4gKnAybTsKICAgICAgICAgY29uc3Qgc3RydWN0IHBhZ2luZ19tb2RlICptb2RlOwot ICAgICAgICB1aW50MzJfdCBwZmVjXzIxID0gKnBmZWM7CiAgICAgICAgIHVpbnQ2NF90IG5wMm1f YmFzZSA9IG5odm1fdmNwdV9wMm1fYmFzZSh2KTsKKyAgICAgICAgdWludDhfdCBsMV9wMm1hOwor ICAgICAgICB1bnNpZ25lZCBpbnQgbDFfcGFnZV9vcmRlcjsKKyAgICAgICAgaW50IHJ2OwogCiAg ICAgICAgIC8qIHRyYW5zbGF0ZSBsMiBndWVzdCB2YSBpbnRvIGwyIGd1ZXN0IGdmbiAqLwogICAg ICAgICBwMm0gPSBwMm1fZ2V0X25lc3RlZHAybSh2LCBucDJtX2Jhc2UpOwogICAgICAgICBtb2Rl ID0gcGFnaW5nX2dldF9uZXN0ZWRtb2RlKHYpOwotICAgICAgICBnZm4gPSBtb2RlLT5ndmFfdG9f Z2ZuKHYsIHAybSwgdmEsIHBmZWMpOworICAgICAgICBsMl9nZm4gPSBtb2RlLT5ndmFfdG9fZ2Zu KHYsIHAybSwgdmEsIHBmZWMpOworCisgICAgICAgIGlmICggbDJfZ2ZuID09IElOVkFMSURfR0ZO ICkKKyAgICAgICAgICAgIHJldHVybiBJTlZBTElEX0dGTjsKIAogICAgICAgICAvKiB0cmFuc2xh dGUgbDIgZ3Vlc3QgZ2ZuIGludG8gbDEgZ3Vlc3QgZ2ZuICovCi0gICAgICAgIHJldHVybiBob3N0 bW9kZS0+cDJtX2dhX3RvX2dmbih2LCBob3N0cDJtLCBucDJtX2Jhc2UsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnZm4gPDwgUEFHRV9TSElGVCwgJnBmZWNfMjEsIE5V TEwpOworICAgICAgICBydiA9IG5lc3RlZGhhcF93YWxrX0wxX3AybSh2LCBsMl9nZm4sICZsMV9n Zm4sICZsMV9wYWdlX29yZGVyLCAmbDFfcDJtYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgISEoKnBmZWMg JiBQRkVDX3dyaXRlX2FjY2VzcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICEhKCpwZmVjICYgUEZFQ19pbnNuX2ZldGNoKSk7CisKKyAgICAgICAgaWYgKCBydiAhPSBORVNU RURIVk1fUEFHRUZBVUxUX0RPTkUgKQorICAgICAgICAgICAgcmV0dXJuIElOVkFMSURfR0ZOOwor CisgICAgICAgIC8qCisgICAgICAgICAqIFNhbml0eSBjaGVjayB0aGF0IGwxX2dmbiBjYW4gYmUg dXNlZCBwcm9wZXJseSBhcyBhIDRLIG1hcHBpbmcsIGV2ZW4KKyAgICAgICAgICogaWYgaXQgbWFw cGVkIGJ5IGEgbmVzdGVkIHN1cGVycGFnZS4KKyAgICAgICAgICovCisgICAgICAgIEFTU0VSVCgo bDJfZ2ZuICYgKCgxdWwgPDwgbDFfcGFnZV9vcmRlcikgLSAxKSkgPT0KKyAgICAgICAgICAgICAg IChsMV9nZm4gJiAoKDF1bCA8PCBsMV9wYWdlX29yZGVyKSAtIDEpKSk7CisKKyAgICAgICAgcmV0 dXJuIGwxX2dmbjsKICAgICB9CiAKICAgICByZXR1cm4gaG9zdG1vZGUtPmd2YV90b19nZm4odiwg aG9zdHAybSwgdmEsIHBmZWMpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0v bmVzdGVkaHZtLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9uZXN0ZWRodm0uaAppbmRleCBj ZjFhOGY0Li5iYzgyNDI1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9uZXN0 ZWRodm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9uZXN0ZWRodm0uaApAQCAtNTYs NiArNTYsMTAgQEAgYm9vbF90IG5lc3RlZGh2bV92Y3B1X2luX2d1ZXN0bW9kZShzdHJ1Y3QgdmNw dSAqdik7CiBpbnQgbmVzdGVkaHZtX2hhcF9uZXN0ZWRfcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAq diwgcGFkZHJfdCAqTDJfZ3BhLAogICAgIGJvb2xfdCBhY2Nlc3NfciwgYm9vbF90IGFjY2Vzc193 LCBib29sX3QgYWNjZXNzX3gpOwogCitpbnQgbmVzdGVkaGFwX3dhbGtfTDFfcDJtKHN0cnVjdCB2 Y3B1ICp2LCBwYWRkcl90IEwyX2dwYSwgcGFkZHJfdCAqTDFfZ3BhLAorICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgKnBhZ2Vfb3JkZXIsIHVpbnQ4X3QgKnAybV9hY2MsCisg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xfdCBhY2Nlc3NfciwgYm9vbF90IGFjY2Vzc193 LCBib29sX3QgYWNjZXNzX3gpOworCiAvKiBJTyBwZXJtaXNzaW9uIG1hcCAqLwogdW5zaWduZWQg bG9uZyAqbmVzdGVkaHZtX3ZjcHVfaW9tYXBfZ2V0KGJvb2xfdCBpb3BvcnRfODAsIGJvb2xfdCBp b3BvcnRfZWQpOwogCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==