From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v4 1/3] x86/msr: Dispatch Xen and Viridian MSRs from guest_{wr, rd}msr() Date: Wed, 12 Sep 2018 13:00:47 +0100 Message-ID: <1536753647-17165-1-git-send-email-andrew.cooper3@citrix.com> References: <1536692177-15675-2-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-2-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 , Sergey Dyasli , 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 Q0M6IFNlcmdleSBEeWFzbGkgPHNlcmdleS5keWFzbGlAY2l0cml4LmNvbT4KCnYzOgogKiBTcGxp dCBvdXQgb2YgcHJldmlvdXMgc2VyaWVzLiAgUmV0YWluIGFwcHJvcHJpYXRlIFItYnkncwp2NDoK ICogUmV0YWluIHN3aXRjaCgpIGZvciBpbnRlcnByZXRpbmcgdGhlIHJlc3VsdCBvZiB3cm1zcl9o eXBlcnZpc29yX3JlZ3MoKQotLS0KIHhlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jICAgICB8IDI3 ICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyAg ICAgfCAyOCArKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9tc3IuYyAg ICAgICAgICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LQogeGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5jIHwgIDYgLS0tLS0tCiA0IGZpbGVzIGNo YW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDU4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKaW5k ZXggMzRkNTViNC4uZWY4ZjI3MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3Zt LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKQEAgLTIwMTYsMTAgKzIwMTYsNiBA QCBzdGF0aWMgaW50IHN2bV9tc3JfcmVhZF9pbnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwgdWlu dDY0X3QgKm1zcl9jb250ZW50KQogICAgICAgICBlbHNlIGlmICggcmV0ICkKICAgICAgICAgICAg IGJyZWFrOwogCi0gICAgICAgIGlmICggcmRtc3JfdmlyaWRpYW5fcmVncyhtc3IsIG1zcl9jb250 ZW50KSB8fAotICAgICAgICAgICAgIHJkbXNyX2h5cGVydmlzb3JfcmVncyhtc3IsIG1zcl9jb250 ZW50KSApCi0gICAgICAgICAgICBicmVhazsKLQogICAgICAgICBpZiAoIHJkbXNyX3NhZmUobXNy LCAqbXNyX2NvbnRlbnQpID09IDAgKQogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTIyMTgsMjgg KzIyMTQsMTEgQEAgc3RhdGljIGludCBzdm1fbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBp bnQgbXNyLCB1aW50NjRfdCBtc3JfY29udGVudCkKICAgICAgICAgZWxzZSBpZiAoIHJldCApCiAg ICAgICAgICAgICBicmVhazsKIAotICAgICAgICBpZiAoIHdybXNyX3ZpcmlkaWFuX3JlZ3MobXNy LCBtc3JfY29udGVudCkgKQorICAgICAgICAvKiBNYXRjaCB1cCB3aXRoIHRoZSBSRE1TUiBzaWRl OyB1bHRpbWF0ZWx5IHRoaXMgc2hvdWxkIGdvIGF3YXkuICovCisgICAgICAgIGlmICggcmRtc3Jf c2FmZShtc3IsIG1zcl9jb250ZW50KSA9PSAwICkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAg ICAgIHN3aXRjaCAoIHdybXNyX2h5cGVydmlzb3JfcmVncyhtc3IsIG1zcl9jb250ZW50KSApCi0g ICAgICAgIHsKLSAgICAgICAgY2FzZSAtRVJFU1RBUlQ6Ci0gICAgICAgICAgICByZXN1bHQgPSBY ODZFTVVMX1JFVFJZOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAg ICAgICAgIC8qCi0gICAgICAgICAgICAgKiBNYXRjaCB1cCB3aXRoIHRoZSBSRE1TUiBzaWRlIGZv ciBub3c7IHVsdGltYXRlbHkgdGhpcyBlbnRpcmUKLSAgICAgICAgICAgICAqIGNhc2UgYmxvY2sg c2hvdWxkIGdvIGF3YXkuCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGlmICggcmRtc3Jf c2FmZShtc3IsIG1zcl9jb250ZW50KSA9PSAwICkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg ICAgICAgICAgIGdvdG8gZ3BmOwotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICBicmVhazsK LSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGdvdG8gZ3BmOwotICAgICAgICB9Ci0gICAg ICAgIGJyZWFrOworICAgICAgICBnb3RvIGdwZjsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0 OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYv aHZtL3ZteC92bXguYwppbmRleCBiMmUxYTI4Li5iZjkwZTIyIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvaHZtL3ZteC92bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwpAQCAt Mjk2NSwxMCArMjk2NSw2IEBAIHN0YXRpYyBpbnQgdm14X21zcl9yZWFkX2ludGVyY2VwdCh1bnNp Z25lZCBpbnQgbXNyLCB1aW50NjRfdCAqbXNyX2NvbnRlbnQpCiAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgfQogCi0gICAgICAgIGlmICggcmRtc3JfdmlyaWRpYW5fcmVncyhtc3IsIG1zcl9j b250ZW50KSB8fAotICAgICAgICAgICAgIHJkbXNyX2h5cGVydmlzb3JfcmVncyhtc3IsIG1zcl9j b250ZW50KSApCi0gICAgICAgICAgICBicmVhazsKLQogICAgICAgICBpZiAoIHJkbXNyX3NhZmUo bXNyLCAqbXNyX2NvbnRlbnQpID09IDAgKQogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTMyNDks MzEgKzMyNDUsMTUgQEAgc3RhdGljIGludCB2bXhfbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25l ZCBpbnQgbXNyLCB1aW50NjRfdCBtc3JfY29udGVudCkKICAgICAgICAgaWYgKCBwYXNzaXZlX2Rv bWFpbl9kb193cm1zcihtc3IsIG1zcl9jb250ZW50KSApCiAgICAgICAgICAgICByZXR1cm4gWDg2 RU1VTF9PS0FZOwogCi0gICAgICAgIGlmICggd3Jtc3JfdmlyaWRpYW5fcmVncyhtc3IsIG1zcl9j b250ZW50KSApIAotICAgICAgICAgICAgYnJlYWs7Ci0KICAgICAgICAgaWYgKCB2bXhfd3JpdGVf Z3Vlc3RfbXNyKHYsIG1zciwgbXNyX2NvbnRlbnQpID09IDAgfHwKICAgICAgICAgICAgICBpc19s YXN0X2JyYW5jaF9tc3IobXNyKSApCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBzd2l0 Y2ggKCB3cm1zcl9oeXBlcnZpc29yX3JlZ3MobXNyLCBtc3JfY29udGVudCkgKQotICAgICAgICB7 Ci0gICAgICAgIGNhc2UgLUVSRVNUQVJUOgotICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxfUkVU Ulk7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBNYXRj aCB1cCB3aXRoIHRoZSBSRE1TUiBzaWRlIGZvciBub3c7IHVsdGltYXRlbHkgdGhpcwotICAgICAg ICAgICAgICogZW50aXJlIGNhc2UgYmxvY2sgc2hvdWxkIGdvIGF3YXkuCi0gICAgICAgICAgICAg Ki8KLSAgICAgICAgICAgIGlmICggcmRtc3Jfc2FmZShtc3IsIG1zcl9jb250ZW50KSA9PSAwICkK LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7Ci0gICAg ICAgIGNhc2UgMToKKyAgICAgICAgLyogTWF0Y2ggdXAgd2l0aCB0aGUgUkRNU1Igc2lkZTsgdWx0 aW1hdGVseSB0aGlzIHNob3VsZCBnbyBhd2F5LiAqLworICAgICAgICBpZiAoIHJkbXNyX3NhZmUo bXNyLCBtc3JfY29udGVudCkgPT0gMCApCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVm YXVsdDoKLSAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgYnJl YWs7CisKKyAgICAgICAgZ290byBncF9mYXVsdDsKICAgICB9CiAKICAgICByZXR1cm4gWDg2RU1V TF9PS0FZOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21zci5jIGIveGVuL2FyY2gveDg2L21z ci5jCmluZGV4IGI2NzVmM2EuLmQ3YzM4ZjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tc3Iu YworKysgYi94ZW4vYXJjaC94ODYvbXNyLmMKQEAgLTExNCw5ICsxMTQsMTEgQEAgaW50IGluaXRf dmNwdV9tc3JfcG9saWN5KHN0cnVjdCB2Y3B1ICp2KQogCiBpbnQgZ3Vlc3RfcmRtc3IoY29uc3Qg c3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IG1zciwgdWludDY0X3QgKnZhbCkKIHsKLSAgICBjb25z dCBzdHJ1Y3QgY3B1aWRfcG9saWN5ICpjcCA9IHYtPmRvbWFpbi0+YXJjaC5jcHVpZDsKLSAgICBj b25zdCBzdHJ1Y3QgbXNyX3BvbGljeSAqbXAgPSB2LT5kb21haW4tPmFyY2gubXNyOworICAgIGNv bnN0IHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47CisgICAgY29uc3Qgc3RydWN0IGNwdWlk X3BvbGljeSAqY3AgPSBkLT5hcmNoLmNwdWlkOworICAgIGNvbnN0IHN0cnVjdCBtc3JfcG9saWN5 ICptcCA9IGQtPmFyY2gubXNyOwogICAgIGNvbnN0IHN0cnVjdCB2Y3B1X21zcnMgKm1zcnMgPSB2 LT5hcmNoLm1zcnM7CisgICAgaW50IHJldCA9IFg4NkVNVUxfT0tBWTsKIAogICAgIHN3aXRjaCAo IG1zciApCiAgICAgewpAQCAtMTQ1LDExICsxNDcsMjUgQEAgaW50IGd1ZXN0X3JkbXNyKGNvbnN0 IHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBtc3IsIHVpbnQ2NF90ICp2YWwpCiAgICAgICAgICp2 YWwgPSBtc3JzLT5taXNjX2ZlYXR1cmVzX2VuYWJsZXMucmF3OwogICAgICAgICBicmVhazsKIAor ICAgIGNhc2UgMHg0MDAwMDAwMCAuLi4gMHg0MDAwMDFmZjoKKyAgICAgICAgaWYgKCBpc192aXJp ZGlhbl9kb21haW4oZCkgKQorICAgICAgICB7CisgICAgICAgICAgICByZXQgPSAocmRtc3Jfdmly aWRpYW5fcmVncyhtc3IsIHZhbCkKKyAgICAgICAgICAgICAgICAgICA/IFg4NkVNVUxfT0tBWSA6 IFg4NkVNVUxfRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAg ICAgICAgLyogRmFsbHRocm91Z2guICovCisgICAgY2FzZSAweDQwMDAwMjAwIC4uLiAweDQwMDAw MmZmOgorICAgICAgICByZXQgPSAocmRtc3JfaHlwZXJ2aXNvcl9yZWdzKG1zciwgdmFsKQorICAg ICAgICAgICAgICAgPyBYODZFTVVMX09LQVkgOiBYODZFTVVMX0VYQ0VQVElPTik7CisgICAgICAg IGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVB QkxFOwogICAgIH0KIAotICAgIHJldHVybiBYODZFTVVMX09LQVk7CisgICAgcmV0dXJuIHJldDsK IAogIGdwX2ZhdWx0OgogICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKQEAgLTE2Miw2ICsx NzgsNyBAQCBpbnQgZ3Vlc3Rfd3Jtc3Ioc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IG1zciwgdWlu dDY0X3QgdmFsKQogICAgIGNvbnN0IHN0cnVjdCBjcHVpZF9wb2xpY3kgKmNwID0gZC0+YXJjaC5j cHVpZDsKICAgICBjb25zdCBzdHJ1Y3QgbXNyX3BvbGljeSAqbXAgPSBkLT5hcmNoLm1zcjsKICAg ICBzdHJ1Y3QgdmNwdV9tc3JzICptc3JzID0gdi0+YXJjaC5tc3JzOworICAgIGludCByZXQgPSBY ODZFTVVMX09LQVk7CiAKICAgICBzd2l0Y2ggKCBtc3IgKQogICAgIHsKQEAgLTI1MiwxMSArMjY5 LDI5IEBAIGludCBndWVzdF93cm1zcihzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgbXNyLCB1aW50 NjRfdCB2YWwpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgMHg0MDAwMDAwMCAu Li4gMHg0MDAwMDFmZjoKKyAgICAgICAgaWYgKCBpc192aXJpZGlhbl9kb21haW4oZCkgKQorICAg ICAgICB7CisgICAgICAgICAgICByZXQgPSAod3Jtc3JfdmlyaWRpYW5fcmVncyhtc3IsIHZhbCkK KyAgICAgICAgICAgICAgICAgICA/IFg4NkVNVUxfT0tBWSA6IFg4NkVNVUxfRVhDRVBUSU9OKTsK KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLyogRmFsbHRocm91Z2gu ICovCisgICAgY2FzZSAweDQwMDAwMjAwIC4uLiAweDQwMDAwMmZmOgorICAgICAgICBzd2l0Y2gg KCB3cm1zcl9oeXBlcnZpc29yX3JlZ3MobXNyLCB2YWwpICkKKyAgICAgICAgeworICAgICAgICBj YXNlIC1FUkVTVEFSVDogcmV0ID0gWDg2RU1VTF9SRVRSWTsgICAgIGJyZWFrOworICAgICAgICBj YXNlIDE6ICAgICAgICAgcmV0ID0gWDg2RU1VTF9PS0FZOyAgICAgIGJyZWFrOworICAgICAgICBk ZWZhdWx0OiAgICAgICAgcmV0ID0gWDg2RU1VTF9FWENFUFRJT047IGJyZWFrOworICAgICAgICB9 CisgICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIFg4NkVNVUxf VU5IQU5ETEVBQkxFOwogICAgIH0KIAotICAgIHJldHVybiBYODZFTVVMX09LQVk7CisgICAgcmV0 dXJuIHJldDsKIAogIGdwX2ZhdWx0OgogICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYyBiL3hlbi9hcmNoL3g4Ni9w di9lbXVsLXByaXYtb3AuYwppbmRleCA0NTk0MWVhLi42NDIyZjkxIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2VtdWwtcHJp di1vcC5jCkBAIC05NTAsOSArOTUwLDYgQEAgc3RhdGljIGludCByZWFkX21zcih1bnNpZ25lZCBp bnQgcmVnLCB1aW50NjRfdCAqdmFsLAogICAgICAgICB9CiAgICAgICAgIC8qIGZhbGwgdGhyb3Vn aCAqLwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIGlmICggcmRtc3JfaHlwZXJ2aXNvcl9yZWdzKHJl ZywgdmFsKSApCi0gICAgICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwotCiAgICAgICAgIHJj ID0gdm1jZV9yZG1zcihyZWcsIHZhbCk7CiAgICAgICAgIGlmICggcmMgPCAwICkKICAgICAgICAg ICAgIGJyZWFrOwpAQCAtMTE0OSw5ICsxMTQ2LDYgQEAgc3RhdGljIGludCB3cml0ZV9tc3IodW5z aWduZWQgaW50IHJlZywgdWludDY0X3QgdmFsLAogICAgICAgICB9CiAgICAgICAgIC8qIGZhbGwg dGhyb3VnaCAqLwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIGlmICggd3Jtc3JfaHlwZXJ2aXNvcl9y ZWdzKHJlZywgdmFsKSA9PSAxICkKLSAgICAgICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7Ci0K ICAgICAgICAgcmMgPSB2bWNlX3dybXNyKHJlZywgdmFsKTsKICAgICAgICAgaWYgKCByYyA8IDAg KQogICAgICAgICAgICAgYnJlYWs7Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby94ZW4tZGV2ZWw=