From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 2/3] x86/shadow: Drop all emulation for PV vcpus Date: Tue, 13 Dec 2016 16:54:33 +0000 Message-ID: <1481648074-11455-3-git-send-email-andrew.cooper3@citrix.com> References: <1481648074-11455-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1481648074-11455-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org RW11bGF0aW9uIGlzIG9ubHkgcGVyZm9ybWVkIGZvciBwYWdpbmdfbW9kZV9yZWZjb3VudCgpIGRv bWFpbnMsIHdoaWNoIGluCnByYWN0aWNlIG1lYW5zIEhWTSBkb21haW5zIG9ubHkuCgpEcm9wIHRo ZSBQViBlbXVsYXRpb24gY29kZS4gIEFzIGl0IGFsd2F5cyBzZXQgYWRkcl9zaWRlIGFuZCBzcF9z aXplIHRvCkJJVFNfUEVSX0xPTkcsIGl0IGNhbid0IGhhdmUgd29ya2VkIGNvcnJlY3RseSBmb3Ig UFYgZ3Vlc3RzIHJ1bm5pbmcgaW4gYQpkaWZmZXJlbnQgbW9kZSB0byBYZW4uCgpTaWduZWQtb2Zm LWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTog VGltIERlZWdhbiA8dGltQHhlbi5vcmc+Ci0tLQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21t b24uYyB8IDExMSArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4v YXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMgIHwgIDIxICsrLS0tLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDIyIGluc2VydGlvbnMoKyksIDExMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21t b24uYwppbmRleCA3OWJiMTJlLi4wYmE0MTUzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0v c2hhZG93L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKQEAg LTMxOCw3NSArMzE4LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB4ODZfZW11bGF0ZV9vcHMgaHZt X3NoYWRvd19lbXVsYXRvcl9vcHMgPSB7CiAgICAgLmNwdWlkICAgICAgPSBodm1lbXVsX2NwdWlk LAogfTsKIAotc3RhdGljIGludAotcHZfZW11bGF0ZV9yZWFkKGVudW0geDg2X3NlZ21lbnQgc2Vn LAotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAotICAgICAgICAgICAgICAg IHZvaWQgKnBfZGF0YSwKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgYnl0ZXMsCi0gICAg ICAgICAgICAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCi17Ci0gICAgdW5zaWdu ZWQgaW50IHJjOwotCi0gICAgaWYgKCAhaXNfeDg2X3VzZXJfc2VnbWVudChzZWcpICkKLSAgICAg ICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwotCi0gICAgaWYgKCAocmMgPSBjb3B5X2Zy b21fdXNlcihwX2RhdGEsICh2b2lkICopb2Zmc2V0LCBieXRlcykpICE9IDAgKQotICAgIHsKLSAg ICAgICAgeDg2X2VtdWxfcGFnZWZhdWx0KDAsIG9mZnNldCArIGJ5dGVzIC0gcmMsIGN0eHQpOyAv KiBSZWFkIGZhdWx0LiAqLwotICAgICAgICByZXR1cm4gWDg2RU1VTF9FWENFUFRJT047Ci0gICAg fQotCi0gICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKLX0KLQotc3RhdGljIGludAotcHZfZW11bGF0 ZV93cml0ZShlbnVtIHg4Nl9zZWdtZW50IHNlZywKLSAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBvZmZzZXQsCi0gICAgICAgICAgICAgICAgIHZvaWQgKnBfZGF0YSwKLSAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IGJ5dGVzLAotICAgICAgICAgICAgICAgICBzdHJ1Y3QgeDg2X2Vt dWxhdGVfY3R4dCAqY3R4dCkKLXsKLSAgICBzdHJ1Y3Qgc2hfZW11bGF0ZV9jdHh0ICpzaF9jdHh0 ID0KLSAgICAgICAgY29udGFpbmVyX29mKGN0eHQsIHN0cnVjdCBzaF9lbXVsYXRlX2N0eHQsIGN0 eHQpOwotICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsKLSAgICBpZiAoICFpc194ODZfdXNl cl9zZWdtZW50KHNlZykgKQotICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7Ci0g ICAgcmV0dXJuIHYtPmFyY2gucGFnaW5nLm1vZGUtPnNoYWRvdy54ODZfZW11bGF0ZV93cml0ZSgK LSAgICAgICAgdiwgb2Zmc2V0LCBwX2RhdGEsIGJ5dGVzLCBzaF9jdHh0KTsKLX0KLQotc3RhdGlj IGludAotcHZfZW11bGF0ZV9jbXB4Y2hnKGVudW0geDg2X3NlZ21lbnQgc2VnLAotICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAotICAgICAgICAgICAgICAgICAgIHZvaWQg KnBfb2xkLAotICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfbmV3LAotICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBieXRlcywKLSAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeDg2X2Vt dWxhdGVfY3R4dCAqY3R4dCkKLXsKLSAgICBzdHJ1Y3Qgc2hfZW11bGF0ZV9jdHh0ICpzaF9jdHh0 ID0KLSAgICAgICAgY29udGFpbmVyX29mKGN0eHQsIHN0cnVjdCBzaF9lbXVsYXRlX2N0eHQsIGN0 eHQpOwotICAgIHVuc2lnbmVkIGxvbmcgb2xkLCBuZXc7Ci0gICAgc3RydWN0IHZjcHUgKnYgPSBj dXJyZW50OwotCi0gICAgaWYgKCAhaXNfeDg2X3VzZXJfc2VnbWVudChzZWcpIHx8IGJ5dGVzID4g c2l6ZW9mKGxvbmcpICkKLSAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwotCi0g ICAgb2xkID0gbmV3ID0gMDsKLSAgICBtZW1jcHkoJm9sZCwgcF9vbGQsIGJ5dGVzKTsKLSAgICBt ZW1jcHkoJm5ldywgcF9uZXcsIGJ5dGVzKTsKLQotICAgIHJldHVybiB2LT5hcmNoLnBhZ2luZy5t b2RlLT5zaGFkb3cueDg2X2VtdWxhdGVfY21weGNoZygKLSAgICAgICAgICAgICAgIHYsIG9mZnNl dCwgb2xkLCBuZXcsIGJ5dGVzLCBzaF9jdHh0KTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4 ODZfZW11bGF0ZV9vcHMgcHZfc2hhZG93X2VtdWxhdG9yX29wcyA9IHsKLSAgICAucmVhZCAgICAg ICA9IHB2X2VtdWxhdGVfcmVhZCwKLSAgICAuaW5zbl9mZXRjaCA9IHB2X2VtdWxhdGVfcmVhZCwK LSAgICAud3JpdGUgICAgICA9IHB2X2VtdWxhdGVfd3JpdGUsCi0gICAgLmNtcHhjaGcgICAgPSBw dl9lbXVsYXRlX2NtcHhjaGcsCi0gICAgLmNwdWlkICAgICAgPSBwdl9lbXVsX2NwdWlkLAotfTsK LQogY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyAqc2hhZG93X2luaXRfZW11bGF0aW9uKAog ICAgIHN0cnVjdCBzaF9lbXVsYXRlX2N0eHQgKnNoX2N0eHQsIHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKQogewpAQCAtMzk0LDE3ICszMjUsMTMgQEAgY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRl X29wcyAqc2hhZG93X2luaXRfZW11bGF0aW9uKAogICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVu dDsKICAgICB1bnNpZ25lZCBsb25nIGFkZHI7CiAKKyAgICBBU1NFUlQoaGFzX2h2bV9jb250YWlu ZXJfdmNwdSh2KSk7CisKICAgICBtZW1zZXQoc2hfY3R4dCwgMCwgc2l6ZW9mKCpzaF9jdHh0KSk7 CiAKICAgICBzaF9jdHh0LT5jdHh0LnJlZ3MgPSByZWdzOwogICAgIHNoX2N0eHQtPmN0eHQuc3dp bnRfZW11bGF0ZSA9IHg4Nl9zd2ludF9lbXVsYXRlX25vbmU7CiAKLSAgICBpZiAoIGlzX3B2X3Zj cHUodikgKQotICAgIHsKLSAgICAgICAgc2hfY3R4dC0+Y3R4dC5hZGRyX3NpemUgPSBzaF9jdHh0 LT5jdHh0LnNwX3NpemUgPSBCSVRTX1BFUl9MT05HOwotICAgICAgICByZXR1cm4gJnB2X3NoYWRv d19lbXVsYXRvcl9vcHM7Ci0gICAgfQotCiAgICAgLyogU2VnbWVudCBjYWNoZSBpbml0aWFsaXNh dGlvbi4gUHJpbWVkIHdpdGggQ1MuICovCiAgICAgY3JlZyA9IGh2bV9nZXRfc2VnX3JlZyh4ODZf c2VnX2NzLCBzaF9jdHh0KTsKIApAQCAtNDQxLDI0ICszNjgsMjQgQEAgdm9pZCBzaGFkb3dfY29u dGludWVfZW11bGF0aW9uKHN0cnVjdCBzaF9lbXVsYXRlX2N0eHQgKnNoX2N0eHQsCiAgICAgc3Ry dWN0IHZjcHUgKnYgPSBjdXJyZW50OwogICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgZGlmZjsKIAot ICAgIC8qIFdlIGRvbid0IHJlZmV0Y2ggdGhlIHNlZ21lbnQgYmFzZXMsIGJlY2F1c2Ugd2UgZG9u J3QgZW11bGF0ZQotICAgICAqIHdyaXRlcyB0byBzZWdtZW50IHJlZ2lzdGVycyAqLworICAgIEFT U0VSVChoYXNfaHZtX2NvbnRhaW5lcl92Y3B1KHYpKTsKIAotICAgIGlmICggaXNfaHZtX3ZjcHUo dikgKQotICAgIHsKLSAgICAgICAgZGlmZiA9IHJlZ3MtPmVpcCAtIHNoX2N0eHQtPmluc25fYnVm X2VpcDsKLSAgICAgICAgaWYgKCBkaWZmID4gc2hfY3R4dC0+aW5zbl9idWZfYnl0ZXMgKQotICAg ICAgICB7Ci0gICAgICAgICAgICAvKiBQcmVmZXRjaCBtb3JlIGJ5dGVzLiAqLwotICAgICAgICAg ICAgc2hfY3R4dC0+aW5zbl9idWZfYnl0ZXMgPQotICAgICAgICAgICAgICAgICghaHZtX3RyYW5z bGF0ZV9saW5lYXJfYWRkcigKLSAgICAgICAgICAgICAgICAgICAgeDg2X3NlZ19jcywgcmVncy0+ ZWlwLCBzaXplb2Yoc2hfY3R4dC0+aW5zbl9idWYpLAotICAgICAgICAgICAgICAgICAgICBodm1f YWNjZXNzX2luc25fZmV0Y2gsIHNoX2N0eHQsICZhZGRyKSAmJgotICAgICAgICAgICAgICAgICAh aHZtX2ZldGNoX2Zyb21fZ3Vlc3RfbGluZWFyKAotICAgICAgICAgICAgICAgICAgICAgc2hfY3R4 dC0+aW5zbl9idWYsIGFkZHIsIHNpemVvZihzaF9jdHh0LT5pbnNuX2J1ZiksIDAsIE5VTEwpKQot ICAgICAgICAgICAgICAgID8gc2l6ZW9mKHNoX2N0eHQtPmluc25fYnVmKSA6IDA7Ci0gICAgICAg ICAgICBzaF9jdHh0LT5pbnNuX2J1Zl9laXAgPSByZWdzLT5laXA7Ci0gICAgICAgIH0KKyAgICAv KgorICAgICAqIFdlIGRvbid0IHJlZmV0Y2ggdGhlIHNlZ21lbnQgYmFzZXMsIGJlY2F1c2Ugd2Ug ZG9uJ3QgZW11bGF0ZQorICAgICAqIHdyaXRlcyB0byBzZWdtZW50IHJlZ2lzdGVycworICAgICAq LworICAgIGRpZmYgPSByZWdzLT5laXAgLSBzaF9jdHh0LT5pbnNuX2J1Zl9laXA7CisgICAgaWYg KCBkaWZmID4gc2hfY3R4dC0+aW5zbl9idWZfYnl0ZXMgKQorICAgIHsKKyAgICAgICAgLyogUHJl ZmV0Y2ggbW9yZSBieXRlcy4gKi8KKyAgICAgICAgc2hfY3R4dC0+aW5zbl9idWZfYnl0ZXMgPQor ICAgICAgICAgICAgKCFodm1fdHJhbnNsYXRlX2xpbmVhcl9hZGRyKAorICAgICAgICAgICAgICAg IHg4Nl9zZWdfY3MsIHJlZ3MtPmVpcCwgc2l6ZW9mKHNoX2N0eHQtPmluc25fYnVmKSwKKyAgICAg ICAgICAgICAgICBodm1fYWNjZXNzX2luc25fZmV0Y2gsIHNoX2N0eHQsICZhZGRyKSAmJgorICAg ICAgICAgICAgICFodm1fZmV0Y2hfZnJvbV9ndWVzdF9saW5lYXIoCisgICAgICAgICAgICAgICAg IHNoX2N0eHQtPmluc25fYnVmLCBhZGRyLCBzaXplb2Yoc2hfY3R4dC0+aW5zbl9idWYpLCAwLCBO VUxMKSkKKyAgICAgICAgICAgID8gc2l6ZW9mKHNoX2N0eHQtPmluc25fYnVmKSA6IDA7CisgICAg ICAgIHNoX2N0eHQtPmluc25fYnVmX2VpcCA9IHJlZ3MtPmVpcDsKICAgICB9CiB9CiAKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYyBiL3hlbi9hcmNoL3g4Ni9tbS9z aGFkb3cvbXVsdGkuYwppbmRleCBkMjVlYWQxLi4zMzZkMjRmIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvbW0vc2hhZG93L211bHRpLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0 aS5jCkBAIC0zMzc4LDEyICszMzc4LDcgQEAgc3RhdGljIGludCBzaF9wYWdlX2ZhdWx0KHN0cnVj dCB2Y3B1ICp2LAogICAgICAgICAgICAgICAoKChlbXVsX2N0eHQuY3R4dC5ldmVudC52ZWN0b3Ig PT0gVFJBUF9ncF9mYXVsdCkgfHwKICAgICAgICAgICAgICAgICAoZW11bF9jdHh0LmN0eHQuZXZl bnQudmVjdG9yID09IFRSQVBfc3RhY2tfZXJyb3IpKSAmJgogICAgICAgICAgICAgICAgZW11bF9j dHh0LmN0eHQuZXZlbnQuZXJyb3JfY29kZSA9PSAwKSkgKQotICAgICAgICB7Ci0gICAgICAgICAg ICBpZiAoIGhhc19odm1fY29udGFpbmVyX2RvbWFpbihkKSApCi0gICAgICAgICAgICAgICAgaHZt X2luamVjdF9ldmVudCgmZW11bF9jdHh0LmN0eHQuZXZlbnQpOwotICAgICAgICAgICAgZWxzZQot ICAgICAgICAgICAgICAgIHB2X2luamVjdF9ldmVudCgmZW11bF9jdHh0LmN0eHQuZXZlbnQpOwot ICAgICAgICB9CisgICAgICAgICAgICBodm1faW5qZWN0X2V2ZW50KCZlbXVsX2N0eHQuY3R4dC5l dmVudCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAgICAgU0hBRE9XX1BSSU5U SygKQEAgLTM0NDMsMTIgKzM0MzgsNyBAQCBzdGF0aWMgaW50IHNoX3BhZ2VfZmF1bHQoc3RydWN0 IHZjcHUgKnYsCiAjZW5kaWYKIAogICAgIGlmICggZW11bF9jdHh0LmN0eHQucmV0aXJlLnNpbmds ZXN0ZXAgKQotICAgIHsKLSAgICAgICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkg KQotICAgICAgICAgICAgaHZtX2luamVjdF9od19leGNlcHRpb24oVFJBUF9kZWJ1ZywgWDg2X0VW RU5UX05PX0VDKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcHZfaW5qZWN0X2h3X2V4Y2Vw dGlvbihUUkFQX2RlYnVnLCBYODZfRVZFTlRfTk9fRUMpOwotICAgIH0KKyAgICAgICAgaHZtX2lu amVjdF9od19leGNlcHRpb24oVFJBUF9kZWJ1ZywgWDg2X0VWRU5UX05PX0VDKTsKIAogI2lmIEdV RVNUX1BBR0lOR19MRVZFTFMgPT0gMyAvKiBQQUUgZ3Vlc3QgKi8KICAgICAvKgpAQCAtMzQ4OSwx MiArMzQ3OSw3IEBAIHN0YXRpYyBpbnQgc2hfcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAqdiwKICAg ICAgICAgICAgICAgICBUUkFDRV9TSEFET1dfUEFUSF9GTEFHKFRSQ0VfU0ZMQUdfRU1VTEFUSU9O X0xBU1RfRkFJTEVEKTsKIAogICAgICAgICAgICAgICAgIGlmICggZW11bF9jdHh0LmN0eHQucmV0 aXJlLnNpbmdsZXN0ZXAgKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg aWYgKCBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkgKQotICAgICAgICAgICAgICAgICAgICAg ICAgaHZtX2luamVjdF9od19leGNlcHRpb24oVFJBUF9kZWJ1ZywgWDg2X0VWRU5UX05PX0VDKTsK LSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgcHZfaW5q ZWN0X2h3X2V4Y2VwdGlvbihUUkFQX2RlYnVnLCBYODZfRVZFTlRfTk9fRUMpOwotICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaHZtX2luamVjdF9od19leGNlcHRpb24oVFJB UF9kZWJ1ZywgWDg2X0VWRU5UX05PX0VDKTsKIAogICAgICAgICAgICAgICAgIGJyZWFrOyAvKiBE b24ndCBlbXVsYXRlIGFnYWluIGlmIHdlIGZhaWxlZCEgKi8KICAgICAgICAgICAgIH0KLS0gCjIu MS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==