From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v9 02/11] x86/cpuid: Handling of IBRS/IBPB, STIBP and IBRS for guests Date: Thu, 18 Jan 2018 15:46:01 +0000 Message-ID: <1516290370-14958-3-git-send-email-andrew.cooper3@citrix.com> References: <1516290370-14958-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: <1516290370-14958-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 , Jan Beulich List-Id: xen-devel@lists.xenproject.org SW50ZWwgc3BlY2lmaWVzIElCUlMvSUJQQiAoY29tYmluZWQsIGluIGEgc2luZ2xlIGJpdCkgYW5k IFNUSUJQIGFzIGEgc2VwYXJhdGUKYml0LiAgQU1EIHNwZWNpZmllcyBJQlBCIGFsb25lIGluIGEg M3JkIGJpdC4KCkFNRCdzIElCUEIgaXMgYSBzdWJzZXQgb2YgSW50ZWwncyBjb21iaW5lZCBJQlJT L0lCUEIuICBGb3IgcGVyZm9ybWFuY2UKcmVhc29ucywgYWRtaW5pc3RyYXRvcnMgbWlnaHQgd2lz aCB0byBleHByZXNzICJJQlBCIG9ubHkiIGV2ZW4gb24gSW50ZWwKaGFyZHdhcmUsIHNvIHdlIGFs bG93IHRoZSBBTUQgYml0IHRvIGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZS4KClRoZSBiZWhhdmlv dXIgb2YgU1RJQlAgaXMgbW9yZSBjb21wbGljYXRlZC4KCkl0IGlzIG91ciBjdXJyZW50IHVuZGVy c3RhbmRpbmcgdGhhdCBTVElCUCB3aWxsIGJlIGFkdmVydGlzZWQgb24gSFQtY2FwYWJsZQpoYXJk d2FyZSBpcnJlc3BlY3RpdmUgb2Ygd2hldGhlciBIVCBpcyBlbmFibGVkLCBidXQgbm90IGFkdmVy dGlzZWQgb24KSFQtaW5jYXBhYmxlIGhhcmR3YXJlLiAgSG93ZXZlciwgZm9yIGVhc2Ugb2Ygdmly dHVhbGlzYXRpb24sIFNUSUJQJ3MKZnVuY3Rpb25hbGl0eSBpcyBpZ25vcmVkIHJhdGhlciB0aGFu IHJlc2VydmVkIGJ5IG1pY3JvY29kZS9oYXJkd2FyZSBvbgpIVC1pbmNhcGFibGUgaGFyZHdhcmUu CgpGb3IgZ3Vlc3Qgc2FmZXR5LCB3ZSB0cmVhdCBTVElCUCBhcyBzcGVjaWFsLCBhbHdheXMgb3Zl cnJpZGUgdGhlIHRvb2xzdGFjawpjaG9pY2UsIGFuZCBhbHdheXMgYWR2ZXJ0aXNlIFNUSUJQIGlm IElCUlMgaXMgYXZhaWxhYmxlLiAgVGhpcyByZW1vdmVzIHRoZQpjb3JuZXIgY2FzZSB3aGVyZSBT VElCUCBpcyBub3QgYWR2ZXJ0aXNlZCwgYnV0IHRoZSBndWVzdCBpcyBydW5uaW5nIG9uCkhULWNh cGFibGUgaGFyZHdhcmUgd2hlcmUgaXQgZG9lcyBtYXR0ZXIuCgpGaW5hbGx5IGFzIGEgYnVnZml4 LCB1cGRhdGUgdGhlIGxpYnhjIENQVUlEIGxvZ2ljIHRvIHVuZGVyc3RhbmQgdGhlIGU4YgpmZWF0 dXJlIGxlYWYsIHdoaWNoIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgYWxzbyBvZmZlcmluZyBDTFpF Uk8gdG8gZ3Vlc3RzIG9uCmFwcGxpY2FibGUgaGFyZHdhcmUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogV2VpIExpdSA8 d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5j b20+Cgp2OToKICogTmV3CiAqIE1vdmUgbGlieGMgZml4IGZyb20gYSBsYXRlciBwYXRjaCwgYW5k IGFzc29jaWF0ZWQgdG9vbHN0YWNrIGFjay4KLS0tCiB0b29scy9saWJ4Yy94Y19jcHVpZF94ODYu YyAgICAgICAgICAgICAgICAgIHwgIDQgKysrLQogeGVuL2FyY2gveDg2L2NwdWlkLmMgICAgICAg ICAgICAgICAgICAgICAgICB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9p bmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmggfCAgMiArLQogMyBmaWxlcyBj aGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rv b2xzL2xpYnhjL3hjX2NwdWlkX3g4Ni5jIGIvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKaW5k ZXggMjViOTIyZS4uOWZhMmY3YyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2 LmMKKysrIGIvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKQEAgLTQ2NSw3ICs0NjUsOSBAQCBz dGF0aWMgdm9pZCB4Y19jcHVpZF9odm1fcG9saWN5KHhjX2ludGVyZmFjZSAqeGNoLAogCiAgICAg Y2FzZSAweDgwMDAwMDA4OgogICAgICAgICByZWdzWzBdICY9IDB4MDAwMGZmZmZ1OwotICAgICAg ICByZWdzWzFdID0gcmVnc1szXSA9IDA7CisgICAgICAgIHJlZ3NbMV0gPSBpbmZvLT5mZWF0dXJl c2V0W2ZlYXR1cmV3b3JkX29mKFg4Nl9GRUFUVVJFX0NMWkVSTyldOworICAgICAgICAvKiByZWdz WzJdIGhhbmRsZWQgaW4gdGhlIHBlci12ZW5kb3IgbG9naWMuICovCisgICAgICAgIHJlZ3NbM10g PSAwOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgMHgwMDAwMDAwMjogLyogSW50ZWwgY2Fj aGUgaW5mbyAoZHVtcGVkIGJ5IEFNRCBwb2xpY3kpICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvY3B1aWQuYyBiL3hlbi9hcmNoL3g4Ni9jcHVpZC5jCmluZGV4IDJlZjcxZDIuLmIzYzlhYzYg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHVpZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHVp ZC5jCkBAIC0zODMsNiArMzgzLDE2IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBjYWxjdWxhdGVfcHZf bWF4X3BvbGljeSh2b2lkKQogICAgIC8qIFVuY29uZGl0aW9uYWxseSBjbGFpbSB0byBiZSBhYmxl IHRvIHNldCB0aGUgaHlwZXJ2aXNvciBiaXQuICovCiAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJF X0hZUEVSVklTT1IsIHB2X2ZlYXR1cmVzZXQpOwogCisgICAgLyogT24gaGFyZHdhcmUgd2l0aCBJ QlJTL0lCUEIgc3VwcG9ydCwgdGhlcmUgYXJlIGZ1cnRoZXIgYWRqdXN0bWVudHMuICovCisgICAg aWYgKCB0ZXN0X2JpdChYODZfRkVBVFVSRV9JQlJTQiwgcHZfZmVhdHVyZXNldCkgKQorICAgIHsK KyAgICAgICAgLyogT2ZmZXIgU1RJQlAgdW5jb25kaXRpb25hbGx5LiAgSXQgaXMgYSBub3Agb24g bm9uLUhUIGhhcmR3YXJlLiAqLworICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfU1RJQlAs IHB2X2ZlYXR1cmVzZXQpOworCisgICAgICAgIC8qIEFNRCdzIElCUEIgaXMgYSBzdWJzZXQgb2Yg SUJSUy9JQlBCLiAqLworICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfSUJQQiwgcHZfZmVh dHVyZXNldCk7CisgICAgfQorCiAgICAgc2FuaXRpc2VfZmVhdHVyZXNldChwdl9mZWF0dXJlc2V0 KTsKICAgICBjcHVpZF9mZWF0dXJlc2V0X3RvX3BvbGljeShwdl9mZWF0dXJlc2V0LCBwKTsKICAg ICByZWNhbGN1bGF0ZV94c3RhdGUocCk7CkBAIC00NDAsNiArNDUwLDE2IEBAIHN0YXRpYyB2b2lk IF9faW5pdCBjYWxjdWxhdGVfaHZtX21heF9wb2xpY3kodm9pZCkKICAgICAgICAgICAgIF9fY2xl YXJfYml0KFg4Nl9GRUFUVVJFX1hTQVZFUywgaHZtX2ZlYXR1cmVzZXQpOwogICAgIH0KIAorICAg IC8qIE9uIGhhcmR3YXJlIHdpdGggSUJSUy9JQlBCIHN1cHBvcnQsIHRoZXJlIGFyZSBmdXJ0aGVy IGFkanVzdG1lbnRzLiAqLworICAgIGlmICggdGVzdF9iaXQoWDg2X0ZFQVRVUkVfSUJSU0IsIGh2 bV9mZWF0dXJlc2V0KSApCisgICAgeworICAgICAgICAvKiBPZmZlciBTVElCUCB1bmNvbmRpdGlv bmFsbHkuICBJdCBpcyBhIG5vcCBvbiBub24tSFQgaGFyZHdhcmUuICovCisgICAgICAgIF9fc2V0 X2JpdChYODZfRkVBVFVSRV9TVElCUCwgaHZtX2ZlYXR1cmVzZXQpOworCisgICAgICAgIC8qIEFN RCdzIElCUEIgaXMgYSBzdWJzZXQgb2YgSUJSUy9JQlBCLiAqLworICAgICAgICBfX3NldF9iaXQo WDg2X0ZFQVRVUkVfSUJQQiwgaHZtX2ZlYXR1cmVzZXQpOworICAgIH0KKwogICAgIHNhbml0aXNl X2ZlYXR1cmVzZXQoaHZtX2ZlYXR1cmVzZXQpOwogICAgIGNwdWlkX2ZlYXR1cmVzZXRfdG9fcG9s aWN5KGh2bV9mZWF0dXJlc2V0LCBwKTsKICAgICByZWNhbGN1bGF0ZV94c3RhdGUocCk7CkBAIC01 ODEsNiArNjAxLDE0IEBAIHZvaWQgcmVjYWxjdWxhdGVfY3B1aWRfcG9saWN5KHN0cnVjdCBkb21h aW4gKmQpCiAgICAgcmVjYWxjdWxhdGVfeHN0YXRlKHApOwogICAgIHJlY2FsY3VsYXRlX21pc2Mo cCk7CiAKKyAgICAvKgorICAgICAqIE92ZXJyaWRlIFNUSUJQIHRvIG1hdGNoIElCUlMuICBHdWVz dHMgY2FuIHNhZmVseSB1c2UgU1RJQlAKKyAgICAgKiBmdW5jdGlvbmFsaXR5IG9uIG5vbi1IVCBo YXJkd2FyZSwgYnV0IGNhbid0IG5lY2Vzc2VyaWx5IHByb3RlY3QKKyAgICAgKiB0aGVtc2VsdmVz IGZyb20gU1AyL1NwZWN0cmUvQnJhbmNoIFRhcmdldCBJbmplY3Rpb24gaWYgU1RJQlAgaXMgaGlk ZGVuCisgICAgICogb24gSFQtY2FwYWJsZSBoYXJkd2FyZS4KKyAgICAgKi8KKyAgICBwLT5mZWF0 LnN0aWJwID0gcC0+ZmVhdC5pYnJzYjsKKwogICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlfU0la RShwLT5jYWNoZS5yYXcpOyArK2kgKQogICAgIHsKICAgICAgICAgaWYgKCBwLT5jYWNoZS5zdWJs ZWFmW2ldLnR5cGUgPj0gMSAmJgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt eDg2L2NwdWZlYXR1cmVzZXQuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0 dXJlc2V0LmgKaW5kZXggZTE0ODc1NS4uMGYyMWZlZCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv cHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMv YXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCkBAIC0yNDMsNyArMjQzLDcgQEAgWEVOX0NQVUZFQVRV UkUoSUJQQiwgICAgICAgICAgOCozMisxMikgLyogICBJQlBCIHN1cHBvcnQgb25seSAobm8gSUJS UywgdXNlZCBieQogWEVOX0NQVUZFQVRVUkUoQVZYNTEyXzRWTk5JVywgOSozMisgMikgLypBICBB Vlg1MTIgTmV1cmFsIE5ldHdvcmsgSW5zdHJ1Y3Rpb25zICovCiBYRU5fQ1BVRkVBVFVSRShBVlg1 MTJfNEZNQVBTLCA5KjMyKyAzKSAvKkEgIEFWWDUxMiBNdWx0aXBseSBBY2N1bXVsYXRpb24gU2lu Z2xlIFByZWNpc2lvbiAqLwogWEVOX0NQVUZFQVRVUkUoSUJSU0IsICAgICAgICAgOSozMisyNikg LyogICBJQlJTIGFuZCBJQlBCIHN1cHBvcnQgKHVzZWQgYnkgSW50ZWwpICovCi1YRU5fQ1BVRkVB VFVSRShTVElCUCwgICAgICAgICA5KjMyKzI3KSAvKiAgIFNUSUJQICovCitYRU5fQ1BVRkVBVFVS RShTVElCUCwgICAgICAgICA5KjMyKzI3KSAvKiEgIFNUSUJQICovCiAKICNlbmRpZiAvKiBYRU5f Q1BVRkVBVFVSRSAqLwogCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0 aW5mby94ZW4tZGV2ZWw=