From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 5/6] x86/domctl: Fix migration of guests which are not using xsave Date: Mon, 12 Sep 2016 17:21:28 +0100 Message-ID: <1473697289-4289-6-git-send-email-andrew.cooper3@citrix.com> References: <1473697289-4289-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: <1473697289-4289-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 List-Id: xen-devel@lists.xenproject.org Yy9zIGRhNjIyNDZlICJ4ODYveHNhdmVzOiBlbmFibGUgeHNhdmVzL3hyc3RvcnMveHNhdmVjIGlu IHhlbiIgYnJva2UgbWlncmF0aW9uCm9mIFBWIGd1ZXN0cyB3aGljaCB3ZXJlIG5vdCB1c2luZyB4 c2F2ZS4KCkluIHN1Y2ggYSBjYXNlLCBjb21wcmVzc194c2F2ZV9zdGF0ZXMoKSBnZXRzIHBhc3Nl ZCBhIHplcm8gbGVuZ3RoIGJ1ZmZlci4gIFRoZQpmaXJzdCB0aGluZyBpdCB0cmllcyB0byBkbyBp cyBBU1NFUlQoKSBvbiB1c2VyLXByb3ZpZGVkIGRhdGEsIGlmIGl0IGhhZG4ndAphbHJlYWR5IHdh bmRlcmVkIG9mZiB0aGUgZW5kIG9mIHRoZSBidWZmZXIgdG8gZG8gc28uCgpQZXJmb3JtIG1vcmUg dmVyaWZpY2F0aW9uIG9mIHRoZSBpbnB1dCBidWZmZXIgYmVmb3JlIHBhc3NpbmcgaXQgdG8KY29t cHJlc3NfeHNhdmVfc3RhdGVzKCkuICBUaGlzIGludm9sdmVzIG1ha2luZyB4c2F2ZV9hcmVhX2Nv bXByZXNzZWQoKSBwdWJsaWMuCgpTaW1pbGFyIHByb2JsZW1zIGV4aXN0IG9uIHRoZSBIVk0gc2lk ZSwgc28gbWFrZSBlcXVpdmFsZW50IGFkanVzdG1lbnRzIHRoZXJlLgpUaGlzIGRvZXNuJ3QgbWFu aWZlc3QgaW4gZ2VuZXJhbCwgYXMgaHZtX3NhdmVfY3B1X3hzYXZlX3N0YXRlcygpIGVsaWRlcyB0 aGUKZW50aXJlIHJlY29yZCBpZiB4c2F2ZSBpc24ndCB1c2VkLCBidXQgaXMgYSBwcm9ibGVtIGlm IGEgY2FsbGVyIHdlcmUgdG8KY29uc3RydWN0IGFuIHhzYXZlIHJlY29yZCBtYW51YWxseS4KClNp Z25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJl dmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+Ci0tLQp2MjoKICogVXNl IGEgc2hhZG93IHZhcmlhYmxlIGluIGh2bV9sb2FkX2NwdV94c2F2ZV9zdGF0ZXMoKSByYXRoZXIg dGhhbiBtdXRhdGluZwogICB0aGUgc3RyZWFtIGl0c2VsZi4gIE1ha2UgZGVzYyBjb25zdCB3aGls ZSBhdCBpdC4KICogQWx0ZXIgdGhlIGFsaWdubWVudCBvZiB4c2F2ZV9hcmVhX2NvbXByZXNzZWQo KQotLS0KIHhlbi9hcmNoL3g4Ni9kb21jdGwuYyAgICAgICAgfCAxMiArKysrKysrKystLS0KIHhl bi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAgfCAyNyArKysrKysrKysrKysrKysrKysrKysrLS0t LS0KIHhlbi9hcmNoL3g4Ni94c3RhdGUuYyAgICAgICAgfCAgNiAtLS0tLS0KIHhlbi9pbmNsdWRl L2FzbS14ODYveHN0YXRlLmggfCAgNiArKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0 aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWN0 bC5jIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCmluZGV4IDVhYTlmM2EuLjJhMmZlMDQgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYworKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMK QEAgLTExNTgsNyArMTE1OCwxNSBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAogICAgICAgICAgICAg ICAgIGdvdG8gdmNwdWV4dHN0YXRlX291dDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg aWYgKCBldmMtPnNpemUgPD0gUFZfWFNBVkVfU0laRShfeGNyMF9hY2N1bSkgKQorICAgICAgICAg ICAgaWYgKCBldmMtPnNpemUgPT0gUFZfWFNBVkVfSERSX1NJWkUgKQorICAgICAgICAgICAgICAg IDsgLyogTm90aGluZyB0byByZXN0b3JlLiAqLworICAgICAgICAgICAgZWxzZSBpZiAoIGV2Yy0+ c2l6ZSA8IFBWX1hTQVZFX0hEUl9TSVpFICsgWFNUQVRFX0FSRUFfTUlOX1NJWkUgKQorICAgICAg ICAgICAgICAgIHJldCA9IC1FSU5WQUw7IC8qIENhbid0IGJlIGxlZ2l0aW1hdGUgZGF0YS4gKi8K KyAgICAgICAgICAgIGVsc2UgaWYgKCB4c2F2ZV9hcmVhX2NvbXByZXNzZWQoX3hzYXZlX2FyZWEp ICkKKyAgICAgICAgICAgICAgICByZXQgPSAtRU9QTk9UU1VQUDsgLyogRG9uJ3Qgc3VwcG9ydCBj b21wcmVzc2VkIGRhdGEuICovCisgICAgICAgICAgICBlbHNlIGlmICggZXZjLT5zaXplICE9IFBW X1hTQVZFX1NJWkUoX3hjcjBfYWNjdW0pICkKKyAgICAgICAgICAgICAgICByZXQgPSAtRUlOVkFM OyAvKiBOb3QgbGVnaXRpbWF0ZSBkYXRhLiAqLworICAgICAgICAgICAgZWxzZQogICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgIHZjcHVfcGF1c2Uodik7CiAgICAgICAgICAgICAgICAgdi0+ YXJjaC54Y3IwID0gX3hjcjA7CkBAIC0xMTY5LDggKzExNzcsNiBAQCBsb25nIGFyY2hfZG9fZG9t Y3RsKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmMtPnNpemUgLSBQ Vl9YU0FWRV9IRFJfU0laRSk7CiAgICAgICAgICAgICAgICAgdmNwdV91bnBhdXNlKHYpOwogICAg ICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJldCA9IC1FSU5W QUw7CiAKICAgICAgICAgICAgIHhmcmVlKHJlY2VpdmVfYnVmKTsKICAgICAgICAgfQpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5k ZXggY2E5NjY0My4uN2JhZDg0NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYwor KysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC0xMjY1LDggKzEyNjUsOCBAQCBzdGF0aWMg aW50IGh2bV9sb2FkX2NwdV94c2F2ZV9zdGF0ZXMoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFp bl9jb250ZXh0X3QgKmgpCiAgICAgaW50IGVycjsKICAgICBzdHJ1Y3QgdmNwdSAqdjsKICAgICBz dHJ1Y3QgaHZtX2h3X2NwdV94c2F2ZSAqY3R4dDsKLSAgICBzdHJ1Y3QgaHZtX3NhdmVfZGVzY3Jp cHRvciAqZGVzYzsKLSAgICB1bnNpZ25lZCBpbnQgaSwgZGVzY19zdGFydDsKKyAgICBjb25zdCBz dHJ1Y3QgaHZtX3NhdmVfZGVzY3JpcHRvciAqZGVzYzsKKyAgICB1bnNpZ25lZCBpbnQgaSwgZGVz Y19zdGFydCwgZGVzY19sZW5ndGg7CiAKICAgICAvKiBXaGljaCB2Y3B1IGlzIHRoaXM/ICovCiAg ICAgdmNwdWlkID0gaHZtX2xvYWRfaW5zdGFuY2UoaCk7CkBAIC0xMzI1LDcgKzEzMjUsOCBAQCBz dGF0aWMgaW50IGh2bV9sb2FkX2NwdV94c2F2ZV9zdGF0ZXMoc3RydWN0IGRvbWFpbiAqZCwgaHZt X2RvbWFpbl9jb250ZXh0X3QgKmgpCiAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogICAgIHNp emUgPSBIVk1fQ1BVX1hTQVZFX1NJWkUoY3R4dC0+eGNyMF9hY2N1bSk7Ci0gICAgaWYgKCBkZXNj LT5sZW5ndGggPiBzaXplICkKKyAgICBkZXNjX2xlbmd0aCA9IGRlc2MtPmxlbmd0aDsKKyAgICBp ZiAoIGRlc2NfbGVuZ3RoID4gc2l6ZSApCiAgICAgewogICAgICAgICAvKgogICAgICAgICAgKiBY ZW4gNC4zLjAsIDQuMi4zIGFuZCBvbGRlciB1c2VkIHRvIHNlbmQgbG9uZ2VyLXRoYW4tbmVlZGVk CkBAIC0xMzQ1LDYgKzEzNDYsMjMgQEAgc3RhdGljIGludCBodm1fbG9hZF9jcHVfeHNhdmVfc3Rh dGVzKHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQogICAgICAgICBw cmludGsoWEVOTE9HX0dfV0FSTklORwogICAgICAgICAgICAgICAgIkhWTSVkLiV1IHJlc3RvcmUg bWlzbWF0Y2g6IHhzYXZlIGxlbmd0aCAlI3ggPiAlI3hcbiIsCiAgICAgICAgICAgICAgICBkLT5k b21haW5faWQsIHZjcHVpZCwgZGVzYy0+bGVuZ3RoLCBzaXplKTsKKyAgICAgICAgLyogUmV3aW5k IGRlc2NfbGVuZ3RoIHRvIGlnbm9yZSB0aGUgZXh0cmFuZW91cyB6ZXJvcy4gKi8KKyAgICAgICAg ZGVzY19sZW5ndGggPSBzaXplOworICAgIH0KKworICAgIGlmICggeHNhdmVfYXJlYV9jb21wcmVz c2VkKChjb25zdCB2b2lkICopJmN0eHQtPnNhdmVfYXJlYSkgKQorICAgIHsKKyAgICAgICAgcHJp bnRrKFhFTkxPR19HX1dBUk5JTkcKKyAgICAgICAgICAgICAgICJIVk0lZC4ldSByZXN0b3JlOiBj b21wcmVzc2VkIHhzYXZlIHN0YXRlIG5vdCBzdXBwb3J0ZWRcbiIsCisgICAgICAgICAgICAgICBk LT5kb21haW5faWQsIHZjcHVpZCk7CisgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKyAgICB9 CisgICAgZWxzZSBpZiAoIGRlc2NfbGVuZ3RoICE9IHNpemUgKQorICAgIHsKKyAgICAgICAgcHJp bnRrKFhFTkxPR19HX1dBUk5JTkcKKyAgICAgICAgICAgICAgICJIVk0lZC4ldSByZXN0b3JlIG1p c21hdGNoOiB4c2F2ZSBsZW5ndGggJSN4ICE9ICUjeFxuIiwKKyAgICAgICAgICAgICAgIGQtPmRv bWFpbl9pZCwgdmNwdWlkLCBkZXNjX2xlbmd0aCwgc2l6ZSk7CisgICAgICAgIHJldHVybiAtRUlO VkFMOwogICAgIH0KICAgICAvKiBDaGVja2luZyBmaW5pc2hlZCAqLwogCkBAIC0xMzUzLDggKzEz NzEsNyBAQCBzdGF0aWMgaW50IGh2bV9sb2FkX2NwdV94c2F2ZV9zdGF0ZXMoc3RydWN0IGRvbWFp biAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCiAgICAgaWYgKCBjdHh0LT54Y3IwX2FjY3Vt ICYgWFNUQVRFX05PTkxBWlkgKQogICAgICAgICB2LT5hcmNoLm5vbmxhenlfeHN0YXRlX3VzZWQg PSAxOwogICAgIGNvbXByZXNzX3hzYXZlX3N0YXRlcyh2LCAmY3R4dC0+c2F2ZV9hcmVhLAotICAg ICAgICAgICAgICAgICAgICAgICAgICBtaW4oZGVzYy0+bGVuZ3RoLCBzaXplKSAtCi0gICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHN0cnVjdCBodm1faHdfY3B1X3hzYXZlLHNhdmVf YXJlYSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplIC0gb2Zmc2V0b2Yoc3RydWN0 IGh2bV9od19jcHVfeHNhdmUsIHNhdmVfYXJlYSkpOwogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYveHN0YXRlLmMgYi94ZW4vYXJjaC94ODYveHN0YXRlLmMKaW5k ZXggMjY4NDE5MC4uZWQ5YzRjNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3hzdGF0ZS5jCisr KyBiL3hlbi9hcmNoL3g4Ni94c3RhdGUuYwpAQCAtODYsMTIgKzg2LDYgQEAgdWludDY0X3QgZ2V0 X21zcl94c3Modm9pZCkKICAgICByZXR1cm4gdGhpc19jcHUoeHNzKTsKIH0KIAotc3RhdGljIGJv b2xfdCB4c2F2ZV9hcmVhX2NvbXByZXNzZWQoY29uc3Qgc3RydWN0IHhzYXZlX3N0cnVjdCAqeHNh dmVfYXJlYSkKLXsKLSAgICAgcmV0dXJuIHhzYXZlX2FyZWEgJiYgKHhzYXZlX2FyZWEtPnhzYXZl X2hkci54Y29tcF9idgotICAgICAgICAgICAgICAgICAgICAgICAgICAgJiBYU1RBVEVfQ09NUEFD VElPTl9FTkFCTEVEKTsKLX0KLQogc3RhdGljIGludCBzZXR1cF94c3RhdGVfZmVhdHVyZXMoYm9v bF90IGJzcCkKIHsKICAgICB1bnNpZ25lZCBpbnQgbGVhZiwgZWF4LCBlYngsIGVjeCwgZWR4Owpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni94c3RhdGUuaCBiL3hlbi9pbmNsdWRlL2Fz bS14ODYveHN0YXRlLmgKaW5kZXggNTFhOWVkNC4uNDViMmE5YiAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni94c3RhdGUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3hzdGF0ZS5o CkBAIC0xMzEsNCArMTMxLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbF90IHhzdGF0ZV9hbGwoY29u c3Qgc3RydWN0IHZjcHUgKnYpCiAgICAgICAgICAgICh2LT5hcmNoLnhjcjBfYWNjdW0gJiBYU1RB VEVfTEFaWSAmIH5YU1RBVEVfRlBfU1NFKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIF9fbm9u bnVsbCgxKQoreHNhdmVfYXJlYV9jb21wcmVzc2VkKGNvbnN0IHN0cnVjdCB4c2F2ZV9zdHJ1Y3Qg KnhzYXZlX2FyZWEpCit7CisgICAgcmV0dXJuIHhzYXZlX2FyZWEtPnhzYXZlX2hkci54Y29tcF9i diAmIFhTVEFURV9DT01QQUNUSU9OX0VOQUJMRUQ7Cit9CisKICNlbmRpZiAvKiBfX0FTTV9YU1RB VEVfSCAqLwotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK