From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shuai Ruan Subject: [V4] x86/xsaves: calculate the xstate_comp_offsets base on xstate_bv Date: Wed, 16 Mar 2016 20:12:52 +0800 Message-ID: <1458130372-7377-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 eSBjYWxjdWxhdGluZyB0aGUgeHN0YXRlX2NvbXBfb2Zmc2V0CmJhc2VkIG9uIHhzdGF0ZV9idiBv ZiBjdXJyZW50IGd1ZXN0LgpBbHNvLCB0aGUgeHN0YXRlX2NvbXBfb2Zmc2V0IHNob3VsZCB0YWtl IGFsaWdubWVudCBpbnRvIGNvbnNpZGVyYXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBTaHVhaSBSdWFu IDxzaHVhaS5ydWFuQGxpbnV4LmludGVsLmNvbT4KUmVwb3J0ZWQtYnk6IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KLS0tClY0OiBBZGRyZXNzIGNvbW1lbnRzIGZvcm0gamFuOgoxLiB1 c2UgeHN0YXRlX2NvbXBfb2Zmc2V0cyBhcyBvbi1zdGFjayBhcnJheS4KIApWMzogQWRkcmVzcyBj b21tZW50cyBmcm9tIEphbjoKMS4gZml4IHhzdGF0ZV9jb21wX29mZnNldHMgdXNlZCBhcyBzdGF0 aWMgYXJyYXkgcHJvYmxlbS4KMi4gY2hhbmdlIHhzdGF0ZV9hbGlnbiBmcm9tIGFycmF5IHRvIHU2 NCBhbmQgdXNlZCBhcyBiaXRtYXAuCjMuIGNoYW5nZSBjYWxjdWxhdGluZyB4c3RhdGVfY29tcF9v ZmZzZXRzIGludG8gdGhyZWUgc3RlcC4KICAgICAgICAxKSB3aGV0aGVyIGNvbXBvbmVudCBpcyBz ZXQgaW4geHNhdmVhcmVhCiAgICAgICAgMikgd2hldGhlciBjb21wb25lbnQgbmVlZCBhbGlnbgog ICAgICAgIDMpIGFkZCB4c3RhdGVfc2l6ZVtpLTFdCgpWMjogQWRkcmVzcyBjb21tZW50cyBmcm9t IEphbjoKMS4gY29kZSBzdHlsZSBmaXguCjIuIHNldHVwX3hzdGF0ZV9jb21wIHRha2UgeGNvbXBf YnYgYXMgcGFyYW0uCgogeGVuL2FyY2gveDg2L3hzdGF0ZS5jICAgICAgICB8IDUzICsrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2 L3hzdGF0ZS5oIHwgIDIgKysKIDIgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMTkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3hzdGF0ZS5jIGIveGVuL2Fy Y2gveDg2L3hzdGF0ZS5jCmluZGV4IGE1ZWQ5ZTUuLmVmMmM1NGQgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni94c3RhdGUuYworKysgYi94ZW4vYXJjaC94ODYveHN0YXRlLmMKQEAgLTI2LDggKzI2 LDggQEAgdTY0IF9fcmVhZF9tb3N0bHkgeGZlYXR1cmVfbWFzazsKIAogc3RhdGljIHVuc2lnbmVk IGludCAqX19yZWFkX21vc3RseSB4c3RhdGVfb2Zmc2V0czsKIHVuc2lnbmVkIGludCAqX19yZWFk X21vc3RseSB4c3RhdGVfc2l6ZXM7CitzdGF0aWMgdTY0IF9fcmVhZF9tb3N0bHkgeHN0YXRlX2Fs aWduOwogc3RhdGljIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHhzdGF0ZV9mZWF0dXJlczsK LXN0YXRpYyB1bnNpZ25lZCBpbnQgX19yZWFkX21vc3RseSB4c3RhdGVfY29tcF9vZmZzZXRzW3Np emVvZih4ZmVhdHVyZV9tYXNrKSo4XTsKIAogc3RhdGljIHVpbnQzMl90IF9fcmVhZF9tb3N0bHkg bXhjc3JfbWFzayA9IDB4MDAwMGZmYmY7CiAKQEAgLTk0LDcgKzk0LDcgQEAgc3RhdGljIGJvb2xf dCB4c2F2ZV9hcmVhX2NvbXByZXNzZWQoY29uc3Qgc3RydWN0IHhzYXZlX3N0cnVjdCAqeHNhdmVf YXJlYSkKIAogc3RhdGljIGludCBzZXR1cF94c3RhdGVfZmVhdHVyZXMoYm9vbF90IGJzcCkKIHsK LSAgICB1bnNpZ25lZCBpbnQgbGVhZiwgdG1wLCBlYXgsIGVieDsKKyAgICB1bnNpZ25lZCBpbnQg bGVhZiwgZWF4LCBlYngsIGVjeCwgZWR4OwogCiAgICAgaWYgKCBic3AgKQogICAgIHsKQEAgLTEx MSw1NyArMTExLDcwIEBAIHN0YXRpYyBpbnQgc2V0dXBfeHN0YXRlX2ZlYXR1cmVzKGJvb2xfdCBi c3ApCiAgICAgZm9yICggbGVhZiA9IDI7IGxlYWYgPCB4c3RhdGVfZmVhdHVyZXM7IGxlYWYrKyAp CiAgICAgewogICAgICAgICBpZiAoIGJzcCApCisgICAgICAgIHsKICAgICAgICAgICAgIGNwdWlk X2NvdW50KFhTVEFURV9DUFVJRCwgbGVhZiwgJnhzdGF0ZV9zaXplc1tsZWFmXSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICZ4c3RhdGVfb2Zmc2V0c1tsZWFmXSwgJnRtcCwgJnRtcCk7CisgICAg ICAgICAgICAgICAgICAgICAgICAmeHN0YXRlX29mZnNldHNbbGVhZl0sICZlY3gsICZlZHgpOwor ICAgICAgICAgICAgaWYgKCBlY3ggJiBYU1RBVEVfQUxJR042NCApCisgICAgICAgICAgICAgICAg X19zZXRfYml0KGxlYWYsICZ4c3RhdGVfYWxpZ24pOworICAgICAgICB9CiAgICAgICAgIGVsc2UK ICAgICAgICAgewogICAgICAgICAgICAgY3B1aWRfY291bnQoWFNUQVRFX0NQVUlELCBsZWFmLCAm ZWF4LAotICAgICAgICAgICAgICAgICAgICAgICAgJmVieCwgJnRtcCwgJnRtcCk7CisgICAgICAg ICAgICAgICAgICAgICAgICAmZWJ4LCAmZWN4LCAmZWR4KTsKICAgICAgICAgICAgIEJVR19PTihl YXggIT0geHN0YXRlX3NpemVzW2xlYWZdKTsKICAgICAgICAgICAgIEJVR19PTihlYnggIT0geHN0 YXRlX29mZnNldHNbbGVhZl0pOworICAgICAgICAgICAgQlVHX09OKChlY3ggJiBYU1RBVEVfQUxJ R042NCkgIT0gdGVzdF9iaXQobGVhZiwgJnhzdGF0ZV9hbGlnbikpOwogICAgICAgICB9CiAgICAg fQogCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF94c3RhdGVf Y29tcCh2b2lkKQorc3RhdGljIHZvaWQgc2V0dXBfeHN0YXRlX2NvbXAodWludDE2X3QgKnhzdGF0 ZV9jb21wX29mZnNldHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1NjQg eHN0YXRlX2J2KQogewogICAgIHVuc2lnbmVkIGludCBpOworICAgIHVpbnQxNl90IG9mZnNldDsK IAogICAgIC8qCiAgICAgICogVGhlIEZQIHhzdGF0ZXMgYW5kIFNTRSB4c3RhdGVzIGFyZSBsZWdh Y3kgc3RhdGVzLiBUaGV5IGFyZSBhbHdheXMKICAgICAgKiBpbiB0aGUgZml4ZWQgb2Zmc2V0cyBp biB0aGUgeHNhdmUgYXJlYSBpbiBlaXRoZXIgY29tcGFjdGVkIGZvcm0KICAgICAgKiBvciBzdGFu ZGFyZCBmb3JtLgogICAgICAqLwotICAgIHhzdGF0ZV9jb21wX29mZnNldHNbMF0gPSAwOwogICAg IHhzdGF0ZV9jb21wX29mZnNldHNbMV0gPSBYU0FWRV9TU0VfT0ZGU0VUOwogCiAgICAgeHN0YXRl X2NvbXBfb2Zmc2V0c1syXSA9IEZYU0FWRV9TSVpFICsgWFNBVkVfSERSX1NJWkU7CiAKLSAgICBm b3IgKCBpID0gMzsgaSA8IHhzdGF0ZV9mZWF0dXJlczsgaSsrICkKKyAgICBvZmZzZXQgPSB4c3Rh dGVfY29tcF9vZmZzZXRzWzJdOworICAgIGZvciAoIGkgPSAyOyBpIDwgeHN0YXRlX2ZlYXR1cmVz OyBpKysgKQogICAgIHsKLSAgICAgICAgeHN0YXRlX2NvbXBfb2Zmc2V0c1tpXSA9IHhzdGF0ZV9j b21wX29mZnNldHNbaSAtIDFdICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgo KDF1bCA8PCBpKSAmIHhmZWF0dXJlX21hc2spCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPyB4c3RhdGVfc2l6ZXNbaSAtIDFdIDogMCk7Ci0gICAgICAgIEFTU0VSVCh4c3RhdGVf Y29tcF9vZmZzZXRzW2ldICsgeHN0YXRlX3NpemVzW2ldIDw9IHhzYXZlX2NudHh0X3NpemUpOwor ICAgICAgICBpZiAoICgxdWwgPDwgaSkgJiB4c3RhdGVfYnYgKQorICAgICAgICB7CisgICAgICAg ICAgICBpZiAoIHRlc3RfYml0KGksICZ4c3RhdGVfYWxpZ24pICkKKyAgICAgICAgICAgICAgICBv ZmZzZXQgPSBST1VORFVQKG9mZnNldCwgNjQpOworICAgICAgICAgICAgeHN0YXRlX2NvbXBfb2Zm c2V0c1tpXSA9IG9mZnNldDsKKyAgICAgICAgICAgIG9mZnNldCArPSB4c3RhdGVfc2l6ZXNbaV07 CisgICAgICAgICAgICBBU1NFUlQob2Zmc2V0IDw9IHhzYXZlX2NudHh0X3NpemUpOworICAgICAg ICB9CiAgICAgfQogfQogCiBzdGF0aWMgdm9pZCAqZ2V0X3hzYXZlX2FkZHIoc3RydWN0IHhzYXZl X3N0cnVjdCAqeHNhdmUsCi0gICAgICAgIHVuc2lnbmVkIGludCB4ZmVhdHVyZV9pZHgpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDE2X3QgKnhzdGF0ZV9jb21wX29mZnNl dHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHhmZWF0dXJlX2lk eCkKIHsKICAgICBpZiAoICEoKDF1bCA8PCB4ZmVhdHVyZV9pZHgpICYgeHNhdmUtPnhzYXZlX2hk ci54c3RhdGVfYnYpICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICByZXR1cm4gKHZvaWQg Kil4c2F2ZSArICh4c2F2ZV9hcmVhX2NvbXByZXNzZWQoeHNhdmUpCi0gICAgICAgICAgICA/IHhz dGF0ZV9jb21wX29mZnNldHMKLSAgICAgICAgICAgIDogeHN0YXRlX29mZnNldHMpW3hmZWF0dXJl X2lkeF07CisgICAgcmV0dXJuICh2b2lkICopeHNhdmUgKyAoIHhzYXZlX2FyZWFfY29tcHJlc3Nl ZCh4c2F2ZSkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4c3RhdGVfY29tcF9vZmZz ZXRzW3hmZWF0dXJlX2lkeF0gOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4c3RhdGVf b2Zmc2V0c1t4ZmVhdHVyZV9pZHhdICk7CiB9CiAKIHZvaWQgZXhwYW5kX3hzYXZlX3N0YXRlcyhz dHJ1Y3QgdmNwdSAqdiwgdm9pZCAqZGVzdCwgdW5zaWduZWQgaW50IHNpemUpCiB7CiAgICAgc3Ry dWN0IHhzYXZlX3N0cnVjdCAqeHNhdmUgPSB2LT5hcmNoLnhzYXZlX2FyZWE7CisgICAgdWludDE2 X3QgeHN0YXRlX2NvbXBfb2Zmc2V0c1tzaXplb2YoeGZlYXR1cmVfbWFzaykqOF07CiAgICAgdTY0 IHhzdGF0ZV9idiA9IHhzYXZlLT54c2F2ZV9oZHIueHN0YXRlX2J2OwogICAgIHU2NCB2YWxpZDsK IApAQCAtMTcyLDYgKzE4NSw4IEBAIHZvaWQgZXhwYW5kX3hzYXZlX3N0YXRlcyhzdHJ1Y3QgdmNw dSAqdiwgdm9pZCAqZGVzdCwgdW5zaWduZWQgaW50IHNpemUpCiAgICAgfQogCiAgICAgQVNTRVJU KHhzYXZlX2FyZWFfY29tcHJlc3NlZCh4c2F2ZSkpOworICAgIHNldHVwX3hzdGF0ZV9jb21wKHhz dGF0ZV9jb21wX29mZnNldHMsIHhzdGF0ZV9idik7CisKICAgICAvKgogICAgICAqIENvcHkgbGVn YWN5IFhTQVZFIGFyZWEgYW5kIFhTQVZFIGhkciBhcmVhLgogICAgICAqLwpAQCAtMTg4LDcgKzIw Myw3IEBAIHZvaWQgZXhwYW5kX3hzYXZlX3N0YXRlcyhzdHJ1Y3QgdmNwdSAqdiwgdm9pZCAqZGVz dCwgdW5zaWduZWQgaW50IHNpemUpCiAgICAgewogICAgICAgICB1NjQgZmVhdHVyZSA9IHZhbGlk ICYgLXZhbGlkOwogICAgICAgICB1bnNpZ25lZCBpbnQgaW5kZXggPSBmbHMoZmVhdHVyZSkgLSAx OwotICAgICAgICBjb25zdCB2b2lkICpzcmMgPSBnZXRfeHNhdmVfYWRkcih4c2F2ZSwgaW5kZXgp OworICAgICAgICBjb25zdCB2b2lkICpzcmMgPSBnZXRfeHNhdmVfYWRkcih4c2F2ZSwgeHN0YXRl X2NvbXBfb2Zmc2V0cywgaW5kZXgpOwogCiAgICAgICAgIGlmICggc3JjICkKICAgICAgICAgewpA QCAtMjAzLDYgKzIxOCw3IEBAIHZvaWQgZXhwYW5kX3hzYXZlX3N0YXRlcyhzdHJ1Y3QgdmNwdSAq diwgdm9pZCAqZGVzdCwgdW5zaWduZWQgaW50IHNpemUpCiB2b2lkIGNvbXByZXNzX3hzYXZlX3N0 YXRlcyhzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgdm9pZCAqc3JjLCB1bnNpZ25lZCBpbnQgc2l6ZSkK IHsKICAgICBzdHJ1Y3QgeHNhdmVfc3RydWN0ICp4c2F2ZSA9IHYtPmFyY2gueHNhdmVfYXJlYTsK KyAgICB1aW50MTZfdCB4c3RhdGVfY29tcF9vZmZzZXRzW3NpemVvZih4ZmVhdHVyZV9tYXNrKSo4 XTsKICAgICB1NjQgeHN0YXRlX2J2ID0gKChjb25zdCBzdHJ1Y3QgeHNhdmVfc3RydWN0ICopc3Jj KS0+eHNhdmVfaGRyLnhzdGF0ZV9idjsKICAgICB1NjQgdmFsaWQ7CiAKQEAgLTIyMiw2ICsyMzgs NyBAQCB2b2lkIGNvbXByZXNzX3hzYXZlX3N0YXRlcyhzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgdm9p ZCAqc3JjLCB1bnNpZ25lZCBpbnQgc2l6ZSkKICAgICAvKiBTZXQgWFNUQVRFX0JWIGFuZCBYQ09N UF9CVi4gICovCiAgICAgeHNhdmUtPnhzYXZlX2hkci54c3RhdGVfYnYgPSB4c3RhdGVfYnY7CiAg ICAgeHNhdmUtPnhzYXZlX2hkci54Y29tcF9idiA9IHYtPmFyY2gueGNyMF9hY2N1bSB8IFhTVEFU RV9DT01QQUNUSU9OX0VOQUJMRUQ7CisgICAgc2V0dXBfeHN0YXRlX2NvbXAoeHN0YXRlX2NvbXBf b2Zmc2V0cywgeHN0YXRlX2J2KTsKIAogICAgIC8qCiAgICAgICogQ29weSBlYWNoIHJlZ2lvbiBm cm9tIHRoZSBub24tY29tcGFjdGVkIG9mZnNldCB0byB0aGUKQEAgLTIzMiw3ICsyNDksNyBAQCB2 b2lkIGNvbXByZXNzX3hzYXZlX3N0YXRlcyhzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgdm9pZCAqc3Jj LCB1bnNpZ25lZCBpbnQgc2l6ZSkKICAgICB7CiAgICAgICAgIHU2NCBmZWF0dXJlID0gdmFsaWQg JiAtdmFsaWQ7CiAgICAgICAgIHVuc2lnbmVkIGludCBpbmRleCA9IGZscyhmZWF0dXJlKSAtIDE7 Ci0gICAgICAgIHZvaWQgKmRlc3QgPSBnZXRfeHNhdmVfYWRkcih4c2F2ZSwgaW5kZXgpOworICAg ICAgICB2b2lkICpkZXN0ID0gZ2V0X3hzYXZlX2FkZHIoeHNhdmUsIHhzdGF0ZV9jb21wX29mZnNl dHMsIGluZGV4KTsKIAogICAgICAgICBpZiAoIGRlc3QgKQogICAgICAgICB7CkBAIC01NzUsOCAr NTkyLDYgQEAgdm9pZCB4c3RhdGVfaW5pdChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiAKICAgICBp ZiAoIHNldHVwX3hzdGF0ZV9mZWF0dXJlcyhic3ApICYmIGJzcCApCiAgICAgICAgIEJVRygpOwot ICAgIGlmICggYnNwICYmIChjcHVfaGFzX3hzYXZlcyB8fCBjcHVfaGFzX3hzYXZlYykgKQotICAg ICAgICBzZXR1cF94c3RhdGVfY29tcCgpOwogfQogCiBzdGF0aWMgYm9vbF90IHZhbGlkX3hjcjAo dTY0IHhjcjApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3hzdGF0ZS5oIGIveGVu L2luY2x1ZGUvYXNtLXg4Ni94c3RhdGUuaAppbmRleCBjMjhjZWE1Li5hNDg4Njg4IDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3hzdGF0ZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14 ODYveHN0YXRlLmgKQEAgLTQ2LDYgKzQ2LDggQEAKICNkZWZpbmUgWFNUQVRFX0xBWlkgICAgKFhT VEFURV9BTEwgJiB+WFNUQVRFX05PTkxBWlkpCiAjZGVmaW5lIFhTVEFURV9DT01QQUNUSU9OX0VO QUJMRUQgICgxVUxMIDw8IDYzKQogCisjZGVmaW5lIFhTVEFURV9BTElHTjY0ICgxVSA8PCAxKQor CiBleHRlcm4gdTY0IHhmZWF0dXJlX21hc2s7CiBleHRlcm4gdW5zaWduZWQgaW50ICp4c3RhdGVf c2l6ZXM7CiAKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK