From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/3] x86/levelling: Provide architectural OSXSAVE handling to masked native CPUID Date: Tue, 23 Aug 2016 18:26:10 +0100 Message-ID: <1471973170-21158-3-git-send-email-andrew.cooper3@citrix.com> References: <1471973170-21158-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: <1471973170-21158-1-git-send-email-andrew.cooper3@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 ZSBhCmNsZWFyIGJpdCBmb3JjZXMgdGhlIGd1ZXN0cyB2aWV3IHRvIDAsIGV2ZW4gaWYgQ1I0Lk9T WFNBVkUgaXMgYWN0dWFsbHkgc2V0LgoKVGhpcyBhbGxvd3MgWGVuIHRvIHByb3ZpZGUgYW4gYXJj aGl0ZWN0dXJhbCB2aWV3IG9mIGEgZ3Vlc3Qga2VybmVscwpDUjQuT1NYU0FWRSBzZXR0aW5nIHRv IGFueSBDUFVJRCBpbnN0cnVjdGlvbiBpc3N1c2VkIGJ5IGd1ZXN0IGtlcm5lbCBvcgp1c2Vyc3Bh Y2UuCgpUaGUgbWFza2luZyB2YWx1ZSBkZWZhdWx0cyB0byAxIChpZiB0aGUgZ3Vlc3QgaGFzIFhT QVZFIGF2YWlsYWJsZSkgdG8gY2F1c2UKZmFzdC1mb3J3YXJkaW5nIHRvIG9jY3VyIGZvciB0aGUg SFZNIGFuZCBpZGxlIHZjcHVzLgoKV2hlbiBzZXR0aW5nIHRoZSBNU1JzLCBhIFBWIGd1ZXN0IGtl cm5lbCdzIGNob2ljZSBvZiBPWFNBVkUgaXMgdGFrZW4gaW50bwphY2NvdW50LCBhbmQgY2xvYmJl cmVkIGZyb20gdGhlIE1TUiBpZiBub3Qgc2V0LiAgVGhpcyBjYXVzZXMgdGhlCmZhc3QtZm9yd2Fy ZGluZyBvZiBYZW4ncyBDUjQgc3RhdGUgbm90IHRvIGhhcHBlbi4KCkFzIGEgc2lkZSBlZmZlY3Qg aG93ZXZlciwgbGV2ZWxsaW5nIG1heSBuZWVkIHVwZGF0aW5nIG9uIGFsbCBQViBDUjQgY2hhbmdl cy4KClJlcG9yZWQtYnk6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KU2lnbmVkLW9m Zi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBK YW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2NwdS9hbWQu YyAgIHwgMTkgKysrKysrKysrKysrKysrKysrLQogeGVuL2FyY2gveDg2L2NwdS9pbnRlbC5jIHwg MjQgKysrKysrKysrKysrKysrKysrKysrKystCiB4ZW4vYXJjaC94ODYvZG9tY3RsLmMgICAgfCAx MCArKysrKysrKystCiB4ZW4vYXJjaC94ODYvdHJhcHMuYyAgICAgfCAgMSArCiA0IGZpbGVzIGNo YW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2NwdS9hbWQuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMKaW5kZXggNzg0ZmE0 MC4uZDFlZjgyNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9hbWQuYworKysgYi94ZW4v YXJjaC94ODYvY3B1L2FtZC5jCkBAIC0yMTEsNiArMjExLDI0IEBAIHN0YXRpYyB2b2lkIGFtZF9j dHh0X3N3aXRjaF9sZXZlbGxpbmcoY29uc3Qgc3RydWN0IHZjcHUgKm5leHQpCiAJCShuZXh0ZCAm JiBpc19wdl9kb21haW4obmV4dGQpICYmIG5leHRkLT5hcmNoLnB2X2RvbWFpbi5jcHVpZG1hc2tz KQogCQk/IG5leHRkLT5hcmNoLnB2X2RvbWFpbi5jcHVpZG1hc2tzIDogJmNwdWlkbWFza19kZWZh dWx0czsKIAorCWlmICgobGV2ZWxsaW5nX2NhcHMgJiBMQ0FQXzFjZCkgPT0gTENBUF8xY2QpIHsK KwkJdWludDY0X3QgdmFsID0gbWFza3MtPl8xY2Q7CisKKwkJLyoKKwkJICogT1NYU0FWRSBkZWZh dWx0cyB0byAxLCB3aGljaCBjYXVzZXMgZmFzdC1mb3J3YXJkaW5nIG9mCisJCSAqIFhlbidzIHJl YWwgc2V0dGluZy4JQ2xvYmJlciBpdCBpZiBkaXNhYmxlZCBieSB0aGUgZ3Vlc3QKKwkJICoga2Vy bmVsLgorCQkgKi8KKwkJaWYgKG5leHQgJiYgaXNfcHZfdmNwdShuZXh0KSAmJgorCQkgICAgIShu ZXh0LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1s0XSAmIFg4Nl9DUjRfT1NYU0FWRSkpCisJCQl2YWwg Jj0gfigodWludDY0X3QpY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX09TWFNBVkUpIDw8IDMyKTsK KworCQlpZiAodW5saWtlbHkodGhlc2VfbWFza3MtPl8xY2QgIT0gdmFsKSkgeworCQkJd3Jtc3Jf YW1kKE1TUl9LOF9GRUFUVVJFX01BU0ssIHZhbCk7CisJCQl0aGVzZV9tYXNrcy0+XzFjZCA9IHZh bDsKKwkJfQorCX0KKwogI2RlZmluZSBMQVpZKGNhcCwgbXNyLCBmaWVsZCkJCQkJCQlcCiAJKHsJ CQkJCQkJCVwKIAkJaWYgKHVubGlrZWx5KHRoZXNlX21hc2tzLT5maWVsZCAhPSBtYXNrcy0+Zmll bGQpICYmCVwKQEAgLTIyMSw3ICsyMzksNiBAQCBzdGF0aWMgdm9pZCBhbWRfY3R4dF9zd2l0Y2hf bGV2ZWxsaW5nKGNvbnN0IHN0cnVjdCB2Y3B1ICpuZXh0KQogCQl9CQkJCQkJCVwKIAl9KQogCi0J TEFaWShMQ0FQXzFjZCwgIE1TUl9LOF9GRUFUVVJFX01BU0ssICAgICAgIF8xY2QpOwogCUxBWlko TENBUF9lMWNkLCBNU1JfSzhfRVhUX0ZFQVRVUkVfTUFTSywgICBlMWNkKTsKIAlMQVpZKExDQVBf N2FiMCwgTVNSX0FNRF9MN1MwX0ZFQVRVUkVfTUFTSywgXzdhYjApOwogCUxBWlkoTENBUF82Yywg ICBNU1JfQU1EX1RIUk1fRkVBVFVSRV9NQVNLLCBfNmMpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2NwdS9pbnRlbC5jIGIveGVuL2FyY2gveDg2L2NwdS9pbnRlbC5jCmluZGV4IDM0OTE2Mzgu LmJmNGYxNWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvaW50ZWwuYworKysgYi94ZW4v YXJjaC94ODYvY3B1L2ludGVsLmMKQEAgLTE4Miw2ICsxODIsMjQgQEAgc3RhdGljIHZvaWQgaW50 ZWxfY3R4dF9zd2l0Y2hfbGV2ZWxsaW5nKGNvbnN0IHN0cnVjdCB2Y3B1ICpuZXh0KQogCW1hc2tz ID0gKG5leHRkICYmIGlzX3B2X2RvbWFpbihuZXh0ZCkgJiYgbmV4dGQtPmFyY2gucHZfZG9tYWlu LmNwdWlkbWFza3MpCiAJCT8gbmV4dGQtPmFyY2gucHZfZG9tYWluLmNwdWlkbWFza3MgOiAmY3B1 aWRtYXNrX2RlZmF1bHRzOwogCisgICAgICAgIGlmIChtc3JfYmFzaWMpIHsKKwkJdWludDY0X3Qg dmFsID0gbWFza3MtPl8xY2Q7CisKKwkJLyoKKwkJICogT1NYU0FWRSBkZWZhdWx0cyB0byAxLCB3 aGljaCBjYXVzZXMgZmFzdC1mb3J3YXJkaW5nIG9mCisJCSAqIFhlbidzIHJlYWwgc2V0dGluZy4g IENsb2JiZXIgaXQgaWYgZGlzYWJsZWQgYnkgdGhlIGd1ZXN0CisJCSAqIGtlcm5lbC4KKwkJICov CisJCWlmIChuZXh0ICYmIGlzX3B2X3ZjcHUobmV4dCkgJiYKKwkJICAgICEobmV4dC0+YXJjaC5w dl92Y3B1LmN0cmxyZWdbNF0gJiBYODZfQ1I0X09TWFNBVkUpKQorCQkJdmFsICY9IH5jcHVmZWF0 X21hc2soWDg2X0ZFQVRVUkVfT1NYU0FWRSk7CisKKwkJaWYgKHVubGlrZWx5KHRoZXNlX21hc2tz LT5fMWNkICE9IHZhbCkpIHsKKwkJCXdybXNybChtc3JfYmFzaWMsIHZhbCk7CisJCQl0aGVzZV9t YXNrcy0+XzFjZCA9IHZhbDsKKwkJfQorICAgICAgICB9CisKICNkZWZpbmUgTEFaWShtc3IsIGZp ZWxkKQkJCQkJCVwKIAkoewkJCQkJCQkJXAogCQlpZiAodW5saWtlbHkodGhlc2VfbWFza3MtPmZp ZWxkICE9IG1hc2tzLT5maWVsZCkgJiYJXApAQCAtMTkyLDcgKzIxMCw2IEBAIHN0YXRpYyB2b2lk IGludGVsX2N0eHRfc3dpdGNoX2xldmVsbGluZyhjb25zdCBzdHJ1Y3QgdmNwdSAqbmV4dCkKIAkJ fQkJCQkJCQlcCiAJfSkKIAotCUxBWlkobXNyX2Jhc2ljLCBfMWNkKTsKIAlMQVpZKG1zcl9leHQs ICAgZTFjZCk7CiAJTEFaWShtc3JfeHNhdmUsIERhMSk7CiAKQEAgLTIxOCw2ICsyMzUsMTEgQEAg c3RhdGljIHZvaWQgX19pbml0IG5vaW5saW5lIGludGVsX2luaXRfbGV2ZWxsaW5nKHZvaWQpCiAJ CWVjeCAmPSBvcHRfY3B1aWRfbWFza19lY3g7CiAJCWVkeCAmPSBvcHRfY3B1aWRfbWFza19lZHg7 CiAKKwkJLyogRmFzdC1mb3J3YXJkIGJpdHMgLSBNdXN0IGJlIHNldC4gKi8KKwkJaWYgKGVjeCAm IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9YU0FWRSkpCisJCQllY3ggfD0gY3B1ZmVhdF9tYXNr KFg4Nl9GRUFUVVJFX09TWFNBVkUpOworCQllZHggfD0gY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJF X0FQSUMpOworCiAJCWNwdWlkbWFza19kZWZhdWx0cy5fMWNkICY9ICgodTY0KWVkeCA8PCAzMikg fCBlY3g7CiAJfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMgYi94ZW4vYXJj aC94ODYvZG9tY3RsLmMKaW5kZXggYmVkNzBhYS4uYTkwNGZkNiAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2RvbWN0bC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwpAQCAtMTEwLDEwICsx MTAsMTggQEAgc3RhdGljIHZvaWQgdXBkYXRlX2RvbWFpbl9jcHVpZF9pbmZvKHN0cnVjdCBkb21h aW4gKmQsCiAgICAgICAgICAgICBjYXNlIFg4Nl9WRU5ET1JfSU5URUw6CiAgICAgICAgICAgICAg ICAgLyoKICAgICAgICAgICAgICAgICAgKiBJbnRlbCBtYXNraW5nIE1TUnMgYXJlIGRvY3VtZW50 ZWQgYXMgQU5EIG1hc2tzLgotICAgICAgICAgICAgICAgICAqIEV4cGVyaW1lbnRhbGx5LCB0aGV5 IGFyZSBhcHBsaWVkIGJlZm9yZSBPU1hTQVZFIGFuZCBBUElDCisgICAgICAgICAgICAgICAgICog RXhwZXJpbWVudGFsbHksIHRoZXkgYXJlIGFwcGxpZWQgYWZ0ZXIgT1NYU0FWRSBhbmQgQVBJQwog ICAgICAgICAgICAgICAgICAqIGFyZSBmYXN0LWZvcndhcmRlZCBmcm9tIHJlYWwgaGFyZHdhcmUg c3RhdGUuCiAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgbWFzayAmPSAoKHVp bnQ2NF90KWVkeCA8PCAzMikgfCBlY3g7CisKKyAgICAgICAgICAgICAgICBpZiAoIGVjeCAmIGNw dWZlYXRfbWFzayhYODZfRkVBVFVSRV9YU0FWRSkgKQorICAgICAgICAgICAgICAgICAgICBlY3gg PSBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfT1NYU0FWRSk7CisgICAgICAgICAgICAgICAgZWxz ZQorICAgICAgICAgICAgICAgICAgICBlY3ggPSAwOworICAgICAgICAgICAgICAgIGVkeCA9IGNw dWZlYXRfbWFzayhYODZfRkVBVFVSRV9BUElDKTsKKworICAgICAgICAgICAgICAgIG1hc2sgfD0g KCh1aW50NjRfdCllZHggPDwgMzIpIHwgZWN4OwogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAg ICAgICAgICAgICBjYXNlIFg4Nl9WRU5ET1JfQU1EOgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L3RyYXBzLmMgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwppbmRleCBjOTVmYWRiLi5iNmU1NmI4IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdHJhcHMuYworKysgYi94ZW4vYXJjaC94ODYvdHJhcHMu YwpAQCAtMjczOSw2ICsyNzM5LDcgQEAgc3RhdGljIGludCBlbXVsYXRlX3ByaXZpbGVnZWRfb3Ao c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgIGNhc2UgNDogLyogV3JpdGUgQ1I0 ICovCiAgICAgICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1s0XSA9IHB2X2d1ZXN0X2Ny NF9maXh1cCh2LCAqcmVnKTsKICAgICAgICAgICAgIHdyaXRlX2NyNChwdl9ndWVzdF9jcjRfdG9f cmVhbF9jcjQodikpOworICAgICAgICAgICAgY3R4dF9zd2l0Y2hfbGV2ZWxsaW5nKHYpOwogICAg ICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgZGVmYXVsdDoKLS0gCjIuMS40CgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==