From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shuai Ruan Subject: [V2] x86/xsaves: calculate the xstate_comp_offsets base on xcomp_bv Date: Wed, 2 Mar 2016 17:46:22 +0800 Message-ID: <1456911982-24357-1-git-send-email-shuai.ruan@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: andrew.cooper3@citrix.com, keir@xen.org, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org UHJldmlvdXMgcGF0Y2ggdXNpbmcgYWxsIGF2YWlsYWJsZSBmZWF0dXJlcyBjYWxjdWxhdGUgeHN0 YXRlX2NvbXBfb2Zmc2V0cy4KVGhpcyBpcyB3cm9uZy5UaGlzIHBhdGNoIGZpeCB0aGlzIGJ1ZyBi eSBjYWxjdWxhdGluZyB0aGUgeHN0YXRlX2NvbXBfb2Zmc2V0CmJhc2VkIG9uIHhjb21wX2J2IG9m IGN1cnJlbnQgZ3Vlc3QuCkFsc28sIHRoZSB4c3RhdGVfY29tcF9vZmZzZXQgc2hvdWxkIHRha2Ug YWxpZ25tZW50IGludG8gY29uc2lkZXJhdGlvbi4KClYyOiBBZGRyZXNzIGNvbW1lbnRzIGZyb20g SmFuOgogMS4gY29kZSBzdHlsZSBmaXgKIDIuIHNldHVwX3hzdGF0ZV9jb21wIHRha2UgeGNvbXBf YnYgYXMgcGFyYW0uCgpTaWduZWQtb2ZmLWJ5OiBTaHVhaSBSdWFuIDxzaHVhaS5ydWFuQGxpbnV4 LmludGVsLmNvbT4KUmVwb3J0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4K LS0tCiB4ZW4vYXJjaC94ODYveHN0YXRlLmMgICAgICAgIHwgMzQgKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni94c3RhdGUuaCB8ICAyICsrCiAy IGZpbGVzIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni94c3RhdGUuYyBiL3hlbi9hcmNoL3g4Ni94c3RhdGUuYwppbmRl eCA4MzE2YmQ5Li5kZDZkMzdhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveHN0YXRlLmMKKysr IGIveGVuL2FyY2gveDg2L3hzdGF0ZS5jCkBAIC0yNiw2ICsyNiw3IEBAIHU2NCBfX3JlYWRfbW9z dGx5IHhmZWF0dXJlX21hc2s7CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgKl9fcmVhZF9tb3N0bHkg eHN0YXRlX29mZnNldHM7CiB1bnNpZ25lZCBpbnQgKl9fcmVhZF9tb3N0bHkgeHN0YXRlX3NpemVz Oworc3RhdGljIHVuc2lnbmVkIGludCAqX19yZWFkX21vc3RseSB4c3RhdGVfYWxpZ247CiBzdGF0 aWMgdW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgeHN0YXRlX2ZlYXR1cmVzOwogc3RhdGljIHVu c2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHhzdGF0ZV9jb21wX29mZnNldHNbc2l6ZW9mKHhmZWF0 dXJlX21hc2spKjhdOwogCkBAIC05NCw3ICs5NSw3IEBAIHN0YXRpYyBib29sX3QgeHNhdmVfYXJl YV9jb21wcmVzc2VkKGNvbnN0IHN0cnVjdCB4c2F2ZV9zdHJ1Y3QgKnhzYXZlX2FyZWEpCiAKIHN0 YXRpYyBpbnQgc2V0dXBfeHN0YXRlX2ZlYXR1cmVzKGJvb2xfdCBic3ApCiB7Ci0gICAgdW5zaWdu ZWQgaW50IGxlYWYsIHRtcCwgZWF4LCBlYng7CisgICAgdW5zaWduZWQgaW50IGxlYWYsIGVheCwg ZWJ4LCBlY3gsIGVkeDsKIAogICAgIGlmICggYnNwICkKICAgICB7CkBAIC0xMDYsMjYgKzEwNywz NCBAQCBzdGF0aWMgaW50IHNldHVwX3hzdGF0ZV9mZWF0dXJlcyhib29sX3QgYnNwKQogICAgICAg ICB4c3RhdGVfc2l6ZXMgPSB4emFsbG9jX2FycmF5KHVuc2lnbmVkIGludCwgeHN0YXRlX2ZlYXR1 cmVzKTsKICAgICAgICAgaWYgKCAheHN0YXRlX3NpemVzICkKICAgICAgICAgICAgIHJldHVybiAt RU5PTUVNOworCisgICAgICAgIHhzdGF0ZV9hbGlnbiA9IHh6YWxsb2NfYXJyYXkodW5zaWduZWQg aW50LCB4c3RhdGVfZmVhdHVyZXMpOworICAgICAgICBpZiAoICF4c3RhdGVfYWxpZ24gKQorICAg ICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAgICAgfQogCiAgICAgZm9yICggbGVhZiA9IDI7IGxl YWYgPCB4c3RhdGVfZmVhdHVyZXM7IGxlYWYrKyApCiAgICAgewogICAgICAgICBpZiAoIGJzcCAp CisgICAgICAgIHsKICAgICAgICAgICAgIGNwdWlkX2NvdW50KFhTVEFURV9DUFVJRCwgbGVhZiwg JnhzdGF0ZV9zaXplc1tsZWFmXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICZ4c3RhdGVfb2Zm c2V0c1tsZWFmXSwgJnRtcCwgJnRtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAmeHN0YXRl X29mZnNldHNbbGVhZl0sICZlY3gsICZlZHgpOworICAgICAgICAgICAgeHN0YXRlX2FsaWduW2xl YWZdID0gZWN4ICYgWFNUQVRFX0FMSUdONjQ7CisgICAgICAgIH0KICAgICAgICAgZWxzZQogICAg ICAgICB7CiAgICAgICAgICAgICBjcHVpZF9jb3VudChYU1RBVEVfQ1BVSUQsIGxlYWYsICZlYXgs Ci0gICAgICAgICAgICAgICAgICAgICAgICAmZWJ4LCAmdG1wLCAmdG1wKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICZlYngsICZlY3gsICZlZHgpOwogICAgICAgICAgICAgQlVHX09OKGVheCAh PSB4c3RhdGVfc2l6ZXNbbGVhZl0pOwogICAgICAgICAgICAgQlVHX09OKGVieCAhPSB4c3RhdGVf b2Zmc2V0c1tsZWFmXSk7CisgICAgICAgICAgICBCVUdfT04oKGVjeCAmIFhTVEFURV9BTElHTjY0 KSAhPSB4c3RhdGVfYWxpZ25bbGVhZl0pOwogICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF94c3RhdGVfY29tcCh2b2lkKQorc3Rh dGljIHZvaWQgc2V0dXBfeHN0YXRlX2NvbXAoY29uc3QgdTY0IHhjb21wX2J2KQogewogICAgIHVu c2lnbmVkIGludCBpOwogCkBAIC0xMzQsMTYgKzE0MywxOSBAQCBzdGF0aWMgdm9pZCBfX2luaXQg c2V0dXBfeHN0YXRlX2NvbXAodm9pZCkKICAgICAgKiBpbiB0aGUgZml4ZWQgb2Zmc2V0cyBpbiB0 aGUgeHNhdmUgYXJlYSBpbiBlaXRoZXIgY29tcGFjdGVkIGZvcm0KICAgICAgKiBvciBzdGFuZGFy ZCBmb3JtLgogICAgICAqLwotICAgIHhzdGF0ZV9jb21wX29mZnNldHNbMF0gPSAwOworICAgIG1l bXNldCh4c3RhdGVfY29tcF9vZmZzZXRzLCAwLCBzaXplb2YoeHN0YXRlX2NvbXBfb2Zmc2V0cykp OworCiAgICAgeHN0YXRlX2NvbXBfb2Zmc2V0c1sxXSA9IFhTQVZFX1NTRV9PRkZTRVQ7CiAKICAg ICB4c3RhdGVfY29tcF9vZmZzZXRzWzJdID0gRlhTQVZFX1NJWkUgKyBYU0FWRV9IRFJfU0laRTsK IAogICAgIGZvciAoIGkgPSAzOyBpIDwgeHN0YXRlX2ZlYXR1cmVzOyBpKysgKQogICAgIHsKLSAg ICAgICAgeHN0YXRlX2NvbXBfb2Zmc2V0c1tpXSA9IHhzdGF0ZV9jb21wX29mZnNldHNbaSAtIDFd ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKDF1bCA8PCBpKSAmIHhmZWF0 dXJlX21hc2spCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB4c3RhdGVfc2l6 ZXNbaSAtIDFdIDogMCk7CisgICAgICAgIHhzdGF0ZV9jb21wX29mZnNldHNbaV0gPSAoeHN0YXRl X2FsaWduW2ldID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPVU5EVVAoeHN0 YXRlX2NvbXBfb2Zmc2V0c1tpLTFdLCA2NCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeHN0YXRlX2NvbXBfb2Zmc2V0c1tpIC0gMV0pICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgoKDF1bCA8PCBpKSAmIHhjb21wX2J2KQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPyB4c3RhdGVfc2l6ZXNbaSAtIDFdIDogMCk7CiAgICAgICAgIEFTU0VS VCh4c3RhdGVfY29tcF9vZmZzZXRzW2ldICsgeHN0YXRlX3NpemVzW2ldIDw9IHhzYXZlX2NudHh0 X3NpemUpOwogICAgIH0KIH0KQEAgLTE3Miw2ICsxODQsOCBAQCB2b2lkIGV4cGFuZF94c2F2ZV9z dGF0ZXMoc3RydWN0IHZjcHUgKnYsIHZvaWQgKmRlc3QsIHVuc2lnbmVkIGludCBzaXplKQogICAg IH0KIAogICAgIEFTU0VSVCh4c2F2ZV9hcmVhX2NvbXByZXNzZWQoeHNhdmUpKTsKKyAgICBzZXR1 cF94c3RhdGVfY29tcCh4c2F2ZS0+eHNhdmVfaGRyLnhjb21wX2J2KTsKKwogICAgIC8qCiAgICAg ICogQ29weSBsZWdhY3kgWFNBVkUgYXJlYSBhbmQgWFNBVkUgaGRyIGFyZWEuCiAgICAgICovCkBA IC0yMjMsNiArMjM3LDggQEAgdm9pZCBjb21wcmVzc194c2F2ZV9zdGF0ZXMoc3RydWN0IHZjcHUg KnYsIGNvbnN0IHZvaWQgKnNyYywgdW5zaWduZWQgaW50IHNpemUpCiAgICAgeHNhdmUtPnhzYXZl X2hkci54c3RhdGVfYnYgPSB4c3RhdGVfYnY7CiAgICAgeHNhdmUtPnhzYXZlX2hkci54Y29tcF9i diA9IHYtPmFyY2gueGNyMF9hY2N1bSB8IFhTVEFURV9DT01QQUNUSU9OX0VOQUJMRUQ7CiAKKyAg ICBzZXR1cF94c3RhdGVfY29tcCh4c2F2ZS0+eHNhdmVfaGRyLnhjb21wX2J2KTsKKwogICAgIC8q CiAgICAgICogQ29weSBlYWNoIHJlZ2lvbiBmcm9tIHRoZSBub24tY29tcGFjdGVkIG9mZnNldCB0 byB0aGUKICAgICAgKiBwb3NzaWJseSBjb21wYWN0ZWQgb2Zmc2V0LgpAQCAtNTc1LDggKzU5MSw2 IEBAIHZvaWQgeHN0YXRlX2luaXQoc3RydWN0IGNwdWluZm9feDg2ICpjKQogCiAgICAgaWYgKCBz ZXR1cF94c3RhdGVfZmVhdHVyZXMoYnNwKSAmJiBic3AgKQogICAgICAgICBCVUcoKTsKLSAgICBp ZiAoIGJzcCAmJiAoY3B1X2hhc194c2F2ZXMgfHwgY3B1X2hhc194c2F2ZWMpICkKLSAgICAgICAg c2V0dXBfeHN0YXRlX2NvbXAoKTsKIH0KIAogc3RhdGljIGJvb2xfdCB2YWxpZF94Y3IwKHU2NCB4 Y3IwKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni94c3RhdGUuaCBiL3hlbi9pbmNs dWRlL2FzbS14ODYveHN0YXRlLmgKaW5kZXggYzI4Y2VhNS4uNjFkMWRkYiAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni94c3RhdGUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3hz dGF0ZS5oCkBAIC00Niw2ICs0Niw4IEBACiAjZGVmaW5lIFhTVEFURV9MQVpZICAgIChYU1RBVEVf QUxMICYgflhTVEFURV9OT05MQVpZKQogI2RlZmluZSBYU1RBVEVfQ09NUEFDVElPTl9FTkFCTEVE ICAoMVVMTCA8PCA2MykKIAorI2RlZmluZSBYU1RBVEVfQUxJR042NCAoMVVMTCA8PCAxKQorCiBl eHRlcm4gdTY0IHhmZWF0dXJlX21hc2s7CiBleHRlcm4gdW5zaWduZWQgaW50ICp4c3RhdGVfc2l6 ZXM7CiAKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK