From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shuai Ruan Subject: [PATCH V6 1/2] x86/xsaves: calculate the comp_offsets base on xcomp_bv Date: Thu, 24 Mar 2016 16:29:32 +0800 Message-ID: <1458808173-23279-2-git-send-email-shuai.ruan@linux.intel.com> References: <1458808173-23279-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: In-Reply-To: <1458808173-23279-1-git-send-email-shuai.ruan@linux.intel.com> 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 UHJldmlvdXMgcGF0Y2ggdXNpbmcgYWxsIGF2YWlsYWJsZSBmZWF0dXJlcyBjYWxjdWxhdGUgY29t cF9vZmZzZXRzLgpUaGlzIGlzIHdyb25nLlRoaXMgcGF0Y2ggZml4IHRoaXMgYnVnIGJ5IGNhbGN1 bGF0aW5nIHRoZSBjb21wX29mZnNldApiYXNlZCBvbiB4Y29tcF9idiBvZiBjdXJyZW50IGd1ZXN0 LgpBbHNvLCB0aGUgY29tcF9vZmZzZXQgc2hvdWxkIHRha2UgYWxpZ25tZW50IGludG8gY29uc2lk ZXJhdGlvbi4KClNpZ25lZC1vZmYtYnk6IFNodWFpIFJ1YW4gPHNodWFpLnJ1YW5AbGludXguaW50 ZWwuY29tPgpSZXBvcnRlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0K VjU6IEFkZHJlc3MgY29tbWVudHMgZnJvbSBKYW46CjEuIHVzZSB4Y29tcF9idiB0byBjYWN1bGF0 ZSBjb21wX29mZnNldHMKMi4gbG9jYWwgdmFyaWFibGUvZnVuY2l0b24gcGFyYW1ldGVycyB3aXRo IG5vIHhzdGF0ZV8gcHJlZml4IAozLiBmaXggYSBidWcgcmVhbHRlZCB3aXRoIHRlc3RfYml0KCku CgpWNDogQWRkcmVzcyBjb21tZW50cyBmcm9tIEphbjoKMS4gdXNlIHhzdGF0ZV9jb21wX29mZnNl dHMgYXMgb24tc3RhY2sgYXJyYXkuCgpWMzogQWRkcmVzcyBjb21tZW50cyBmcm9tIEphbjoKMS4g Zml4IHhzdGF0ZV9jb21wX29mZnNldHMgdXNlZCBhcyBzdGF0aWMgYXJyYXkgcHJvYmxlbS4KMi4g Y2hhbmdlIHhzdGF0ZV9hbGlnbiBmcm9tIGFycmF5IHRvIHU2NCBhbmQgdXNlZCBhcyBiaXRtYXAu CjMuIGNoYW5nZSBjYWxjdWxhdGluZyB4c3RhdGVfY29tcF9vZmZzZXRzIGludG8gdGhyZWUgc3Rl cC4KICAgICAgICAxKSB3aGV0aGVyIGNvbXBvbmVudCBpcyBzZXQgaW4geHNhdmVhcmVhCiAgICAg ICAgMikgd2hldGhlciBjb21wb25lbnQgbmVlZCBhbGlnbgogICAgICAgIDMpIGFkZCB4c3RhdGVf c2l6ZVtpLTFdCgpWMjogQWRkcmVzcyBjb21tZW50cyBmcm9tIEphbjoKMS4gY29kZSBzdHlsZSBm aXguCjIuIHNldHVwX3hzdGF0ZV9jb21wIHRha2UgeGNvbXBfYnYgYXMgcGFyYW0uCgogeGVuL2Fy Y2gveDg2L3hzdGF0ZS5jICAgICAgICB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L3hzdGF0ZS5oIHwgIDIgKysKIDIg ZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L3hzdGF0ZS5jIGIveGVuL2FyY2gveDg2L3hzdGF0ZS5jCmluZGV4 IGY2NDk0MDUuLmE3YjZhMDQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94c3RhdGUuYworKysg Yi94ZW4vYXJjaC94ODYveHN0YXRlLmMKQEAgLTI2LDggKzI2LDggQEAgdTY0IF9fcmVhZF9tb3N0 bHkgeGZlYXR1cmVfbWFzazsKIAogc3RhdGljIHVuc2lnbmVkIGludCAqX19yZWFkX21vc3RseSB4 c3RhdGVfb2Zmc2V0czsKIHVuc2lnbmVkIGludCAqX19yZWFkX21vc3RseSB4c3RhdGVfc2l6ZXM7 CitzdGF0aWMgdTY0IF9fcmVhZF9tb3N0bHkgeHN0YXRlX2FsaWduOwogc3RhdGljIHVuc2lnbmVk IGludCBfX3JlYWRfbW9zdGx5IHhzdGF0ZV9mZWF0dXJlczsKLXN0YXRpYyB1bnNpZ25lZCBpbnQg X19yZWFkX21vc3RseSB4c3RhdGVfY29tcF9vZmZzZXRzW3NpemVvZih4ZmVhdHVyZV9tYXNrKSo4 XTsKIAogc3RhdGljIHVpbnQzMl90IF9fcmVhZF9tb3N0bHkgbXhjc3JfbWFzayA9IDB4MDAwMGZm YmY7CiAKQEAgLTk0LDcgKzk0LDcgQEAgc3RhdGljIGJvb2xfdCB4c2F2ZV9hcmVhX2NvbXByZXNz ZWQoY29uc3Qgc3RydWN0IHhzYXZlX3N0cnVjdCAqeHNhdmVfYXJlYSkKIAogc3RhdGljIGludCBz ZXR1cF94c3RhdGVfZmVhdHVyZXMoYm9vbF90IGJzcCkKIHsKLSAgICB1bnNpZ25lZCBpbnQgbGVh ZiwgdG1wLCBlYXgsIGVieDsKKyAgICB1bnNpZ25lZCBpbnQgbGVhZiwgZWF4LCBlYngsIGVjeCwg ZWR4OwogCiAgICAgaWYgKCBic3AgKQogICAgIHsKQEAgLTExMSw1NyArMTExLDcxIEBAIHN0YXRp YyBpbnQgc2V0dXBfeHN0YXRlX2ZlYXR1cmVzKGJvb2xfdCBic3ApCiAgICAgZm9yICggbGVhZiA9 IDI7IGxlYWYgPCB4c3RhdGVfZmVhdHVyZXM7IGxlYWYrKyApCiAgICAgewogICAgICAgICBpZiAo IGJzcCApCisgICAgICAgIHsKICAgICAgICAgICAgIGNwdWlkX2NvdW50KFhTVEFURV9DUFVJRCwg bGVhZiwgJnhzdGF0ZV9zaXplc1tsZWFmXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICZ4c3Rh dGVfb2Zmc2V0c1tsZWFmXSwgJnRtcCwgJnRtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAm eHN0YXRlX29mZnNldHNbbGVhZl0sICZlY3gsICZlZHgpOworICAgICAgICAgICAgaWYgKCBlY3gg JiBYU1RBVEVfQUxJR042NCApCisgICAgICAgICAgICAgICAgX19zZXRfYml0KGxlYWYsICZ4c3Rh dGVfYWxpZ24pOworICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAg ICAgY3B1aWRfY291bnQoWFNUQVRFX0NQVUlELCBsZWFmLCAmZWF4LAotICAgICAgICAgICAgICAg ICAgICAgICAgJmVieCwgJnRtcCwgJnRtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAmZWJ4 LCAmZWN4LCAmZWR4KTsKICAgICAgICAgICAgIEJVR19PTihlYXggIT0geHN0YXRlX3NpemVzW2xl YWZdKTsKICAgICAgICAgICAgIEJVR19PTihlYnggIT0geHN0YXRlX29mZnNldHNbbGVhZl0pOwor ICAgICAgICAgICAgQlVHX09OKCEoZWN4ICYgWFNUQVRFX0FMSUdONjQpICE9ICF0ZXN0X2JpdChs ZWFmLCAmeHN0YXRlX2FsaWduKSk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gMDsK IH0KIAotc3RhdGljIHZvaWQgX19pbml0IHNldHVwX3hzdGF0ZV9jb21wKHZvaWQpCitzdGF0aWMg dm9pZCBzZXR1cF94c3RhdGVfY29tcCh1aW50MTZfdCAqY29tcF9vZmZzZXRzLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDY0X3QgeGNvbXBfYnYpCiB7CiAgICAgdW5z aWduZWQgaW50IGk7CisgICAgdW5zaWduZWQgaW50IG9mZnNldDsKIAogICAgIC8qCiAgICAgICog VGhlIEZQIHhzdGF0ZXMgYW5kIFNTRSB4c3RhdGVzIGFyZSBsZWdhY3kgc3RhdGVzLiBUaGV5IGFy ZSBhbHdheXMKICAgICAgKiBpbiB0aGUgZml4ZWQgb2Zmc2V0cyBpbiB0aGUgeHNhdmUgYXJlYSBp biBlaXRoZXIgY29tcGFjdGVkIGZvcm0KICAgICAgKiBvciBzdGFuZGFyZCBmb3JtLgogICAgICAq LwotICAgIHhzdGF0ZV9jb21wX29mZnNldHNbMF0gPSAwOwotICAgIHhzdGF0ZV9jb21wX29mZnNl dHNbMV0gPSBYU0FWRV9TU0VfT0ZGU0VUOworICAgIGNvbXBfb2Zmc2V0c1swXSA9IDA7CisgICAg Y29tcF9vZmZzZXRzWzFdID0gWFNBVkVfU1NFX09GRlNFVDsKIAotICAgIHhzdGF0ZV9jb21wX29m ZnNldHNbMl0gPSBGWFNBVkVfU0laRSArIFhTQVZFX0hEUl9TSVpFOworICAgIGNvbXBfb2Zmc2V0 c1syXSA9IEZYU0FWRV9TSVpFICsgWFNBVkVfSERSX1NJWkU7CiAKLSAgICBmb3IgKCBpID0gMzsg aSA8IHhzdGF0ZV9mZWF0dXJlczsgaSsrICkKKyAgICBvZmZzZXQgPSBjb21wX29mZnNldHNbMl07 CisgICAgZm9yICggaSA9IDI7IGkgPCB4c3RhdGVfZmVhdHVyZXM7IGkrKyApCiAgICAgewotICAg ICAgICB4c3RhdGVfY29tcF9vZmZzZXRzW2ldID0geHN0YXRlX2NvbXBfb2Zmc2V0c1tpIC0gMV0g KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgoMXVsIDw8IGkpICYgeGZlYXR1 cmVfbWFzaykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHhzdGF0ZV9zaXpl c1tpIC0gMV0gOiAwKTsKLSAgICAgICAgQVNTRVJUKHhzdGF0ZV9jb21wX29mZnNldHNbaV0gKyB4 c3RhdGVfc2l6ZXNbaV0gPD0geHNhdmVfY250eHRfc2l6ZSk7CisgICAgICAgIGlmICggKDF1bCA8 PCBpKSAmIHhjb21wX2J2ICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCB0ZXN0X2JpdChp LCAmeHN0YXRlX2FsaWduKSApCisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gUk9VTkRVUChvZmZz ZXQsIDY0KTsKKyAgICAgICAgICAgIGNvbXBfb2Zmc2V0c1tpXSA9IG9mZnNldDsKKyAgICAgICAg ICAgIG9mZnNldCArPSB4c3RhdGVfc2l6ZXNbaV07CisgICAgICAgIH0KICAgICB9CisgICAgQVNT RVJUKG9mZnNldCA8PSB4c2F2ZV9jbnR4dF9zaXplKTsKIH0KIAogc3RhdGljIHZvaWQgKmdldF94 c2F2ZV9hZGRyKHN0cnVjdCB4c2F2ZV9zdHJ1Y3QgKnhzYXZlLAotICAgICAgICB1bnNpZ25lZCBp bnQgeGZlYXR1cmVfaWR4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQx Nl90ICpjb21wX29mZnNldHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IHhmZWF0dXJlX2lkeCkKIHsKICAgICBpZiAoICEoKDF1bCA8PCB4ZmVhdHVyZV9pZHgpICYg eHNhdmUtPnhzYXZlX2hkci54c3RhdGVfYnYpICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAg ICByZXR1cm4gKHZvaWQgKil4c2F2ZSArICh4c2F2ZV9hcmVhX2NvbXByZXNzZWQoeHNhdmUpCi0g ICAgICAgICAgICA/IHhzdGF0ZV9jb21wX29mZnNldHMKLSAgICAgICAgICAgIDogeHN0YXRlX29m ZnNldHMpW3hmZWF0dXJlX2lkeF07CisgICAgcmV0dXJuICh2b2lkICopeHNhdmUgKyAoeHNhdmVf YXJlYV9jb21wcmVzc2VkKHhzYXZlKSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t cF9vZmZzZXRzW3hmZWF0dXJlX2lkeF0gOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhz dGF0ZV9vZmZzZXRzW3hmZWF0dXJlX2lkeF0pOwogfQogCiB2b2lkIGV4cGFuZF94c2F2ZV9zdGF0 ZXMoc3RydWN0IHZjcHUgKnYsIHZvaWQgKmRlc3QsIHVuc2lnbmVkIGludCBzaXplKQogewogICAg IHN0cnVjdCB4c2F2ZV9zdHJ1Y3QgKnhzYXZlID0gdi0+YXJjaC54c2F2ZV9hcmVhOworICAgIHVp bnQxNl90IGNvbXBfb2Zmc2V0c1tzaXplb2YoeGZlYXR1cmVfbWFzaykqOF07CiAgICAgdTY0IHhz dGF0ZV9idiA9IHhzYXZlLT54c2F2ZV9oZHIueHN0YXRlX2J2OwogICAgIHU2NCB2YWxpZDsKIApA QCAtMTcyLDYgKzE4Niw4IEBAIHZvaWQgZXhwYW5kX3hzYXZlX3N0YXRlcyhzdHJ1Y3QgdmNwdSAq diwgdm9pZCAqZGVzdCwgdW5zaWduZWQgaW50IHNpemUpCiAgICAgfQogCiAgICAgQVNTRVJUKHhz YXZlX2FyZWFfY29tcHJlc3NlZCh4c2F2ZSkpOworICAgIHNldHVwX3hzdGF0ZV9jb21wKGNvbXBf b2Zmc2V0cywgeHNhdmUtPnhzYXZlX2hkci54Y29tcF9idik7CisKICAgICAvKgogICAgICAqIENv cHkgbGVnYWN5IFhTQVZFIGFyZWEgYW5kIFhTQVZFIGhkciBhcmVhLgogICAgICAqLwpAQCAtMTg4 LDcgKzIwNCw3IEBAIHZvaWQgZXhwYW5kX3hzYXZlX3N0YXRlcyhzdHJ1Y3QgdmNwdSAqdiwgdm9p ZCAqZGVzdCwgdW5zaWduZWQgaW50IHNpemUpCiAgICAgewogICAgICAgICB1NjQgZmVhdHVyZSA9 IHZhbGlkICYgLXZhbGlkOwogICAgICAgICB1bnNpZ25lZCBpbnQgaW5kZXggPSBmbHMoZmVhdHVy ZSkgLSAxOwotICAgICAgICBjb25zdCB2b2lkICpzcmMgPSBnZXRfeHNhdmVfYWRkcih4c2F2ZSwg aW5kZXgpOworICAgICAgICBjb25zdCB2b2lkICpzcmMgPSBnZXRfeHNhdmVfYWRkcih4c2F2ZSwg Y29tcF9vZmZzZXRzLCBpbmRleCk7CiAKICAgICAgICAgaWYgKCBzcmMgKQogICAgICAgICB7CkBA IC0yMDMsNiArMjE5LDcgQEAgdm9pZCBleHBhbmRfeHNhdmVfc3RhdGVzKHN0cnVjdCB2Y3B1ICp2 LCB2b2lkICpkZXN0LCB1bnNpZ25lZCBpbnQgc2l6ZSkKIHZvaWQgY29tcHJlc3NfeHNhdmVfc3Rh dGVzKHN0cnVjdCB2Y3B1ICp2LCBjb25zdCB2b2lkICpzcmMsIHVuc2lnbmVkIGludCBzaXplKQog ewogICAgIHN0cnVjdCB4c2F2ZV9zdHJ1Y3QgKnhzYXZlID0gdi0+YXJjaC54c2F2ZV9hcmVhOwor ICAgIHVpbnQxNl90IGNvbXBfb2Zmc2V0c1tzaXplb2YoeGZlYXR1cmVfbWFzaykqOF07CiAgICAg dTY0IHhzdGF0ZV9idiA9ICgoY29uc3Qgc3RydWN0IHhzYXZlX3N0cnVjdCAqKXNyYyktPnhzYXZl X2hkci54c3RhdGVfYnY7CiAgICAgdTY0IHZhbGlkOwogCkBAIC0yMjIsNiArMjM5LDcgQEAgdm9p ZCBjb21wcmVzc194c2F2ZV9zdGF0ZXMoc3RydWN0IHZjcHUgKnYsIGNvbnN0IHZvaWQgKnNyYywg dW5zaWduZWQgaW50IHNpemUpCiAgICAgLyogU2V0IFhTVEFURV9CViBhbmQgWENPTVBfQlYuICAq LwogICAgIHhzYXZlLT54c2F2ZV9oZHIueHN0YXRlX2J2ID0geHN0YXRlX2J2OwogICAgIHhzYXZl LT54c2F2ZV9oZHIueGNvbXBfYnYgPSB2LT5hcmNoLnhjcjBfYWNjdW0gfCBYU1RBVEVfQ09NUEFD VElPTl9FTkFCTEVEOworICAgIHNldHVwX3hzdGF0ZV9jb21wKGNvbXBfb2Zmc2V0cywgeHNhdmUt PnhzYXZlX2hkci54Y29tcF9idik7CiAKICAgICAvKgogICAgICAqIENvcHkgZWFjaCByZWdpb24g ZnJvbSB0aGUgbm9uLWNvbXBhY3RlZCBvZmZzZXQgdG8gdGhlCkBAIC0yMzIsNyArMjUwLDcgQEAg dm9pZCBjb21wcmVzc194c2F2ZV9zdGF0ZXMoc3RydWN0IHZjcHUgKnYsIGNvbnN0IHZvaWQgKnNy YywgdW5zaWduZWQgaW50IHNpemUpCiAgICAgewogICAgICAgICB1NjQgZmVhdHVyZSA9IHZhbGlk ICYgLXZhbGlkOwogICAgICAgICB1bnNpZ25lZCBpbnQgaW5kZXggPSBmbHMoZmVhdHVyZSkgLSAx OwotICAgICAgICB2b2lkICpkZXN0ID0gZ2V0X3hzYXZlX2FkZHIoeHNhdmUsIGluZGV4KTsKKyAg ICAgICAgdm9pZCAqZGVzdCA9IGdldF94c2F2ZV9hZGRyKHhzYXZlLCBjb21wX29mZnNldHMsIGlu ZGV4KTsKIAogICAgICAgICBpZiAoIGRlc3QgKQogICAgICAgICB7CkBAIC01NjQsOCArNTgyLDYg QEAgdm9pZCB4c3RhdGVfaW5pdChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiAKICAgICBpZiAoIHNl dHVwX3hzdGF0ZV9mZWF0dXJlcyhic3ApICYmIGJzcCApCiAgICAgICAgIEJVRygpOwotICAgIGlm ICggYnNwICYmIChjcHVfaGFzX3hzYXZlcyB8fCBjcHVfaGFzX3hzYXZlYykgKQotICAgICAgICBz ZXR1cF94c3RhdGVfY29tcCgpOwogfQogCiBzdGF0aWMgYm9vbF90IHZhbGlkX3hjcjAodTY0IHhj cjApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3hzdGF0ZS5oIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni94c3RhdGUuaAppbmRleCBjMjhjZWE1Li5hNDg4Njg4IDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L3hzdGF0ZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYveHN0 YXRlLmgKQEAgLTQ2LDYgKzQ2LDggQEAKICNkZWZpbmUgWFNUQVRFX0xBWlkgICAgKFhTVEFURV9B TEwgJiB+WFNUQVRFX05PTkxBWlkpCiAjZGVmaW5lIFhTVEFURV9DT01QQUNUSU9OX0VOQUJMRUQg ICgxVUxMIDw8IDYzKQogCisjZGVmaW5lIFhTVEFURV9BTElHTjY0ICgxVSA8PCAxKQorCiBleHRl cm4gdTY0IHhmZWF0dXJlX21hc2s7CiBleHRlcm4gdW5zaWduZWQgaW50ICp4c3RhdGVfc2l6ZXM7 CiAKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK