From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 1/2] x86/xstate: Use a guests CPUID policy, rather than allowing all features Date: Thu, 19 Jul 2018 12:44:42 +0100 Message-ID: <1532000683-23429-2-git-send-email-andrew.cooper3@citrix.com> References: <1532000683-23429-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: <1532000683-23429-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 SXQgdHVybnMgb3V0IHRoYXQgWGVuIGhhcyBuZXZlciBlbmZvcmNlZCB0aGF0IGEgZG9tYWluIHJl bWFpbiB3aXRoaW4gdGhlCnhzdGF0ZSBmZWF0dXJlcyBhZHZlcnRpc2VkIGluIENQVUlELgoKVGhl IGNoZWNrIG9mIG5ld19idiBhZ2FpbnN0IHhmZWF0dXJlX21hc2sgZW5zdXJlcyB0aGF0IGEgZG9t YWluIHN0YXlzIHdpdGhpbgp0aGUgc2V0IG9mIGZlYXR1cmVzIHRoYXQgWGVuIGhhcyBlbmFibGVk IGluIGhhcmR3YXJlIChhbmQgdGhlcmVmb3JlIGlzbid0IGEKc2VjdXJpdHkgcHJvYmxlbSksIGJ1 dCB0aGlzIGRvZXMgbWVhbnMgdGhhdCBhdHRlbXB0cyB0byBsZXZlbCBhIGd1ZXN0IGZvcgptaWdy YXRpb24gc2FmZXR5IG1pZ2h0IG5vdCBiZSBlZmZlY3RpdmUgaWYgdGhlIGd1ZXN0IGlnbm9yZXMg Q1BVSUQuCgpDaGVjayB0aGUgQ1BVSUQgcG9saWN5IGluIHZhbGlkYXRlX3hzdGF0ZSgpIChmb3Ig aW5jb21pbmcgbWlncmF0aW9uKSBhbmQgaW4KaGFuZGxlX3hzZXRidigpIChmb3IgZ3Vlc3QgWFNF VEJWIGluc3RydWN0aW9ucykuICBUaGlzIHN1YnN1bWVzIHRoZSBQS1JVIGNoZWNrCmZvciBQViBn dWVzdHMgaW4gaGFuZGxlX3hzZXRidigpIChhbmQgYWxzbyBkZW1vbnN0cmF0ZXMgdGhhdCBJIHNo b3VsZCBoYXZlCnNwb3R0ZWQgdGhpcyBwcm9ibGVtIHdoaWxlIHJldmlld2luZyBjL3MgZmJmOTk3 MTI0MWYpLgoKRm9yIG1pZ3JhdGlvbiwgdGhpcyBpcyBjb3JyZWN0IGRlc3BpdGUgdGhlIGN1cnJl bnQgKG1pcylvcmRlcmluZyBvZiBkYXRhCmJlY2F1c2UgZC0+YXJjaC5jcHVpZCBpcyB0aGUgYXBw bGljYWJsZSBtYXggcG9saWN5LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5j b20+Cgp2MjoKICogTGVhdmUgdmFsaWRfeGNyMCgpIGFsb25lIGFuZCBkdXBsaWNhdGUgdGhlIGNo ZWNrcyBpbiB2YWxpZGF0ZV94c3RhdGUoKSBhbmQKICAgaGFuZGxlX3hzZXRidigpLgp2MzoKICog Tm90ZSB0aGUgbWlncmF0aW9uIHNhZmV0eSBpbiB0aGUgY29tbWl0IG1lc3NhZ2UuCgpCYWNrcG9y dGluZyBub3RlczogVGhpcyBpcyBzYWZlIGluIHRoZSByZXN0b3JlIGNhc2UsIGJ1dCBvbmx5IGJh Y2sgYXMgZmFyIGFzCnRoZSBpbnRyb2R1Y3Rpb24gb2YgY3B1aWRfcG9saWN5IGluZnJhc3RydWN0 dXJlLiAgQmVmb3JlIHRoZW4sIGEgcmVzdG9yZQpib29sZWFuIG5lZWRzIHRvIGJlIHBsdW1iZWQg ZG93biBhcyB3ZWxsLCBhbmQgdXNlZCB0byBzZWxlY3QgYmV0d2VlbiB0aGUKaGFyZHdhcmUgbWF4 aW11bSB2YWx1ZSBhbmQgY2FsbHMgdG8ge2h2bSxwdn1fY3B1aWQoKSB0byBmaW5kIHRoZQp0b29s c3RhY2stY2hvc2VuIGxldmVsLgotLS0KIHhlbi9hcmNoL3g4Ni9kb21jdGwuYyAgICAgICAgfCAg MiArLQogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYv eHN0YXRlLmMgICAgICAgIHwgMTcgKysrKysrKysrKystLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14 ODYveHN0YXRlLmggfCAgNSArKystLQogNCBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCsp LCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMgYi94 ZW4vYXJjaC94ODYvZG9tY3RsLmMKaW5kZXggYjk3MzYyOS4uMDQyM2EwYyAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2RvbWN0bC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwpAQCAtMTE3 MCw3ICsxMTcwLDcgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKICAgICAgICAgICAgIGlmICggX3hj cjBfYWNjdW0gKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGlmICggZXZjLT5zaXpl ID49IFBWX1hTQVZFX0hEUl9TSVpFICsgWFNUQVRFX0FSRUFfTUlOX1NJWkUgKQotICAgICAgICAg ICAgICAgICAgICByZXQgPSB2YWxpZGF0ZV94c3RhdGUoX3hjcjAsIF94Y3IwX2FjY3VtLAorICAg ICAgICAgICAgICAgICAgICByZXQgPSB2YWxpZGF0ZV94c3RhdGUoZCwgX3hjcjAsIF94Y3IwX2Fj Y3VtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJl94c2F2ZV9h cmVhLT54c2F2ZV9oZHIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSBpZiAoICFf eGNyMCApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2 L2h2bS9odm0uYwppbmRleCA0ZWQyNGE0Li4xODE2ZmFhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTEyNTQsNyArMTI1 NCw3IEBAIHN0YXRpYyBpbnQgaHZtX2xvYWRfY3B1X3hzYXZlX3N0YXRlcyhzdHJ1Y3QgZG9tYWlu ICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKICAgICBjdHh0ID0gKHN0cnVjdCBodm1faHdf Y3B1X3hzYXZlICopJmgtPmRhdGFbaC0+Y3VyXTsKICAgICBoLT5jdXIgKz0gZGVzYy0+bGVuZ3Ro OwogCi0gICAgZXJyID0gdmFsaWRhdGVfeHN0YXRlKGN0eHQtPnhjcjAsIGN0eHQtPnhjcjBfYWNj dW0sCisgICAgZXJyID0gdmFsaWRhdGVfeHN0YXRlKGQsIGN0eHQtPnhjcjAsIGN0eHQtPnhjcjBf YWNjdW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB2b2lkICopJmN0eHQtPnNh dmVfYXJlYS54c2F2ZV9oZHIpOwogICAgIGlmICggZXJyICkKICAgICB7CmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYveHN0YXRlLmMgYi94ZW4vYXJjaC94ODYveHN0YXRlLmMKaW5kZXggYjRhZWE0 Yi4uMWZiYjA4NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3hzdGF0ZS5jCisrKyBiL3hlbi9h cmNoL3g4Ni94c3RhdGUuYwpAQCAtNjcwLDEyICs2NzAsMTcgQEAgc3RhdGljIGJvb2wgdmFsaWRf eGNyMCh1NjQgeGNyMCkKICAgICByZXR1cm4gISh4Y3IwICYgWDg2X1hDUjBfQk5EUkVHUykgPT0g ISh4Y3IwICYgWDg2X1hDUjBfQk5EQ1NSKTsKIH0KIAotaW50IHZhbGlkYXRlX3hzdGF0ZSh1NjQg eGNyMCwgdTY0IHhjcjBfYWNjdW0sIGNvbnN0IHN0cnVjdCB4c2F2ZV9oZHIgKmhkcikKK2ludCB2 YWxpZGF0ZV94c3RhdGUoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwgdWludDY0X3QgeGNyMCwgdWlu dDY0X3QgeGNyMF9hY2N1bSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhzYXZl X2hkciAqaGRyKQogeworICAgIGNvbnN0IHN0cnVjdCBjcHVpZF9wb2xpY3kgKmNwID0gZC0+YXJj aC5jcHVpZDsKKyAgICB1aW50NjRfdCB4Y3IwX21heCA9CisgICAgICAgICgodWludDY0X3QpY3At PnhzdGF0ZS54Y3IwX2hpZ2ggPDwgMzIpIHwgY3AtPnhzdGF0ZS54Y3IwX2xvdzsKICAgICB1bnNp Z25lZCBpbnQgaTsKIAogICAgIGlmICggKGhkci0+eHN0YXRlX2J2ICYgfnhjcjBfYWNjdW0pIHx8 CiAgICAgICAgICAoeGNyMCAmIH54Y3IwX2FjY3VtKSB8fAorICAgICAgICAgKHhjcjBfYWNjdW0g JiB+eGNyMF9tYXgpIHx8CiAgICAgICAgICAhdmFsaWRfeGNyMCh4Y3IwKSB8fAogICAgICAgICAg IXZhbGlkX3hjcjAoeGNyMF9hY2N1bSkgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKQEAgLTY5 NCwxOCArNjk5LDE4IEBAIGludCB2YWxpZGF0ZV94c3RhdGUodTY0IHhjcjAsIHU2NCB4Y3IwX2Fj Y3VtLCBjb25zdCBzdHJ1Y3QgeHNhdmVfaGRyICpoZHIpCiBpbnQgaGFuZGxlX3hzZXRidih1MzIg aW5kZXgsIHU2NCBuZXdfYnYpCiB7CiAgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50Owor ICAgIGNvbnN0IHN0cnVjdCBjcHVpZF9wb2xpY3kgKmNwID0gY3Vyci0+ZG9tYWluLT5hcmNoLmNw dWlkOworICAgIHVpbnQ2NF90IHhjcjBfbWF4ID0KKyAgICAgICAgKCh1aW50NjRfdCljcC0+eHN0 YXRlLnhjcjBfaGlnaCA8PCAzMikgfCBjcC0+eHN0YXRlLnhjcjBfbG93OwogICAgIHU2NCBtYXNr OwogCiAgICAgaWYgKCBpbmRleCAhPSBYQ1JfWEZFQVRVUkVfRU5BQkxFRF9NQVNLICkKICAgICAg ICAgcmV0dXJuIC1FT1BOT1RTVVBQOwogCi0gICAgaWYgKCAobmV3X2J2ICYgfnhmZWF0dXJlX21h c2spIHx8ICF2YWxpZF94Y3IwKG5ld19idikgKQorICAgIGlmICggKG5ld19idiAmIH54Y3IwX21h eCkgfHwKKyAgICAgICAgIChuZXdfYnYgJiB+eGZlYXR1cmVfbWFzaykgfHwgIXZhbGlkX3hjcjAo bmV3X2J2KSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCi0gICAgLyogWENSMC5QS1JVIGlz IGRpc2FibGVkIG9uIFBWIG1vZGUuICovCi0gICAgaWYgKCBpc19wdl92Y3B1KGN1cnIpICYmIChu ZXdfYnYgJiBYODZfWENSMF9QS1JVKSApCi0gICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKLQog ICAgIGlmICggIXNldF94Y3IwKG5ld19idikgKQogICAgICAgICByZXR1cm4gLUVGQVVMVDsKIApk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni94c3RhdGUuaCBiL3hlbi9pbmNsdWRlL2Fz bS14ODYveHN0YXRlLmgKaW5kZXggODZhNGExZi4uNDdmNjAyYiAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni94c3RhdGUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3hzdGF0ZS5o CkBAIC05Nyw4ICs5Nyw5IEBAIHZvaWQgeHNhdmUoc3RydWN0IHZjcHUgKnYsIHVpbnQ2NF90IG1h c2spOwogdm9pZCB4cnN0b3Ioc3RydWN0IHZjcHUgKnYsIHVpbnQ2NF90IG1hc2spOwogdm9pZCB4 c3RhdGVfc2V0X2luaXQodWludDY0X3QgbWFzayk7CiBib29sIHhzYXZlX2VuYWJsZWQoY29uc3Qg c3RydWN0IHZjcHUgKnYpOwotaW50IF9fbXVzdF9jaGVjayB2YWxpZGF0ZV94c3RhdGUodTY0IHhj cjAsIHU2NCB4Y3IwX2FjY3VtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IHhzYXZlX2hkciAqKTsKK2ludCBfX211c3RfY2hlY2sgdmFsaWRhdGVfeHN0YXRl KGNvbnN0IHN0cnVjdCBkb21haW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50NjRfdCB4Y3IwLCB1aW50NjRfdCB4Y3IwX2FjY3VtLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhzYXZlX2hkciAqaGRyKTsKIGludCBfX211c3Rf Y2hlY2sgaGFuZGxlX3hzZXRidih1MzIgaW5kZXgsIHU2NCBuZXdfYnYpOwogdm9pZCBleHBhbmRf eHNhdmVfc3RhdGVzKHN0cnVjdCB2Y3B1ICp2LCB2b2lkICpkZXN0LCB1bnNpZ25lZCBpbnQgc2l6 ZSk7CiB2b2lkIGNvbXByZXNzX3hzYXZlX3N0YXRlcyhzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgdm9p ZCAqc3JjLCB1bnNpZ25lZCBpbnQgc2l6ZSk7Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv bWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=