From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 1/3] x86/msr: Dispatch Xen and Viridian MSRs from guest_{wr, rd}msr() Date: Tue, 11 Sep 2018 19:56:15 +0100 Message-ID: <1536692177-15675-2-git-send-email-andrew.cooper3@citrix.com> References: <1536692177-15675-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: <1536692177-15675-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org RGVzcGl0ZSB0aGUgY29tcGxpY2F0ZWQgZGlmZiBpbiB7c3ZtLHZteH1fbXNyX3dyaXRlX2ludGVy Y2VwdCgpLCBpdCBpcyBqdXN0CnRoZSAwIGNhc2UgbG9zaW5nIG9uZSBsZXZlbCBvZiBpbmRlbnRh dGlvbiwgYXMgcGFydCBvZiByZW1vdmluZyB0aGUgY2FsbCB0bwp3cm1zcl9oeXBlcnZpc29yX3Jl Z3MoKS4KClRoZSBjYXNlIGJsb2NrcyBpbiBndWVzdF97d3IscmR9bXNyKCkgdXNlIHJhdyBudW1i ZXJzLCBwYXJ0bHkgZm9yIGNvbnNpc3RlbmN5CndpdGggdGhlIENQVUlEIHNpZGUgb2YgdGhpbmdz LCBidXQgbWFpbmx5IGJlY2F1c2UgdGhpcyBpcyBjbGVhcmVyIGNvZGUgdG8KZm9sbG93LiAgSW4g cGFydGljdWxhciwgdGhlIFhlbiBibG9jayBtYXkgb3ZlcmxhcCB3aXRoIHRoZSBWaXJpZGlhbiBi bG9jayBpZgpWaXJpZGlhbiBpcyBub3QgZW5hYmxlZCBmb3IgdGhlIGRvbWFpbiwgYW5kIHRyeWlu ZyB0byBleHByZXNzIHRoaXMgd2l0aCBuYW1lZApsaXRlcmFscyBjYXVzZWQgbW9yZSBjb25mdXNp b24gdGhhdCBpdCBzb2x2ZWQuCgpGdXR1cmUgY2hhbmdlcyB3aXRoIGNsZWFuIHVwIHRoZSBpbmRp dmlkdWFsIEFQSXMsIGluY2x1ZGluZyBhbGxvd2luZyB0aGVzZQpNU1JzIHRvIGJlIHVzYWJsZSBm b3IgdmNwdXMgb3RoZXIgdGhhbiBjdXJyZW50IChubyBjYWxsZXJzIGV4aXN0IHdpdGggdiAhPQpj dXJyZW50KS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNp dHJpeC5jb20+ClJldmlld2VkLWJ5OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBv cmFjbGUuY29tPgpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+ ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0K Q0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUy QGNpdHJpeC5jb20+CkNDOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4K CnYzOgogKiBTcGxpdCBvdXQgb2YgcHJldmlvdXMgc2VyaWVzLiAgUmV0YWluIGFwcHJvcHJpYXRl IFItYnkncwotLS0KIHhlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jICAgICB8IDI3ICsrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgICAgIHwgMjgg KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21zci5jICAgICAgICAg ICAgIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiB4ZW4vYXJj aC94ODYvcHYvZW11bC1wcml2LW9wLmMgfCAgNiAtLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNDIg aW5zZXJ0aW9ucygrKSwgNTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2h2bS9zdm0vc3ZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwppbmRleCAzNGQ1NWI0 Li5lZjhmMjcxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYworKysgYi94 ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwpAQCAtMjAxNiwxMCArMjAxNiw2IEBAIHN0YXRpYyBp bnQgc3ZtX21zcl9yZWFkX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCAqbXNy X2NvbnRlbnQpCiAgICAgICAgIGVsc2UgaWYgKCByZXQgKQogICAgICAgICAgICAgYnJlYWs7CiAK LSAgICAgICAgaWYgKCByZG1zcl92aXJpZGlhbl9yZWdzKG1zciwgbXNyX2NvbnRlbnQpIHx8Ci0g ICAgICAgICAgICAgcmRtc3JfaHlwZXJ2aXNvcl9yZWdzKG1zciwgbXNyX2NvbnRlbnQpICkKLSAg ICAgICAgICAgIGJyZWFrOwotCiAgICAgICAgIGlmICggcmRtc3Jfc2FmZShtc3IsICptc3JfY29u dGVudCkgPT0gMCApCiAgICAgICAgICAgICBicmVhazsKIApAQCAtMjIxOCwyOCArMjIxNCwxMSBA QCBzdGF0aWMgaW50IHN2bV9tc3Jfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVp bnQ2NF90IG1zcl9jb250ZW50KQogICAgICAgICBlbHNlIGlmICggcmV0ICkKICAgICAgICAgICAg IGJyZWFrOwogCi0gICAgICAgIGlmICggd3Jtc3JfdmlyaWRpYW5fcmVncyhtc3IsIG1zcl9jb250 ZW50KSApCisgICAgICAgIC8qIE1hdGNoIHVwIHdpdGggdGhlIFJETVNSIHNpZGU7IHVsdGltYXRl bHkgdGhpcyBzaG91bGQgZ28gYXdheS4gKi8KKyAgICAgICAgaWYgKCByZG1zcl9zYWZlKG1zciwg bXNyX2NvbnRlbnQpID09IDAgKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgc3dpdGNo ICggd3Jtc3JfaHlwZXJ2aXNvcl9yZWdzKG1zciwgbXNyX2NvbnRlbnQpICkKLSAgICAgICAgewot ICAgICAgICBjYXNlIC1FUkVTVEFSVDoKLSAgICAgICAgICAgIHJlc3VsdCA9IFg4NkVNVUxfUkVU Ulk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgLyoK LSAgICAgICAgICAgICAqIE1hdGNoIHVwIHdpdGggdGhlIFJETVNSIHNpZGUgZm9yIG5vdzsgdWx0 aW1hdGVseSB0aGlzIGVudGlyZQotICAgICAgICAgICAgICogY2FzZSBibG9jayBzaG91bGQgZ28g YXdheS4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgaWYgKCByZG1zcl9zYWZlKG1zciwg bXNyX2NvbnRlbnQpID09IDAgKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg Z290byBncGY7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBk ZWZhdWx0OgotICAgICAgICAgICAgZ290byBncGY7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7 CisgICAgICAgIGdvdG8gZ3BmOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Zt eC5jCmluZGV4IGIyZTFhMjguLmJmOTBlMjIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v dm14L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCkBAIC0yOTY1LDEwICsy OTY1LDYgQEAgc3RhdGljIGludCB2bXhfbXNyX3JlYWRfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBt c3IsIHVpbnQ2NF90ICptc3JfY29udGVudCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9 CiAKLSAgICAgICAgaWYgKCByZG1zcl92aXJpZGlhbl9yZWdzKG1zciwgbXNyX2NvbnRlbnQpIHx8 Ci0gICAgICAgICAgICAgcmRtc3JfaHlwZXJ2aXNvcl9yZWdzKG1zciwgbXNyX2NvbnRlbnQpICkK LSAgICAgICAgICAgIGJyZWFrOwotCiAgICAgICAgIGlmICggcmRtc3Jfc2FmZShtc3IsICptc3Jf Y29udGVudCkgPT0gMCApCiAgICAgICAgICAgICBicmVhazsKIApAQCAtMzI0OSwzMSArMzI0NSwx NSBAQCBzdGF0aWMgaW50IHZteF9tc3Jfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3Is IHVpbnQ2NF90IG1zcl9jb250ZW50KQogICAgICAgICBpZiAoIHBhc3NpdmVfZG9tYWluX2RvX3dy bXNyKG1zciwgbXNyX2NvbnRlbnQpICkKICAgICAgICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7 CiAKLSAgICAgICAgaWYgKCB3cm1zcl92aXJpZGlhbl9yZWdzKG1zciwgbXNyX2NvbnRlbnQpICkg Ci0gICAgICAgICAgICBicmVhazsKLQogICAgICAgICBpZiAoIHZteF93cml0ZV9ndWVzdF9tc3Io diwgbXNyLCBtc3JfY29udGVudCkgPT0gMCB8fAogICAgICAgICAgICAgIGlzX2xhc3RfYnJhbmNo X21zcihtc3IpICkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIHN3aXRjaCAoIHdybXNy X2h5cGVydmlzb3JfcmVncyhtc3IsIG1zcl9jb250ZW50KSApCi0gICAgICAgIHsKLSAgICAgICAg Y2FzZSAtRVJFU1RBUlQ6Ci0gICAgICAgICAgICByZXR1cm4gWDg2RU1VTF9SRVRSWTsKLSAgICAg ICAgY2FzZSAwOgotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIE1hdGNoIHVwIHdpdGgg dGhlIFJETVNSIHNpZGUgZm9yIG5vdzsgdWx0aW1hdGVseSB0aGlzCi0gICAgICAgICAgICAgKiBl bnRpcmUgY2FzZSBibG9jayBzaG91bGQgZ28gYXdheS4KLSAgICAgICAgICAgICAqLwotICAgICAg ICAgICAgaWYgKCByZG1zcl9zYWZlKG1zciwgbXNyX2NvbnRlbnQpID09IDAgKQotICAgICAgICAg ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZ290byBncF9mYXVsdDsKLSAgICAgICAgY2FzZSAx OgorICAgICAgICAvKiBNYXRjaCB1cCB3aXRoIHRoZSBSRE1TUiBzaWRlOyB1bHRpbWF0ZWx5IHRo aXMgc2hvdWxkIGdvIGF3YXkuICovCisgICAgICAgIGlmICggcmRtc3Jfc2FmZShtc3IsIG1zcl9j b250ZW50KSA9PSAwICkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAg ICAgICAgICAgZ290byBncF9mYXVsdDsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKKworICAg ICAgICBnb3RvIGdwX2ZhdWx0OwogICAgIH0KIAogICAgIHJldHVybiBYODZFTVVMX09LQVk7CmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbXNyLmMgYi94ZW4vYXJjaC94ODYvbXNyLmMKaW5kZXgg YjY3NWYzYS4uN2Y2MGU4NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21zci5jCisrKyBiL3hl bi9hcmNoL3g4Ni9tc3IuYwpAQCAtMTE0LDkgKzExNCwxMSBAQCBpbnQgaW5pdF92Y3B1X21zcl9w b2xpY3koc3RydWN0IHZjcHUgKnYpCiAKIGludCBndWVzdF9yZG1zcihjb25zdCBzdHJ1Y3QgdmNw dSAqdiwgdWludDMyX3QgbXNyLCB1aW50NjRfdCAqdmFsKQogewotICAgIGNvbnN0IHN0cnVjdCBj cHVpZF9wb2xpY3kgKmNwID0gdi0+ZG9tYWluLT5hcmNoLmNwdWlkOwotICAgIGNvbnN0IHN0cnVj dCBtc3JfcG9saWN5ICptcCA9IHYtPmRvbWFpbi0+YXJjaC5tc3I7CisgICAgY29uc3Qgc3RydWN0 IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKKyAgICBjb25zdCBzdHJ1Y3QgY3B1aWRfcG9saWN5ICpj cCA9IGQtPmFyY2guY3B1aWQ7CisgICAgY29uc3Qgc3RydWN0IG1zcl9wb2xpY3kgKm1wID0gZC0+ YXJjaC5tc3I7CiAgICAgY29uc3Qgc3RydWN0IHZjcHVfbXNycyAqbXNycyA9IHYtPmFyY2gubXNy czsKKyAgICBpbnQgcmV0ID0gWDg2RU1VTF9PS0FZOwogCiAgICAgc3dpdGNoICggbXNyICkKICAg ICB7CkBAIC0xNDUsMTEgKzE0NywyNSBAQCBpbnQgZ3Vlc3RfcmRtc3IoY29uc3Qgc3RydWN0IHZj cHUgKnYsIHVpbnQzMl90IG1zciwgdWludDY0X3QgKnZhbCkKICAgICAgICAgKnZhbCA9IG1zcnMt Pm1pc2NfZmVhdHVyZXNfZW5hYmxlcy5yYXc7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSAw eDQwMDAwMDAwIC4uLiAweDQwMDAwMWZmOgorICAgICAgICBpZiAoIGlzX3ZpcmlkaWFuX2RvbWFp bihkKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldCA9IChyZG1zcl92aXJpZGlhbl9yZWdz KG1zciwgdmFsKQorICAgICAgICAgICAgICAgICAgID8gWDg2RU1VTF9PS0FZIDogWDg2RU1VTF9F WENFUFRJT04pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAvKiBG YWxsdGhyb3VnaC4gKi8KKyAgICBjYXNlIDB4NDAwMDAyMDAgLi4uIDB4NDAwMDAyZmY6CisgICAg ICAgIHJldCA9IChyZG1zcl9oeXBlcnZpc29yX3JlZ3MobXNyLCB2YWwpCisgICAgICAgICAgICAg ICA/IFg4NkVNVUxfT0tBWSA6IFg4NkVNVUxfRVhDRVBUSU9OKTsKKyAgICAgICAgYnJlYWs7CisK ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CiAgICAg fQogCi0gICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKKyAgICByZXR1cm4gcmV0OwogCiAgZ3BfZmF1 bHQ6CiAgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwpAQCAtMTYyLDYgKzE3OCw3IEBAIGlu dCBndWVzdF93cm1zcihzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgbXNyLCB1aW50NjRfdCB2YWwp CiAgICAgY29uc3Qgc3RydWN0IGNwdWlkX3BvbGljeSAqY3AgPSBkLT5hcmNoLmNwdWlkOwogICAg IGNvbnN0IHN0cnVjdCBtc3JfcG9saWN5ICptcCA9IGQtPmFyY2gubXNyOwogICAgIHN0cnVjdCB2 Y3B1X21zcnMgKm1zcnMgPSB2LT5hcmNoLm1zcnM7CisgICAgaW50IHJldCA9IFg4NkVNVUxfT0tB WTsKIAogICAgIHN3aXRjaCAoIG1zciApCiAgICAgewpAQCAtMjUyLDExICsyNjksMjUgQEAgaW50 IGd1ZXN0X3dybXNyKHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBtc3IsIHVpbnQ2NF90IHZhbCkK ICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSAweDQwMDAwMDAwIC4uLiAweDQwMDAw MWZmOgorICAgICAgICBpZiAoIGlzX3ZpcmlkaWFuX2RvbWFpbihkKSApCisgICAgICAgIHsKKyAg ICAgICAgICAgIHJldCA9ICh3cm1zcl92aXJpZGlhbl9yZWdzKG1zciwgdmFsKQorICAgICAgICAg ICAgICAgICAgID8gWDg2RU1VTF9PS0FZIDogWDg2RU1VTF9FWENFUFRJT04pOworICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAvKiBGYWxsdGhyb3VnaC4gKi8KKyAgICBj YXNlIDB4NDAwMDAyMDAgLi4uIDB4NDAwMDAyZmY6CisgICAgICAgIHJldCA9ICh3cm1zcl9oeXBl cnZpc29yX3JlZ3MobXNyLCB2YWwpID09IDEKKyAgICAgICAgICAgICAgID8gWDg2RU1VTF9PS0FZ IDogWDg2RU1VTF9FWENFUFRJT04pOworICAgICAgICBicmVhazsKKwogICAgIGRlZmF1bHQ6CiAg ICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKICAgICB9CiAKLSAgICByZXR1cm4g WDg2RU1VTF9PS0FZOworICAgIHJldHVybiByZXQ7CiAKICBncF9mYXVsdDoKICAgICByZXR1cm4g WDg2RU1VTF9FWENFUFRJT047CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2 LW9wLmMgYi94ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKaW5kZXggNDU5NDFlYS4uNjQy MmY5MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5jCisrKyBiL3hl bi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYwpAQCAtOTUwLDkgKzk1MCw2IEBAIHN0YXRpYyBp bnQgcmVhZF9tc3IodW5zaWduZWQgaW50IHJlZywgdWludDY0X3QgKnZhbCwKICAgICAgICAgfQog ICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KICAgICBkZWZhdWx0OgotICAgICAgICBpZiAoIHJk bXNyX2h5cGVydmlzb3JfcmVncyhyZWcsIHZhbCkgKQotICAgICAgICAgICAgcmV0dXJuIFg4NkVN VUxfT0tBWTsKLQogICAgICAgICByYyA9IHZtY2VfcmRtc3IocmVnLCB2YWwpOwogICAgICAgICBp ZiAoIHJjIDwgMCApCiAgICAgICAgICAgICBicmVhazsKQEAgLTExNDksOSArMTE0Niw2IEBAIHN0 YXRpYyBpbnQgd3JpdGVfbXNyKHVuc2lnbmVkIGludCByZWcsIHVpbnQ2NF90IHZhbCwKICAgICAg ICAgfQogICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KICAgICBkZWZhdWx0OgotICAgICAgICBp ZiAoIHdybXNyX2h5cGVydmlzb3JfcmVncyhyZWcsIHZhbCkgPT0gMSApCi0gICAgICAgICAgICBy ZXR1cm4gWDg2RU1VTF9PS0FZOwotCiAgICAgICAgIHJjID0gdm1jZV93cm1zcihyZWcsIHZhbCk7 CiAgICAgICAgIGlmICggcmMgPCAwICkKICAgICAgICAgICAgIGJyZWFrOwotLSAKMi4xLjQKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs