From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 3/3] x86/levelling: Provide architectural OSXSAVE handling to masked native CPUID Date: Thu, 1 Sep 2016 11:25:47 +0100 Message-ID: <1472725547-28495-1-git-send-email-andrew.cooper3@citrix.com> References: <34efc75b-58e2-d411-cbb4-a340230bee43@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <34efc75b-58e2-d411-cbb4-a340230bee43@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 , Jan Beulich List-Id: xen-devel@lists.xenproject.org Q29udHJhcnkgdG8gYy9zIGIyNTA3ZmU3ICJ4ODYvZG9tY3RsOiBVcGRhdGUgUFYgZG9tYWluIGNw dW1hc2tzIHdoZW4gc2V0dGluZwpjcHVpZCBwb2xpY3kiLCBJbnRlbCBDUFVJRCBtYXNrcyBhcmUg YXBwbGllZCBhZnRlciBmYXN0IGZvcndhcmRpbmcgaGFyZHdhcmUKc3RhdGUsIHJhdGhlciB0aGFu IGJlZm9yZS4gIChBbGwgYmVoYXZpb3VyIGluIHRoaXMgcmVnYXJkIGFwcGVhcnMgY29tcGxldGVs eQp1bmRvY3VtZW50ZWQgYnkgYm90aCBJbnRlbCBhbmQgQU1EKS4KClRoZXJlZm9yZSwgYSBzZXQg Yml0IGluIHRoZSBNU1IgY2F1c2VzIGhhcmR3YXJlIHRvIGJlIGZhc3QtZm9yd2FyZGVkLCB3aGls ZSBhCmNsZWFyIGJpdCBmb3JjZXMgdGhlIGd1ZXN0cyB2aWV3IHRvIDAsIGV2ZW4gaWYgWGVuJ3Mg Q1I0Lk9TWFNBVkUgaXMgYWN0dWFsbHkKc2V0LgoKVGhpcyBhbGxvd3MgWGVuIHRvIHByb3ZpZGUg YW4gYXJjaGl0ZWN0dXJhbCB2aWV3IG9mIGEgZ3Vlc3Qga2VybmVscwpDUjQuT1NYU0FWRSBzZXR0 aW5nIHRvIGFueSBuYXRpdmUgQ1BVSUQgaW5zdHJ1Y3Rpb24gaXNzdXNlZCBieSBndWVzdCBrZXJu ZWwgb3IKdXNlcnNwYWNlLCBldmVuIHdoZW4gbWFza2luZyBpcyB1c2VkLgoKVGhlIG1hc2tpbmcg dmFsdWUgZGVmYXVsdHMgdG8gMSAoaWYgdGhlIGd1ZXN0IGhhcyBYU0FWRSBhdmFpbGFibGUpIHRv IGNhdXNlCmZhc3QtZm9yd2FyZGluZyB0byBvY2N1ciBmb3IgdGhlIEhWTSBhbmQgaWRsZSB2Y3B1 cy4KCldoZW4gc2V0dGluZyB0aGUgTVNScywgYSBQViBndWVzdCBrZXJuZWwncyBjaG9pY2Ugb2Yg T1hTQVZFIGlzIHRha2VuIGludG8KYWNjb3VudCwgYW5kIGNsb2JiZXJlZCBmcm9tIHRoZSBNU1Ig aWYgbm90IHNldC4gIFRoaXMgY2F1c2VzIHRoZQpmYXN0LWZvcndhcmRpbmcgb2YgWGVuJ3MgQ1I0 IHN0YXRlIG5vdCB0byBoYXBwZW4uCgpBcyBhIHNpZGUgZWZmZWN0IGhvd2V2ZXIsIGxldmVsbGlu ZyBwb3RlbnRpYWxseSBuZWVkIHVwZGF0aW5nIG9uIGFsbCBQViBDUjQKY2hhbmdlcy4KClJlcG9y dGVkLWJ5OiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxp Y2ggPEpCZXVsaWNoQHN1c2UuY29tPgoKdjI6CiAqIFNwZWxsaW5nL2dyYW1tYXIgY29ycmVjdGlv bnMKICogQWN0dWFsbHkgbGVhdmUgZmFzdCBmb3dhcmRpbmcgZW5hYmxlZCBmb3IgaWRsZSB2Y3B1 cwotLS0KIHhlbi9hcmNoL3g4Ni9jcHUvYW1kLmMgICB8IDE5ICsrKysrKysrKysrKysrKysrKy0K IHhlbi9hcmNoL3g4Ni9jcHUvaW50ZWwuYyB8IDI0ICsrKysrKysrKysrKysrKysrKysrKysrLQog eGVuL2FyY2gveDg2L2RvbWN0bC5jICAgIHwgMTAgKysrKysrKysrLQogeGVuL2FyY2gveDg2L3Ry YXBzLmMgICAgIHwgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMgYi94ZW4vYXJj aC94ODYvY3B1L2FtZC5jCmluZGV4IDc4NGZhNDAuLjIzMTc1NDYgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9jcHUvYW1kLmMKKysrIGIveGVuL2FyY2gveDg2L2NwdS9hbWQuYwpAQCAtMjExLDYg KzIxMSwyNCBAQCBzdGF0aWMgdm9pZCBhbWRfY3R4dF9zd2l0Y2hfbGV2ZWxsaW5nKGNvbnN0IHN0 cnVjdCB2Y3B1ICpuZXh0KQogCQkobmV4dGQgJiYgaXNfcHZfZG9tYWluKG5leHRkKSAmJiBuZXh0 ZC0+YXJjaC5wdl9kb21haW4uY3B1aWRtYXNrcykKIAkJPyBuZXh0ZC0+YXJjaC5wdl9kb21haW4u Y3B1aWRtYXNrcyA6ICZjcHVpZG1hc2tfZGVmYXVsdHM7CiAKKwlpZiAoKGxldmVsbGluZ19jYXBz ICYgTENBUF8xY2QpID09IExDQVBfMWNkKSB7CisJCXVpbnQ2NF90IHZhbCA9IG1hc2tzLT5fMWNk OworCisJCS8qCisJCSAqIE9TWFNBVkUgZGVmYXVsdHMgdG8gMSwgd2hpY2ggY2F1c2VzIGZhc3Qt Zm9yd2FyZGluZyBvZgorCQkgKiBYZW4ncyByZWFsIHNldHRpbmcuICBDbG9iYmVyIGl0IGlmIGRp c2FibGVkIGJ5IHRoZSBndWVzdAorCQkgKiBrZXJuZWwuCisJCSAqLworCQlpZiAobmV4dCAmJiBp c19wdl92Y3B1KG5leHQpICYmICFpc19pZGxlX3ZjcHUobmV4dCkgJiYKKwkJICAgICEobmV4dC0+ YXJjaC5wdl92Y3B1LmN0cmxyZWdbNF0gJiBYODZfQ1I0X09TWFNBVkUpKQorCQkJdmFsICY9IH4o KHVpbnQ2NF90KWNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9PU1hTQVZFKSA8PCAzMik7CisKKwkJ aWYgKHVubGlrZWx5KHRoZXNlX21hc2tzLT5fMWNkICE9IHZhbCkpIHsKKwkJCXdybXNyX2FtZChN U1JfSzhfRkVBVFVSRV9NQVNLLCB2YWwpOworCQkJdGhlc2VfbWFza3MtPl8xY2QgPSB2YWw7CisJ CX0KKwl9CisKICNkZWZpbmUgTEFaWShjYXAsIG1zciwgZmllbGQpCQkJCQkJXAogCSh7CQkJCQkJ CQlcCiAJCWlmICh1bmxpa2VseSh0aGVzZV9tYXNrcy0+ZmllbGQgIT0gbWFza3MtPmZpZWxkKSAm JglcCkBAIC0yMjEsNyArMjM5LDYgQEAgc3RhdGljIHZvaWQgYW1kX2N0eHRfc3dpdGNoX2xldmVs bGluZyhjb25zdCBzdHJ1Y3QgdmNwdSAqbmV4dCkKIAkJfQkJCQkJCQlcCiAJfSkKIAotCUxBWlko TENBUF8xY2QsICBNU1JfSzhfRkVBVFVSRV9NQVNLLCAgICAgICBfMWNkKTsKIAlMQVpZKExDQVBf ZTFjZCwgTVNSX0s4X0VYVF9GRUFUVVJFX01BU0ssICAgZTFjZCk7CiAJTEFaWShMQ0FQXzdhYjAs IE1TUl9BTURfTDdTMF9GRUFUVVJFX01BU0ssIF83YWIwKTsKIAlMQVpZKExDQVBfNmMsICAgTVNS X0FNRF9USFJNX0ZFQVRVUkVfTUFTSywgXzZjKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9j cHUvaW50ZWwuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvaW50ZWwuYwppbmRleCAzNDkxNjM4Li5hOTM1 NWNiZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9pbnRlbC5jCisrKyBiL3hlbi9hcmNo L3g4Ni9jcHUvaW50ZWwuYwpAQCAtMTgyLDYgKzE4MiwyNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9j dHh0X3N3aXRjaF9sZXZlbGxpbmcoY29uc3Qgc3RydWN0IHZjcHUgKm5leHQpCiAJbWFza3MgPSAo bmV4dGQgJiYgaXNfcHZfZG9tYWluKG5leHRkKSAmJiBuZXh0ZC0+YXJjaC5wdl9kb21haW4uY3B1 aWRtYXNrcykKIAkJPyBuZXh0ZC0+YXJjaC5wdl9kb21haW4uY3B1aWRtYXNrcyA6ICZjcHVpZG1h c2tfZGVmYXVsdHM7CiAKKyAgICAgICAgaWYgKG1zcl9iYXNpYykgeworCQl1aW50NjRfdCB2YWwg PSBtYXNrcy0+XzFjZDsKKworCQkvKgorCQkgKiBPU1hTQVZFIGRlZmF1bHRzIHRvIDEsIHdoaWNo IGNhdXNlcyBmYXN0LWZvcndhcmRpbmcgb2YKKwkJICogWGVuJ3MgcmVhbCBzZXR0aW5nLiAgQ2xv YmJlciBpdCBpZiBkaXNhYmxlZCBieSB0aGUgZ3Vlc3QKKwkJICoga2VybmVsLgorCQkgKi8KKwkJ aWYgKG5leHQgJiYgaXNfcHZfdmNwdShuZXh0KSAmJiAhaXNfaWRsZV92Y3B1KG5leHQpICYmCisJ CSAgICAhKG5leHQtPmFyY2gucHZfdmNwdS5jdHJscmVnWzRdICYgWDg2X0NSNF9PU1hTQVZFKSkK KwkJCXZhbCAmPSB+Y3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX09TWFNBVkUpOworCisJCWlmICh1 bmxpa2VseSh0aGVzZV9tYXNrcy0+XzFjZCAhPSB2YWwpKSB7CisJCQl3cm1zcmwobXNyX2Jhc2lj LCB2YWwpOworCQkJdGhlc2VfbWFza3MtPl8xY2QgPSB2YWw7CisJCX0KKyAgICAgICAgfQorCiAj ZGVmaW5lIExBWlkobXNyLCBmaWVsZCkJCQkJCQlcCiAJKHsJCQkJCQkJCVwKIAkJaWYgKHVubGlr ZWx5KHRoZXNlX21hc2tzLT5maWVsZCAhPSBtYXNrcy0+ZmllbGQpICYmCVwKQEAgLTE5Miw3ICsy MTAsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jdHh0X3N3aXRjaF9sZXZlbGxpbmcoY29uc3Qgc3Ry dWN0IHZjcHUgKm5leHQpCiAJCX0JCQkJCQkJXAogCX0pCiAKLQlMQVpZKG1zcl9iYXNpYywgXzFj ZCk7CiAJTEFaWShtc3JfZXh0LCAgIGUxY2QpOwogCUxBWlkobXNyX3hzYXZlLCBEYTEpOwogCkBA IC0yMTgsNiArMjM1LDExIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBub2lubGluZSBpbnRlbF9pbml0 X2xldmVsbGluZyh2b2lkKQogCQllY3ggJj0gb3B0X2NwdWlkX21hc2tfZWN4OwogCQllZHggJj0g b3B0X2NwdWlkX21hc2tfZWR4OwogCisJCS8qIEZhc3QtZm9yd2FyZCBiaXRzIC0gTXVzdCBiZSBz ZXQuICovCisJCWlmIChlY3ggJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfWFNBVkUpKQorCQkJ ZWN4IHw9IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9PU1hTQVZFKTsKKwkJZWR4IHw9IGNwdWZl YXRfbWFzayhYODZfRkVBVFVSRV9BUElDKTsKKwogCQljcHVpZG1hc2tfZGVmYXVsdHMuXzFjZCAm PSAoKHU2NCllZHggPDwgMzIpIHwgZWN4OwogCX0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2RvbWN0bC5jIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCmluZGV4IGJlZDcwYWEuLmE5MDRmZDYg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYworKysgYi94ZW4vYXJjaC94ODYvZG9t Y3RsLmMKQEAgLTExMCwxMCArMTEwLDE4IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9kb21haW5fY3B1 aWRfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgY2FzZSBYODZfVkVORE9SX0lO VEVMOgogICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgICogSW50ZWwgbWFza2lu ZyBNU1JzIGFyZSBkb2N1bWVudGVkIGFzIEFORCBtYXNrcy4KLSAgICAgICAgICAgICAgICAgKiBF eHBlcmltZW50YWxseSwgdGhleSBhcmUgYXBwbGllZCBiZWZvcmUgT1NYU0FWRSBhbmQgQVBJQwor ICAgICAgICAgICAgICAgICAqIEV4cGVyaW1lbnRhbGx5LCB0aGV5IGFyZSBhcHBsaWVkIGFmdGVy IE9TWFNBVkUgYW5kIEFQSUMKICAgICAgICAgICAgICAgICAgKiBhcmUgZmFzdC1mb3J3YXJkZWQg ZnJvbSByZWFsIGhhcmR3YXJlIHN0YXRlLgogICAgICAgICAgICAgICAgICAqLwogICAgICAgICAg ICAgICAgIG1hc2sgJj0gKCh1aW50NjRfdCllZHggPDwgMzIpIHwgZWN4OworCisgICAgICAgICAg ICAgICAgaWYgKCBlY3ggJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfWFNBVkUpICkKKyAgICAg ICAgICAgICAgICAgICAgZWN4ID0gY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX09TWFNBVkUpOwor ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZWN4ID0gMDsKKyAgICAg ICAgICAgICAgICBlZHggPSBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfQVBJQyk7CisKKyAgICAg ICAgICAgICAgICBtYXNrIHw9ICgodWludDY0X3QpZWR4IDw8IDMyKSB8IGVjeDsKICAgICAgICAg ICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgY2FzZSBYODZfVkVORE9SX0FNRDoKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jIGIveGVuL2FyY2gveDg2L3RyYXBzLmMKaW5kZXgg Y2U5MjRkOC4uYmFiMzc0ZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3RyYXBzLmMKKysrIGIv eGVuL2FyY2gveDg2L3RyYXBzLmMKQEAgLTI3MzcsNiArMjczNyw3IEBAIHN0YXRpYyBpbnQgZW11 bGF0ZV9wcml2aWxlZ2VkX29wKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICBj YXNlIDQ6IC8qIFdyaXRlIENSNCAqLwogICAgICAgICAgICAgdi0+YXJjaC5wdl92Y3B1LmN0cmxy ZWdbNF0gPSBwdl9ndWVzdF9jcjRfZml4dXAodiwgKnJlZyk7CiAgICAgICAgICAgICB3cml0ZV9j cjQocHZfZ3Vlc3RfY3I0X3RvX3JlYWxfY3I0KHYpKTsKKyAgICAgICAgICAgIGN0eHRfc3dpdGNo X2xldmVsbGluZyh2KTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGRlZmF1bHQ6Ci0t IAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=