From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 08/10] x86/cpuid: Improvements to guest policies for speculative sidechannel features Date: Fri, 11 May 2018 11:38:12 +0100 Message-ID: <1526035094-14343-9-git-send-email-andrew.cooper3@citrix.com> References: <1526035094-14343-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: <1526035094-14343-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: Juergen Gross , Andrew Cooper , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org SWYgWGVuIGlzbid0IHZpcnR1YWxpc2luZyBNU1JfU1BFQ19DVFJMIGZvciBndWVzdHMsIElCUlNC IHNob3VsZG4ndCBiZQphZHZlcnRpc2VkLiAgSXQgaXMgbm90IGN1cnJlbnRseSBwb3NzaWJsZSB0 byBleHByZXNzIHRoaXMgdmlhIHRoZSBleGlzdGluZwpjb21tYW5kIGxpbmUgb3B0aW9ucywgYnV0 IHN1Y2ggYW4gYWJpbGl0eSB3aWxsIGJlIGludHJvZHVjZWQuCgpBbm90aGVyIHVzZWZ1bCBvcHRp b24gaW4gc29tZSB1c2VjYXNlcyBpcyB0byBvZmZlciBJQlBCIHdpdGhvdXQgSUJSUy4gIFdoZW4g YQpndWVzdCBrZXJuZWwgaXMga25vd24gdG8gYmUgY29tcGF0aWJsZSAodXNlcyByZXRwb2xpbmUg YW5kIGtub3dzIGFib3V0IHRoZSBBTUQKSUJQQiBmZWF0dXJlIGJpdCksIGFuIGFkbWluaXN0cmF0 b3Igd2l0aCBwcmUtU2t5bGFrZSBoYXJkd2FyZSBtYXkgd2lzaCB0byBoaWRlCklCUlMuICBUaGlz IGFsbG93cyB0aGUgVk0gdG8gaGF2ZSBmdWxsIHByb3RlY3Rpb24sIHdpdGhvdXQgWGVuIG9yIHRo ZSBWTQpuZWVkaW5nIHRvIHRvdWNoIE1TUl9TUEVDX0NUUkwsIHdoaWNoIGNhbiByZWR1Y2UgdGhl IG92ZXJoZWFkIG9mIFNwZWN0cmUKbWl0aWdhdGlvbnMuCgpCcmVhayB0aGUgbG9naWMgY29tbW9u IHRvIGJvdGggUFYgYW5kIEhWTSBDUFVJRCBjYWxjdWxhdGlvbnMgaW50byBhIGNvbW1vbgpoZWxw ZXIsIHRvIGF2b2lkIGR1cGxpY2F0aW9uLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hA c3VzZS5jb20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogUm9nZXIgUGF1 IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkNDOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NA c3VzZS5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2NwdWlkLmMgfCA2MCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzcg aW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2NwdWlkLmMgYi94ZW4vYXJjaC94ODYvY3B1aWQuYwppbmRleCBjZmYxYTI2Li44MjdiNmM1IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1aWQuYworKysgYi94ZW4vYXJjaC94ODYvY3B1aWQu YwpAQCAtMzY4LDYgKzM2OCwyOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgY2FsY3VsYXRlX2hvc3Rf cG9saWN5KHZvaWQpCiAgICAgfQogfQogCitzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9u X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQoreworICAgIC8qIFVuY29uZGl0aW9u YWxseSBjbGFpbSB0byBiZSBhYmxlIHRvIHNldCB0aGUgaHlwZXJ2aXNvciBiaXQuICovCisgICAg X19zZXRfYml0KFg4Nl9GRUFUVVJFX0hZUEVSVklTT1IsIGZzKTsKKworICAgIC8qCisgICAgICog SWYgSUJSUyBpcyBvZmZlcmVkIHRvIHRoZSBndWVzdCwgdW5jb25kaXRpb25hbGx5IG9mZmVyIFNU SUJQLiAgSXQgaXMgYQorICAgICAqIG5vcCBvbiBub24tSFQgaGFyZHdhcmUsIGFuZCBoYXMgdGhp cyBiZWhhdmlvdXIgdG8gbWFrZSBoZXRlcm9nZW5lb3VzCisgICAgICogc2V0dXBzIGVhc2llciB0 byBtYW5hZ2UuCisgICAgICovCisgICAgaWYgKCB0ZXN0X2JpdChYODZfRkVBVFVSRV9JQlJTQiwg ZnMpICkKKyAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1NUSUJQLCBmcyk7CisKKyAgICAv KgorICAgICAqIE9uIGhhcmR3YXJlIHdoaWNoIHN1cHBvcnRzIElCUlMvSUJQQiwgd2UgY2FuIG9m ZmVyIElCUEIgaW5kZXBlbmRlbnRseQorICAgICAqIG9mIElCUlMgYnkgdXNpbmcgdGhlIEFNRCBm ZWF0dXJlIGJpdC4gIEFuIGFkbWluaXN0cmF0b3IgbWF5IHdpc2ggZm9yCisgICAgICogcGVyZm9y bWFuY2UgcmVhc29ucyB0byBvZmZlciBJQlBCIHdpdGhvdXQgSUJSUy4KKyAgICAgKi8KKyAgICBp ZiAoIGhvc3RfY3B1aWRfcG9saWN5LmZlYXQuaWJyc2IgKQorICAgICAgICBfX3NldF9iaXQoWDg2 X0ZFQVRVUkVfSUJQQiwgZnMpOworfQorCiBzdGF0aWMgdm9pZCBfX2luaXQgY2FsY3VsYXRlX3B2 X21heF9wb2xpY3kodm9pZCkKIHsKICAgICBzdHJ1Y3QgY3B1aWRfcG9saWN5ICpwID0gJnB2X21h eF9jcHVpZF9wb2xpY3k7CkBAIC0zODAsMTggKzQwMiwxNCBAQCBzdGF0aWMgdm9pZCBfX2luaXQg Y2FsY3VsYXRlX3B2X21heF9wb2xpY3kodm9pZCkKICAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZ X1NJWkUocHZfZmVhdHVyZXNldCk7ICsraSApCiAgICAgICAgIHB2X2ZlYXR1cmVzZXRbaV0gJj0g cHZfZmVhdHVyZW1hc2tbaV07CiAKLSAgICAvKiBVbmNvbmRpdGlvbmFsbHkgY2xhaW0gdG8gYmUg YWJsZSB0byBzZXQgdGhlIGh5cGVydmlzb3IgYml0LiAqLwotICAgIF9fc2V0X2JpdChYODZfRkVB VFVSRV9IWVBFUlZJU09SLCBwdl9mZWF0dXJlc2V0KTsKLQotICAgIC8qIE9uIGhhcmR3YXJlIHdp dGggSUJSUy9JQlBCIHN1cHBvcnQsIHRoZXJlIGFyZSBmdXJ0aGVyIGFkanVzdG1lbnRzLiAqLwot ICAgIGlmICggdGVzdF9iaXQoWDg2X0ZFQVRVUkVfSUJSU0IsIHB2X2ZlYXR1cmVzZXQpICkKLSAg ICB7Ci0gICAgICAgIC8qIE9mZmVyIFNUSUJQIHVuY29uZGl0aW9uYWxseS4gIEl0IGlzIGEgbm9w IG9uIG5vbi1IVCBoYXJkd2FyZS4gKi8KLSAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1NU SUJQLCBwdl9mZWF0dXJlc2V0KTsKKyAgICAvKgorICAgICAqIElmIFhlbiBpc24ndCB2aXJ0dWFs aXNpbmcgTVNSX1NQRUNfQ1RSTCBmb3IgUFYgZ3Vlc3RzIGJlY2F1c2Ugb2YKKyAgICAgKiBhZG1p bmlzdHJhdG9yIGNob2ljZSwgaGlkZSB0aGUgZmVhdHVyZS4KKyAgICAgKi8KKyAgICBpZiAoICFi b290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfU0NfTVNSX1BWKSApCisgICAgICAgIF9fY2xlYXJfYml0 KFg4Nl9GRUFUVVJFX0lCUlNCLCBwdl9mZWF0dXJlc2V0KTsKIAotICAgICAgICAvKiBBTUQncyBJ QlBCIGlzIGEgc3Vic2V0IG9mIElCUlMvSUJQQi4gKi8KLSAgICAgICAgX19zZXRfYml0KFg4Nl9G RUFUVVJFX0lCUEIsIHB2X2ZlYXR1cmVzZXQpOwotICAgIH0KKyAgICBndWVzdF9jb21tb25fZmVh dHVyZV9hZGp1c3RtZW50cyhwdl9mZWF0dXJlc2V0KTsKIAogICAgIHNhbml0aXNlX2ZlYXR1cmVz ZXQocHZfZmVhdHVyZXNldCk7CiAgICAgY3B1aWRfZmVhdHVyZXNldF90b19wb2xpY3kocHZfZmVh dHVyZXNldCwgcCk7CkBAIC00MTksOSArNDM3LDYgQEAgc3RhdGljIHZvaWQgX19pbml0IGNhbGN1 bGF0ZV9odm1fbWF4X3BvbGljeSh2b2lkKQogICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlfU0la RShodm1fZmVhdHVyZXNldCk7ICsraSApCiAgICAgICAgIGh2bV9mZWF0dXJlc2V0W2ldICY9IGh2 bV9mZWF0dXJlbWFza1tpXTsKIAotICAgIC8qIFVuY29uZGl0aW9uYWxseSBjbGFpbSB0byBiZSBh YmxlIHRvIHNldCB0aGUgaHlwZXJ2aXNvciBiaXQuICovCi0gICAgX19zZXRfYml0KFg4Nl9GRUFU VVJFX0hZUEVSVklTT1IsIGh2bV9mZWF0dXJlc2V0KTsKLQogICAgIC8qCiAgICAgICogWGVuIGNh biBwcm92aWRlIGFuIEFQSUMgZW11bGF0aW9uIHRvIEhWTSBndWVzdHMgZXZlbiBpZiB0aGUgaG9z dCdzIEFQSUMKICAgICAgKiBpc24ndCBlbmFibGVkLgpAQCAtNDM4LDYgKzQ1MywxMyBAQCBzdGF0 aWMgdm9pZCBfX2luaXQgY2FsY3VsYXRlX2h2bV9tYXhfcG9saWN5KHZvaWQpCiAgICAgICAgIF9f c2V0X2JpdChYODZfRkVBVFVSRV9TRVAsIGh2bV9mZWF0dXJlc2V0KTsKIAogICAgIC8qCisgICAg ICogSWYgWGVuIGlzbid0IHZpcnR1YWxpc2luZyBNU1JfU1BFQ19DVFJMIGZvciBIVk0gZ3Vlc3Rz IGJlY2F1c2Ugb2YKKyAgICAgKiBhZG1pbmlzdHJhdG9yIGNob2ljZSwgaGlkZSB0aGUgZmVhdHVy ZS4KKyAgICAgKi8KKyAgICBpZiAoICFib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfU0NfTVNSX0hW TSkgKQorICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9JQlJTQiwgaHZtX2ZlYXR1cmVz ZXQpOworCisgICAgLyoKICAgICAgKiBXaXRoIFZULXgsIHNvbWUgZmVhdHVyZXMgYXJlIG9ubHkg c3VwcG9ydGVkIGJ5IFhlbiBpZiBkZWRpY2F0ZWQKICAgICAgKiBoYXJkd2FyZSBzdXBwb3J0IGlz IGFsc28gYXZhaWxhYmxlLgogICAgICAqLwpAQCAtNDUwLDE1ICs0NzIsNyBAQCBzdGF0aWMgdm9p ZCBfX2luaXQgY2FsY3VsYXRlX2h2bV9tYXhfcG9saWN5KHZvaWQpCiAgICAgICAgICAgICBfX2Ns ZWFyX2JpdChYODZfRkVBVFVSRV9YU0FWRVMsIGh2bV9mZWF0dXJlc2V0KTsKICAgICB9CiAKLSAg ICAvKiBPbiBoYXJkd2FyZSB3aXRoIElCUlMvSUJQQiBzdXBwb3J0LCB0aGVyZSBhcmUgZnVydGhl ciBhZGp1c3RtZW50cy4gKi8KLSAgICBpZiAoIHRlc3RfYml0KFg4Nl9GRUFUVVJFX0lCUlNCLCBo dm1fZmVhdHVyZXNldCkgKQotICAgIHsKLSAgICAgICAgLyogT2ZmZXIgU1RJQlAgdW5jb25kaXRp b25hbGx5LiAgSXQgaXMgYSBub3Agb24gbm9uLUhUIGhhcmR3YXJlLiAqLwotICAgICAgICBfX3Nl dF9iaXQoWDg2X0ZFQVRVUkVfU1RJQlAsIGh2bV9mZWF0dXJlc2V0KTsKLQotICAgICAgICAvKiBB TUQncyBJQlBCIGlzIGEgc3Vic2V0IG9mIElCUlMvSUJQQi4gKi8KLSAgICAgICAgX19zZXRfYml0 KFg4Nl9GRUFUVVJFX0lCUEIsIGh2bV9mZWF0dXJlc2V0KTsKLSAgICB9CisgICAgZ3Vlc3RfY29t bW9uX2ZlYXR1cmVfYWRqdXN0bWVudHMoaHZtX2ZlYXR1cmVzZXQpOwogCiAgICAgc2FuaXRpc2Vf ZmVhdHVyZXNldChodm1fZmVhdHVyZXNldCk7CiAgICAgY3B1aWRfZmVhdHVyZXNldF90b19wb2xp Y3koaHZtX2ZlYXR1cmVzZXQsIHApOwotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs