From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 5/9] x86/vmx: Improvements to LBR MSR handling Date: Fri, 8 Jun 2018 19:48:39 +0100 Message-ID: <1528483723-4128-6-git-send-email-andrew.cooper3@citrix.com> References: <1528483723-4128-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: <1528483723-4128-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: Kevin Tian , Wei Liu , Jan Beulich , Andrew Cooper , Jun Nakajima , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhlIG1haW4gcHVycG9zZSBvZiB0aGlzIHBhdGNoIGlzIHRvIG9ubHkgZXZlciBpbnNlcnQgdGhl IExCUiBNU1JzIGludG8gdGhlCmd1ZXN0IGxvYWQvc2F2ZSBsaXN0IG9uY2UsIGFzIGEgZnV0dXJl IHBhdGNoIHdhbnRzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3VyIG9mCnZteF9hZGRfZ3Vlc3RfbXNy KCkuCgpUaGUgcmVwZWF0ZWQgcHJvY2Vzc2luZyBvZiBsYnJfaW5mbyBhbmQgdGhlIGd1ZXN0cyBN U1IgbG9hZC9zYXZlIGxpc3QgaXMKcmVkdW5kYW50LCBhbmQgYSBndWVzdCB1c2luZyBMQlIgaXRz ZWxmIHdpbGwgaGF2ZSB0byByZS1lbmFibGUKTVNSX0RFQlVHQ1RMLkxCUiBpbiBpdHMgI0RCIGhh bmRsZXIsIG1lYW5pbmcgdGhhdCBYZW4gd2lsbCByZXBlYXQgdGhpcwpyZWR1bmRhbnQgcHJvY2Vz c2luZyBldmVyeSB0aW1lIHRoZSBndWVzdCBnZXRzIGEgZGVidWcgZXhjZXB0aW9uLgoKUmVuYW1l IGxicl9maXh1cF9lbmFibGVkIHRvIGxicl9mbGFncyB0byBiZSBhIGxpdHRsZSBtb3JlIGdlbmVy aWMsIGFuZCB1c2Ugb25lCmJpdCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBNU1JzIGhhdmUgYmVlbiBp bnNlcnRlZCBpbnRvIHRoZSBsb2FkL3NhdmUgbGlzdC4KU2hvcnRlbiB0aGUgZXhpc3RpbmcgRklY VVAqIGlkZW50aWZpZXJzIHRvIHJlZHVjZSBjb2RlIHZvbHVtZS4KCkZpbmFsbHksIHRoZSBlbmFi bGVtZW50IG9mIHRoZSBmaXh1cHMgb25seSBuZWVkIHRvIGJlIGNhbGN1bGF0ZWQgb25jZSwgcmF0 aGVyCnRoYW4gaW5zaWRlIGEgZG91Ymx5IG5lc3RlZCBsb29wLgoKU2lnbmVkLW9mZi1ieTogQW5k cmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGlj aCA8SkJldWxpY2hAc3VzZS5jb20+CkNDOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRl bC5jb20+CkNDOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ0M6IFJvZ2VyIFBh dSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0 cml4LmNvbT4KCnYyOgogKiBOZXcKLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyAgICAg ICAgIHwgMjUgKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vdm14L3ZtY3MuaCB8ICA3ICsrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9u cygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgv dm14LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwppbmRleCAyNWRkMjA0Li4zNWYwZTkw IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYworKysgYi94ZW4vYXJjaC94 ODYvaHZtL3ZteC92bXguYwpAQCAtMjc1MCw5ICsyNzUwLDYgQEAgZW51bQogCiAjZGVmaW5lIExC Ul9GUk9NX1NJR05FWFRfMk1TQiAgKCgxVUxMIDw8IDU5KSB8ICgxVUxMIDw8IDYwKSkKIAotI2Rl ZmluZSBGSVhVUF9MQlJfVFNYICAgICAgICAgICAgKDF1IDw8IDApCi0jZGVmaW5lIEZJWFVQX0JE V19FUlJBVFVNX0JERjE0ICAoMXUgPDwgMSkKLQogc3RhdGljIGJvb2wgX19yZWFkX21vc3RseSBs YnJfdHN4X2ZpeHVwX25lZWRlZDsKIHN0YXRpYyBib29sIF9fcmVhZF9tb3N0bHkgYmR3X2VycmF0 dW1fYmRmMTRfZml4dXBfbmVlZGVkOwogc3RhdGljIHVpbnQzMl90IF9fcmVhZF9tb3N0bHkgbGJy X2Zyb21fc3RhcnQ7CkBAIC0zMDk3LDcgKzMwOTQsOCBAQCBzdGF0aWMgaW50IHZteF9tc3Jfd3Jp dGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90IG1zcl9jb250ZW50KQogICAg ICAgICAgICAgaWYgKCB2cG11X2RvX3dybXNyKG1zciwgbXNyX2NvbnRlbnQsIHN1cHBvcnRlZCkg KQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGlmICggbXNyX2Nv bnRlbnQgJiBJQTMyX0RFQlVHQ1RMTVNSX0xCUiApCisgICAgICAgIGlmICggKG1zcl9jb250ZW50 ICYgSUEzMl9ERUJVR0NUTE1TUl9MQlIpICYmCisgICAgICAgICAgICAgISh2LT5hcmNoLmh2bV92 bXgubGJyX2ZsYWdzICYgTEJSX01TUlNfSU5TRVJURUQpICkKICAgICAgICAgewogICAgICAgICAg ICAgY29uc3Qgc3RydWN0IGxicl9pbmZvICpsYnIgPSBsYXN0X2JyYW5jaF9tc3JfZ2V0KCk7CiAg ICAgICAgICAgICBpZiAoIGxiciA9PSBOVUxMICkKQEAgLTMxMDYsMTQgKzMxMDQsMTMgQEAgc3Rh dGljIGludCB2bXhfbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRf dCBtc3JfY29udGVudCkKICAgICAgICAgICAgIGZvciAoIDsgKHJjID09IDApICYmIGxici0+Y291 bnQ7IGxicisrICkKICAgICAgICAgICAgICAgICBmb3IgKCBpID0gMDsgKHJjID09IDApICYmIChp IDwgbGJyLT5jb3VudCk7IGkrKyApCiAgICAgICAgICAgICAgICAgICAgIGlmICggKHJjID0gdm14 X2FkZF9ndWVzdF9tc3IodiwgbGJyLT5iYXNlICsgaSkpID09IDAgKQotICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICB2bXhfY2xlYXJfbXNyX2ludGVyY2VwdCh2 LCBsYnItPmJhc2UgKyBpLCBWTVhfTVNSX1JXKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm ICggbGJyX3RzeF9maXh1cF9uZWVkZWQgKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYt PmFyY2guaHZtX3ZteC5sYnJfZml4dXBfZW5hYmxlZCB8PSBGSVhVUF9MQlJfVFNYOwotICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKCBiZHdfZXJyYXR1bV9iZGYxNF9maXh1cF9uZWVkZWQgKQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZteC5sYnJfZml4dXBfZW5h YmxlZCB8PQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSVhVUF9CRFdfRVJSQVRV TV9CREYxNDsKLSAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2LT5hcmNoLmh2 bV92bXgubGJyX2ZsYWdzIHw9IExCUl9NU1JTX0lOU0VSVEVEOworICAgICAgICAgICAgaWYgKCBs YnJfdHN4X2ZpeHVwX25lZWRlZCApCisgICAgICAgICAgICAgICAgdi0+YXJjaC5odm1fdm14Lmxi cl9mbGFncyB8PSBMQlJfRklYVVBfVFNYOworICAgICAgICAgICAgaWYgKCBiZHdfZXJyYXR1bV9i ZGYxNF9maXh1cF9uZWVkZWQgKQorICAgICAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZteC5sYnJf ZmxhZ3MgfD0gTEJSX0ZJWFVQX0JERjE0OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCByYyA8 IDAgKQpAQCAtNDIwMyw5ICs0MjAwLDkgQEAgc3RhdGljIHZvaWQgbGJyX2ZpeHVwKHZvaWQpCiB7 CiAgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OwogCi0gICAgaWYgKCBjdXJyLT5hcmNo Lmh2bV92bXgubGJyX2ZpeHVwX2VuYWJsZWQgJiBGSVhVUF9MQlJfVFNYICkKKyAgICBpZiAoIGN1 cnItPmFyY2guaHZtX3ZteC5sYnJfZmxhZ3MgJiBMQlJfRklYVVBfVFNYICkKICAgICAgICAgbGJy X3RzeF9maXh1cCgpOwotICAgIGlmICggY3Vyci0+YXJjaC5odm1fdm14Lmxicl9maXh1cF9lbmFi bGVkICYgRklYVVBfQkRXX0VSUkFUVU1fQkRGMTQgKQorICAgIGlmICggY3Vyci0+YXJjaC5odm1f dm14Lmxicl9mbGFncyAmIExCUl9GSVhVUF9CREYxNCApCiAgICAgICAgIGJkd19lcnJhdHVtX2Jk ZjE0X2ZpeHVwKCk7CiB9CiAKQEAgLTQyNzMsNyArNDI3MCw3IEBAIGJvb2wgdm14X3ZtZW50ZXJf aGVscGVyKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIH0KIAogIG91dDoK LSAgICBpZiAoIHVubGlrZWx5KGN1cnItPmFyY2guaHZtX3ZteC5sYnJfZml4dXBfZW5hYmxlZCkg KQorICAgIGlmICggdW5saWtlbHkoY3Vyci0+YXJjaC5odm1fdm14Lmxicl9mbGFncyAmIExCUl9G SVhVUF9NQVNLKSApCiAgICAgICAgIGxicl9maXh1cCgpOwogCiAgICAgSFZNVFJBQ0VfTkQoVk1F TlRSWSwgMCwgMS8qY3ljbGVzKi8sIDAsIDAsIDAsIDAsIDAsIDAsIDApOwpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYv aHZtL3ZteC92bWNzLmgKaW5kZXggNjJhZmViZS4uMzc4MjVhZCAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS92bXgvdm1jcy5oCkBAIC0xNTYsNyArMTU2LDEyIEBAIHN0cnVjdCBhcmNoX3ZteF9zdHJ1Y3Qg ewogICAgIC8qIEFyZSB3ZSBlbXVsYXRpbmcgcmF0aGVyIHRoYW4gVk1FTlRFUmluZz8gKi8KICAg ICB1aW50OF90ICAgICAgICAgICAgICB2bXhfZW11bGF0ZTsKIAotICAgIHVpbnQ4X3QgICAgICAg ICAgICAgIGxicl9maXh1cF9lbmFibGVkOworICAgIC8qIEZsYWdzIGZvciBMQlIgTVNScyBpbiB0 aGUgbG9hZC9zYXZlIGxpc3RzLiAqLworI2RlZmluZSBMQlJfTVNSU19JTlNFUlRFRCAgKDF1IDw8 IDApCisjZGVmaW5lIExCUl9GSVhVUF9UU1ggICAgICAoMXUgPDwgMSkKKyNkZWZpbmUgTEJSX0ZJ WFVQX0JERjE0ICAgICgxdSA8PCAyKQorI2RlZmluZSBMQlJfRklYVVBfTUFTSyAgICAgKExCUl9G SVhVUF9UU1ggfCBMQlJfRklYVVBfQkRGMTQpCisgICAgdWludDhfdCAgICAgICAgICAgICAgbGJy X2ZsYWdzOwogCiAgICAgLyogQml0bWFzayBvZiBzZWdtZW50cyB0aGF0IHdlIGNhbid0IHNhZmVs eSB1c2UgaW4gdmlydHVhbCA4MDg2IG1vZGUgKi8KICAgICB1aW50MTZfdCAgICAgICAgICAgICB2 bTg2X3NlZ21lbnRfbWFzazsKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xp c3RpbmZvL3hlbi1kZXZlbA==