From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/6] x86/vmx: Introduce and use struct vmx_msr_bitmap Date: Wed, 19 Jul 2017 12:57:54 +0100 Message-ID: <1500465477-23793-4-git-send-email-andrew.cooper3@citrix.com> References: <1500465477-23793-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: <1500465477-23793-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 , Kevin Tian , Jun Nakajima , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBhdm9pZHMgb3BlbmNvZGluZyB0aGUgYml0bWFwIGJhc2VzIGluIGFjY2Vzc29yIGZ1bmN0 aW9ucy4gIEludHJvZHVjZSBhCmJ1aWxkX2Fzc2VydGlvbnMoKSBmdW5jdGlvbiB0byBjaGVjayB0 aGUgc3RydWN0dXJlIGxheW91dCBhZ2FpbnN0IHRoZSBtYW51YWwKZGVmaW5pdG9uLiAgSW4gYWRk aXRpb24sIGRyb3Agc29tZSBzdGFsZSBjb21tZW50cyBhbmQgQVNTRVJUKCkgdGhhdCBjYWxsZXJz CnBhc3MgYW4gaW4tcmFuZ2UgTVNSLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5k cmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3Vz ZS5jb20+CkNDOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkNDOiBLZXZp biBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KClNsaWdodGx5IFJGQzogSSB0aGluayB0aGVz ZSBhc3NlcnRzIHdvdWxkIHByb2JhYmx5IGJlIGJldHRlciBpZiB0aGV5IHdlcmUgKG15CnBsYW5u ZWQgYnV0IG5vdCB5ZXQgaW1wbGVtZW50ZWQpIFZNX0JVR19PTigpIHdoaWNoIHdvdWxkIGFsbG93 IHVzIHRvIHByaW50IG91dAphIHJhdGhlciBtb3JlIHVzZWZ1bCBlcnJvciBhbmQgY3Jhc2ggdGhl IFZNIHJhdGhlciB0aGFuIGJyaW5naW5nIHRoZSBob3N0CmRvd24uCi0tLQogeGVuL2FyY2gveDg2 L2h2bS92bXgvdm1jcy5jICAgICAgICB8IDU3ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgvdm1jcy5oIHwgMTAgKysrKysr LQogMiBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMgYi94ZW4vYXJjaC94ODYvaHZt L3ZteC92bWNzLmMKaW5kZXggZTM2YTkwOC4uMGUxYTE0MiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS92bXgvdm1jcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYwpAQCAt ODA1LDcgKzgwNSw3IEBAIHN0YXRpYyB2b2lkIHZteF9zZXRfaG9zdF9lbnYoc3RydWN0IHZjcHUg KnYpCiB2b2lkIHZteF9jbGVhcl9tc3JfaW50ZXJjZXB0KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25l ZCBpbnQgbXNyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHZteF9tc3JfaW50 ZXJjZXB0X3R5cGUgdHlwZSkKIHsKLSAgICB1bnNpZ25lZCBsb25nICptc3JfYml0bWFwID0gdi0+ YXJjaC5odm1fdm14Lm1zcl9iaXRtYXA7CisgICAgc3RydWN0IHZteF9tc3JfYml0bWFwICptc3Jf Yml0bWFwID0gdi0+YXJjaC5odm1fdm14Lm1zcl9iaXRtYXA7CiAgICAgc3RydWN0IGRvbWFpbiAq ZCA9IHYtPmRvbWFpbjsKIAogICAgIC8qIFZNWCBNU1IgYml0bWFwIHN1cHBvcnRlZD8gKi8KQEAg LTgxNSw2OCArODE1LDUxIEBAIHZvaWQgdm14X2NsZWFyX21zcl9pbnRlcmNlcHQoc3RydWN0IHZj cHUgKnYsIHVuc2lnbmVkIGludCBtc3IsCiAgICAgaWYgKCB1bmxpa2VseShtb25pdG9yZWRfbXNy KGQsIG1zcikpICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLyoKLSAgICAgKiBTZWUgSW50ZWwg UFJNIFZvbC4gMywgMjAuNi45IChNU1ItQml0bWFwIEFkZHJlc3MpLiBFYXJseSBtYW51YWxzCi0g ICAgICogaGF2ZSB0aGUgd3JpdGUtbG93IGFuZCByZWFkLWhpZ2ggYml0bWFwIG9mZnNldHMgdGhl IHdyb25nIHdheSByb3VuZC4KLSAgICAgKiBXZSBjYW4gY29udHJvbCBNU1JzIDB4MDAwMDAwMDAt MHgwMDAwMWZmZiBhbmQgMHhjMDAwMDAwMC0weGMwMDAxZmZmLgotICAgICAqLwogICAgIGlmICgg bXNyIDw9IDB4MWZmZiApCiAgICAgewogICAgICAgICBpZiAoIHR5cGUgJiBWTVhfTVNSX1IgKQot ICAgICAgICAgICAgY2xlYXJfYml0KG1zciwgbXNyX2JpdG1hcCArIDB4MDAwL0JZVEVTX1BFUl9M T05HKTsgLyogcmVhZC1sb3cgKi8KKyAgICAgICAgICAgIGNsZWFyX2JpdChtc3IsIG1zcl9iaXRt YXAtPnJlYWRfbG93KTsKICAgICAgICAgaWYgKCB0eXBlICYgVk1YX01TUl9XICkKLSAgICAgICAg ICAgIGNsZWFyX2JpdChtc3IsIG1zcl9iaXRtYXAgKyAweDgwMC9CWVRFU19QRVJfTE9ORyk7IC8q IHdyaXRlLWxvdyAqLworICAgICAgICAgICAgY2xlYXJfYml0KG1zciwgbXNyX2JpdG1hcC0+d3Jp dGVfbG93KTsKICAgICB9CiAgICAgZWxzZSBpZiAoIChtc3IgPj0gMHhjMDAwMDAwMCkgJiYgKG1z ciA8PSAweGMwMDAxZmZmKSApCiAgICAgewogICAgICAgICBtc3IgJj0gMHgxZmZmOwogICAgICAg ICBpZiAoIHR5cGUgJiBWTVhfTVNSX1IgKQotICAgICAgICAgICAgY2xlYXJfYml0KG1zciwgbXNy X2JpdG1hcCArIDB4NDAwL0JZVEVTX1BFUl9MT05HKTsgLyogcmVhZC1oaWdoICovCisgICAgICAg ICAgICBjbGVhcl9iaXQobXNyLCBtc3JfYml0bWFwLT5yZWFkX2hpZ2gpOwogICAgICAgICBpZiAo IHR5cGUgJiBWTVhfTVNSX1cgKQotICAgICAgICAgICAgY2xlYXJfYml0KG1zciwgbXNyX2JpdG1h cCArIDB4YzAwL0JZVEVTX1BFUl9MT05HKTsgLyogd3JpdGUtaGlnaCAqLworICAgICAgICAgICAg Y2xlYXJfYml0KG1zciwgbXNyX2JpdG1hcC0+d3JpdGVfaGlnaCk7CiAgICAgfQogICAgIGVsc2UK LSAgICAgICAgSFZNX0RCR19MT0coREJHX0xFVkVMX01TUiwKLSAgICAgICAgICAgICAgICAgICAi bXNyICV4IGlzIG91dCBvZiB0aGUgY29udHJvbCByYW5nZSIKLSAgICAgICAgICAgICAgICAgICAi MHgwMDAwMDAwMC0weDAwMDAxZmZmIGFuZCAweGMwMDAwMDAwLTB4YzAwMDFmZmYiCi0gICAgICAg ICAgICAgICAgICAgIlJETVNSIG9yIFdSTVNSIHdpbGwgY2F1c2UgYSBWTSBleGl0IiwgbXNyKTsg Ci0KKyAgICAgICAgQVNTRVJUKCEiTVNSIG91dCBvZiByYW5nZSBmb3IgaW50ZXJjZXB0aW9uXG4i KTsKIH0KIAogdm9pZCB2bXhfc2V0X21zcl9pbnRlcmNlcHQoc3RydWN0IHZjcHUgKnYsIHVuc2ln bmVkIGludCBtc3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHZteF9tc3JfaW50 ZXJjZXB0X3R5cGUgdHlwZSkKIHsKLSAgICB1bnNpZ25lZCBsb25nICptc3JfYml0bWFwID0gdi0+ YXJjaC5odm1fdm14Lm1zcl9iaXRtYXA7CisgICAgc3RydWN0IHZteF9tc3JfYml0bWFwICptc3Jf Yml0bWFwID0gdi0+YXJjaC5odm1fdm14Lm1zcl9iaXRtYXA7CiAKICAgICAvKiBWTVggTVNSIGJp dG1hcCBzdXBwb3J0ZWQ/ICovCiAgICAgaWYgKCBtc3JfYml0bWFwID09IE5VTEwgKQogICAgICAg ICByZXR1cm47CiAKLSAgICAvKgotICAgICAqIFNlZSBJbnRlbCBQUk0gVm9sLiAzLCAyMC42Ljkg KE1TUi1CaXRtYXAgQWRkcmVzcykuIEVhcmx5IG1hbnVhbHMKLSAgICAgKiBoYXZlIHRoZSB3cml0 ZS1sb3cgYW5kIHJlYWQtaGlnaCBiaXRtYXAgb2Zmc2V0cyB0aGUgd3Jvbmcgd2F5IHJvdW5kLgot ICAgICAqIFdlIGNhbiBjb250cm9sIE1TUnMgMHgwMDAwMDAwMC0weDAwMDAxZmZmIGFuZCAweGMw MDAwMDAwLTB4YzAwMDFmZmYuCi0gICAgICovCiAgICAgaWYgKCBtc3IgPD0gMHgxZmZmICkKICAg ICB7CiAgICAgICAgIGlmICggdHlwZSAmIFZNWF9NU1JfUiApCi0gICAgICAgICAgICBzZXRfYml0 KG1zciwgbXNyX2JpdG1hcCArIDB4MDAwL0JZVEVTX1BFUl9MT05HKTsgLyogcmVhZC1sb3cgKi8K KyAgICAgICAgICAgIHNldF9iaXQobXNyLCBtc3JfYml0bWFwLT5yZWFkX2xvdyk7CiAgICAgICAg IGlmICggdHlwZSAmIFZNWF9NU1JfVyApCi0gICAgICAgICAgICBzZXRfYml0KG1zciwgbXNyX2Jp dG1hcCArIDB4ODAwL0JZVEVTX1BFUl9MT05HKTsgLyogd3JpdGUtbG93ICovCisgICAgICAgICAg ICBzZXRfYml0KG1zciwgbXNyX2JpdG1hcC0+d3JpdGVfbG93KTsKICAgICB9CiAgICAgZWxzZSBp ZiAoIChtc3IgPj0gMHhjMDAwMDAwMCkgJiYgKG1zciA8PSAweGMwMDAxZmZmKSApCiAgICAgewog ICAgICAgICBtc3IgJj0gMHgxZmZmOwogICAgICAgICBpZiAoIHR5cGUgJiBWTVhfTVNSX1IgKQot ICAgICAgICAgICAgc2V0X2JpdChtc3IsIG1zcl9iaXRtYXAgKyAweDQwMC9CWVRFU19QRVJfTE9O Ryk7IC8qIHJlYWQtaGlnaCAqLworICAgICAgICAgICAgc2V0X2JpdChtc3IsIG1zcl9iaXRtYXAt PnJlYWRfaGlnaCk7CiAgICAgICAgIGlmICggdHlwZSAmIFZNWF9NU1JfVyApCi0gICAgICAgICAg ICBzZXRfYml0KG1zciwgbXNyX2JpdG1hcCArIDB4YzAwL0JZVEVTX1BFUl9MT05HKTsgLyogd3Jp dGUtaGlnaCAqLworICAgICAgICAgICAgc2V0X2JpdChtc3IsIG1zcl9iaXRtYXAtPndyaXRlX2hp Z2gpOwogICAgIH0KICAgICBlbHNlCi0gICAgICAgIEhWTV9EQkdfTE9HKERCR19MRVZFTF9NU1Is Ci0gICAgICAgICAgICAgICAgICAgIm1zciAleCBpcyBvdXQgb2YgdGhlIGNvbnRyb2wgcmFuZ2Ui Ci0gICAgICAgICAgICAgICAgICAgIjB4MDAwMDAwMDAtMHgwMDAwMWZmZiBhbmQgMHhjMDAwMDAw MC0weGMwMDAxZmZmIgotICAgICAgICAgICAgICAgICAgICJSRE1TUiBvciBXUk1TUiB3aWxsIGNh dXNlIGEgVk0gZXhpdCIsIG1zcik7IAorICAgICAgICBBU1NFUlQoISJNU1Igb3V0IG9mIHJhbmdl IGZvciBpbnRlcmNlcHRpb25cbiIpOwogfQogCiAvKgpAQCAtMTA5NCw3ICsxMDc3LDcgQEAgc3Rh dGljIGludCBjb25zdHJ1Y3Rfdm1jcyhzdHJ1Y3QgdmNwdSAqdikKICAgICAvKiBNU1IgYWNjZXNz IGJpdG1hcC4gKi8KICAgICBpZiAoIGNwdV9oYXNfdm14X21zcl9iaXRtYXAgKQogICAgIHsKLSAg ICAgICAgdW5zaWduZWQgbG9uZyAqbXNyX2JpdG1hcCA9IGFsbG9jX3hlbmhlYXBfcGFnZSgpOwor ICAgICAgICBzdHJ1Y3Qgdm14X21zcl9iaXRtYXAgKm1zcl9iaXRtYXAgPSBhbGxvY194ZW5oZWFw X3BhZ2UoKTsKIAogICAgICAgICBpZiAoIG1zcl9iaXRtYXAgPT0gTlVMTCApCiAgICAgICAgIHsK QEAgLTE5NTgsNiArMTk0MSwyMCBAQCB2b2lkIF9faW5pdCBzZXR1cF92bWNzX2R1bXAodm9pZCkK ICAgICByZWdpc3Rlcl9rZXloYW5kbGVyKCd2Jywgdm1jc19kdW1wLCAiZHVtcCBWVC14IFZNQ1Nz IiwgMSk7CiB9CiAKK3N0YXRpYyB2b2lkIF9faW5pdCBfX21heWJlX3VudXNlZCBidWlsZF9hc3Nl cnRpb25zKHZvaWQpCit7CisgICAgc3RydWN0IHZteF9tc3JfYml0bWFwIGJpdG1hcDsKKworICAg IEJVSUxEX0JVR19PTihzaXplb2YoYml0bWFwKSAgICAgICAgICAgICE9IFBBR0VfU0laRSk7Cisg ICAgQlVJTERfQlVHX09OKHNpemVvZihiaXRtYXAucmVhZF9sb3cpICAgIT0gMTAyNCk7CisgICAg QlVJTERfQlVHX09OKHNpemVvZihiaXRtYXAucmVhZF9oaWdoKSAgIT0gMTAyNCk7CisgICAgQlVJ TERfQlVHX09OKHNpemVvZihiaXRtYXAud3JpdGVfbG93KSAgIT0gMTAyNCk7CisgICAgQlVJTERf QlVHX09OKHNpemVvZihiaXRtYXAud3JpdGVfaGlnaCkgIT0gMTAyNCk7CisgICAgQlVJTERfQlVH X09OKG9mZnNldG9mKHN0cnVjdCB2bXhfbXNyX2JpdG1hcCwgcmVhZF9sb3cpICAgIT0gMCk7Cisg ICAgQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCB2bXhfbXNyX2JpdG1hcCwgcmVhZF9oaWdo KSAgIT0gMTAyNCk7CisgICAgQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCB2bXhfbXNyX2Jp dG1hcCwgd3JpdGVfbG93KSAgIT0gMjA0OCk7CisgICAgQlVJTERfQlVHX09OKG9mZnNldG9mKHN0 cnVjdCB2bXhfbXNyX2JpdG1hcCwgd3JpdGVfaGlnaCkgIT0gMzA3Mik7Cit9CiAKIC8qCiAgKiBM b2NhbCB2YXJpYWJsZXM6CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgv dm1jcy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaAppbmRleCBlMzE4ZGMy Li45MjZlNzkyIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgvdm1jcy5o CisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZteC92bWNzLmgKQEAgLTY0LDYgKzY0LDE0 IEBAIHN0cnVjdCB2bXhfZG9tYWluIHsKICAgICB1bnNpZ25lZCBpbnQgc3RhdHVzOwogfTsKIAor LyogTGF5b3V0IG9mIHRoZSBNU1IgYml0bWFwLCBhcyBpbnRlcnByZXRlZCBieSBoYXJkd2FyZS4g Ki8KK3N0cnVjdCB2bXhfbXNyX2JpdG1hcCB7CisgICAgdW5zaWduZWQgbG9uZyByZWFkX2xvdyAg WzB4MjAwMCAvIEJJVFNfUEVSX0xPTkddOworICAgIHVuc2lnbmVkIGxvbmcgcmVhZF9oaWdoIFsw eDIwMDAgLyBCSVRTX1BFUl9MT05HXTsKKyAgICB1bnNpZ25lZCBsb25nIHdyaXRlX2xvdyBbMHgy MDAwIC8gQklUU19QRVJfTE9OR107CisgICAgdW5zaWduZWQgbG9uZyB3cml0ZV9oaWdoWzB4MjAw MCAvIEJJVFNfUEVSX0xPTkddOworfTsKKwogc3RydWN0IHBpX2Rlc2MgewogICAgIERFQ0xBUkVf QklUTUFQKHBpciwgTlJfVkVDVE9SUyk7CiAgICAgdW5pb24gewpAQCAtMTE2LDcgKzEyNCw3IEBA IHN0cnVjdCBhcmNoX3ZteF9zdHJ1Y3QgewogICAgIHVpbnQ2NF90ICAgICAgICAgICAgIGNzdGFy OwogICAgIHVpbnQ2NF90ICAgICAgICAgICAgIHNmbWFzazsKIAotICAgIHVuc2lnbmVkIGxvbmcg ICAgICAgKm1zcl9iaXRtYXA7CisgICAgc3RydWN0IHZteF9tc3JfYml0bWFwICptc3JfYml0bWFw OwogICAgIHVuc2lnbmVkIGludCAgICAgICAgIG1zcl9jb3VudDsKICAgICBzdHJ1Y3Qgdm14X21z cl9lbnRyeSAqbXNyX2FyZWE7CiAgICAgdW5zaWduZWQgaW50ICAgICAgICAgaG9zdF9tc3JfY291 bnQ7Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=