From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v6 21/21] tools/libxc: Calculate xstate cpuid leaf from guest information Date: Fri, 8 Apr 2016 21:31:57 +0100 Message-ID: <1460147517-11706-22-git-send-email-andrew.cooper3@citrix.com> References: <1460147517-11706-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: <1460147517-11706-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 , Ian Jackson , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIGV4aXN0aW5nIGxvZ2ljIGlzIGJyb2tlbiBmb3IgaGV0ZXJvZ2VuZW91cyBtaWdyYXRpb24u ICBCeSBhbHdheXMKYWR2ZXJ0aXNpbmcgdGhlIGhvc3QgbWF4aW11bSB4c3RhdGUsIGEgbWlncmF0 aW9uIHRvIGEgbGVzcyBjYXBhYmxlIGhvc3QgYWx3YXlzCmZhaWxzIGFzIFhlbiBjYW5ub3QgYWNj b21vZGF0ZSB0aGUgeGNyMF9hY2N1bSBpbiB0aGUgbWlncmF0aW9uIHN0cmVhbS4KCkJ5IGNhbGN1 bGF0aW5nIHhzdGF0ZSBmcm9tIHRoZSBmZWF0dXJlIGluZm9ybWF0aW9uICh3aGljaCBhIG11bHRp LWhvc3QKdG9vbHN0YWNrIHdpbGwgaGF2ZSBsZXZlbGxlZCBhcHByb3ByaWF0ZWx5KSwgdGhlIGd1 ZXN0IHdpbGwgaGF2ZSB0aGUgY3VycmVudApob3N0cyBtYXhpbXVtIHhzdGF0ZSBhZHZlcnRpc2Vk LCBhbGxvd2luZyBmb3IgY29ycmVjdCBtaWdyYXRpb24gdG8gbGVzcwpjYXBhYmxlIGhvc3RzLgoK SW4gYWRkaXRpb24sIHNvbWUgZnVydGhlciBpbXByb3ZlbWVudHMgYW5kIGNvcnJlY3Rpb25zOgog LSBkb24ndCBkaXNjYXJkIHRoZSBrbm93biBmbGFncyBpbiBzdWItbGVhdmVzIDIuLjYzIEVDWAog LSB6YXAgc3ViLWxlYXZlcyBiZXlvbmQgNjIKIC0gemFwIGFsbCBiaXRzIGluIGxlYWYgMSwgRUJY L0VDWC4gIE5vIFhTUyBmZWF0dXJlcyBhcmUgY3VycmVudGx5IHN1cHBvcnRlZC4KClNpZ25lZC1v ZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClNpZ25lZC1v ZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQWNrZWQtYnk6IFdlaSBMaXUg PHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQpDQzogSWFuIEphY2tzb24gPElhbi5KYWNrc29uQGV1 LmNpdHJpeC5jb20+Cgp2MzoKICogUmVpbnRyb2R1Y2UgTVBYIGFkanVzdG1lbnQgKHRoaXMgc2Vy aWVzIGhhcyBiZWVuIGluIGRldmVsb3BtZW50IHNpbmNlCiAgIGJlZm9yZSB0aGUgaW50cm9kdWN0 aW9uIG9mIE1QWCB1cHN0cmVhbSwgYW5kIGl0IGdvdCBsb3N0IGluIGEgcmViYXNlKS4KdjQ6CiAq IEZvbGQgZnVydGhlciBpbXByb3ZlbWVudHMgZnJvbSBKYW4uCnY1OgogKiBSZWludHJvZHVjZSBQ S1JVLCAoYWdhaW4sIGxvc3QgZHVlIHRvIHJlYmFzaW5nKS4KICogUmV3cml0ZSB0aGUgY29tbWl0 IG1lc3NhZ2UgYW5kIGNvbW1lbnRzIHRvIHRyeSBhbmQgYmV0dGVyIGV4cGxhaW4gd2h5IEkgYW0K ICAgZGVsaWJlcmF0bHkgcmVtb3ZpbmcgaG9zdC1zcGVjaWZpYyBpbmZvcm1hdGlvbiBmcm9tIHRo ZSB4c3RhdGUgY2FsY3VsYXRpb24uCiAqIFJlaW50cm9kdWNlIDB4RkZGRkZGRkYgbWFza3MgZm9y IEVBWCwgdG8gYXZvaWQgQ292ZXJpdHkgY29tcGxhaW5pbmcgYWJvdXQKICAgdHJ1bmNhdGlvbiBv biBhc3NpZ25tZW50LgotLS0KIHRvb2xzL2xpYnhjL3hjX2NwdWlkX3g4Ni5jIHwgODkgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDc1IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xp YnhjL3hjX2NwdWlkX3g4Ni5jIGIvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKaW5kZXggZmM3 ZTIwYS4uNmQxNDkwNCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKKysr IGIvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKQEAgLTM5OCw1NCArMzk4LDExNSBAQCBzdGF0 aWMgdm9pZCBpbnRlbF94Y19jcHVpZF9wb2xpY3koeGNfaW50ZXJmYWNlICp4Y2gsCiAgICAgfQog fQogCisvKiBYU1RBVEUgYml0cyBpbiBYQ1IwLiAqLworI2RlZmluZSBYODZfWENSMF9YODcgICAg KDFVTEwgPDwgIDApCisjZGVmaW5lIFg4Nl9YQ1IwX1NTRSAgICAoMVVMTCA8PCAgMSkKKyNkZWZp bmUgWDg2X1hDUjBfQVZYICAgICgxVUxMIDw8ICAyKQorI2RlZmluZSBYODZfWENSMF9CTkRSRUcg KDFVTEwgPDwgIDMpCisjZGVmaW5lIFg4Nl9YQ1IwX0JORENTUiAoMVVMTCA8PCAgNCkKKyNkZWZp bmUgWDg2X1hDUjBfUEtSVSAgICgxVUxMIDw8ICA5KQorI2RlZmluZSBYODZfWENSMF9MV1AgICAg KDFVTEwgPDwgNjIpCisKKyNkZWZpbmUgWDg2X1hTU19NQVNLICAgICgwKSAvKiBObyBYU1Mgc3Rh dGVzIHN1cHBvcnRlZCB5ZXQuICovCisKKy8qIFBlci1jb21wb25lbnQgc3VibGVhZiBmbGFncy4g Ki8KKyNkZWZpbmUgWFNUQVRFX1hTUyAgICAgICgxVUxMIDw8ICAwKQorI2RlZmluZSBYU1RBVEVf QUxJR042NCAgKDFVTEwgPDwgIDEpCisKIC8qIENvbmZpZ3VyZSBleHRlbmRlZCBzdGF0ZSBlbnVt ZXJhdGlvbiBsZWF2ZXMgKDB4MDAwMDAwMEQgZm9yIHhzYXZlKSAqLwogc3RhdGljIHZvaWQgeGNf Y3B1aWRfY29uZmlnX3hzYXZlKHhjX2ludGVyZmFjZSAqeGNoLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVpZF9kb21haW5faW5mbyAqaW5mbywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgKmlucHV0 LCB1bnNpZ25lZCBpbnQgKnJlZ3MpCiB7Ci0gICAgaWYgKCBpbmZvLT54ZmVhdHVyZV9tYXNrID09 IDAgKQorICAgIHVpbnQ2NF90IGd1ZXN0X3hmZWF0dXJlX21hc2s7CisKKyAgICBpZiAoIGluZm8t PnhmZWF0dXJlX21hc2sgPT0gMCB8fAorICAgICAgICAgIXRlc3RfYml0KFg4Nl9GRUFUVVJFX1hT QVZFLCBpbmZvLT5mZWF0dXJlc2V0KSApCiAgICAgewogICAgICAgICByZWdzWzBdID0gcmVnc1sx XSA9IHJlZ3NbMl0gPSByZWdzWzNdID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg IGd1ZXN0X3hmZWF0dXJlX21hc2sgPSBYODZfWENSMF9TU0UgfCBYODZfWENSMF9YODc7CisKKyAg ICBpZiAoIHRlc3RfYml0KFg4Nl9GRUFUVVJFX0FWWCwgaW5mby0+ZmVhdHVyZXNldCkgKQorICAg ICAgICBndWVzdF94ZmVhdHVyZV9tYXNrIHw9IFg4Nl9YQ1IwX0FWWDsKKworICAgIGlmICggdGVz dF9iaXQoWDg2X0ZFQVRVUkVfTVBYLCBpbmZvLT5mZWF0dXJlc2V0KSApCisgICAgICAgIGd1ZXN0 X3hmZWF0dXJlX21hc2sgfD0gWDg2X1hDUjBfQk5EUkVHIHwgWDg2X1hDUjBfQk5EQ1NSOworCisg ICAgaWYgKCB0ZXN0X2JpdChYODZfRkVBVFVSRV9QS1UsIGluZm8tPmZlYXR1cmVzZXQpICkKKyAg ICAgICAgZ3Vlc3RfeGZlYXR1cmVfbWFzayB8PSBYODZfWENSMF9QS1JVOworCisgICAgaWYgKCB0 ZXN0X2JpdChYODZfRkVBVFVSRV9MV1AsIGluZm8tPmZlYXR1cmVzZXQpICkKKyAgICAgICAgZ3Vl c3RfeGZlYXR1cmVfbWFzayB8PSBYODZfWENSMF9MV1A7CisKKyAgICAvKgorICAgICAqIEluIHRo ZSBjb21tb24gY2FzZSwgdGhlIHRvb2xzdGFjayB3aWxsIGhhdmUgcXVlcmllZCBYZW4gZm9yIHRo ZSBtYXhpbXVtCisgICAgICogYXZhaWxhYmxlIGZlYXR1cmVzZXQsIGFuZCBndWVzdF94ZmVhdHVy ZV9tYXNrIHNob3VsZCBub3QgYWJsZSB0byBiZQorICAgICAqIGNhbGN1bGF0ZWQgYXMgYmVpbmcg Z3JlYXRlciB0aGFuIHRoZSBob3N0IGxpbWl0LCBpbmZvLT54ZmVhdHVyZV9tYXNrLgorICAgICAq CisgICAgICogTm90aGluZyBjdXJyZW50bHkgcHJldmVudHMgYSB0b29sc3RhY2sgKG9yIGFuIG9w dGltaXN0aWMgdXNlcikgZnJvbQorICAgICAqIHB1cnBvc2VmdWxseSB0cnlpbmcgdG8gc2VsZWN0 IGEgbGFyZ2VyLXRoYW4tYXZhaWxhYmxlIHhzdGF0ZSBzZXQuCisgICAgICoKKyAgICAgKiBUbyBh dm9pZCB0aGUgZG9tYWluIGR5aW5nIHdpdGggYW4gdW5leHBlY3RlZCBmYXVsdCwgY2xhbXAgdGhl CisgICAgICogY2FsY3VsYXRlZCBtYXNrIHRvIHRoZSBob3N0IGxpbWl0LiAgRnV0dXJlIGRldmVs b3BtZW50IHdvcmsgd2lsbCByZW1vdmUKKyAgICAgKiB0aGlzIHBvc3NpYmlsaXR5LCB3aGVuIFhl biBmdWxseSBhdWRpdHMgdGhlIGNvbXBsZXRlIGNwdWlkIHBvbGN5IHNldAorICAgICAqIGZvciBh IGRvbWFpbi4KKyAgICAgKi8KKyAgICBndWVzdF94ZmVhdHVyZV9tYXNrICY9IGluZm8tPnhmZWF0 dXJlX21hc2s7CisKICAgICBzd2l0Y2ggKCBpbnB1dFsxXSApCiAgICAgewotICAgIGNhc2UgMDog CisgICAgY2FzZSAwOgogICAgICAgICAvKiBFQVg6IGxvdyAzMmJpdHMgb2YgeGZlYXR1cmVfZW5h YmxlZF9tYXNrICovCi0gICAgICAgIHJlZ3NbMF0gPSBpbmZvLT54ZmVhdHVyZV9tYXNrICYgMHhG RkZGRkZGRjsKKyAgICAgICAgcmVnc1swXSA9IGd1ZXN0X3hmZWF0dXJlX21hc2sgJiAweEZGRkZG RkZGOwogICAgICAgICAvKiBFRFg6IGhpZ2ggMzJiaXRzIG9mIHhmZWF0dXJlX2VuYWJsZWRfbWFz ayAqLwotICAgICAgICByZWdzWzNdID0gKGluZm8tPnhmZWF0dXJlX21hc2sgPj4gMzIpICYgMHhG RkZGRkZGRjsKKyAgICAgICAgcmVnc1szXSA9IGd1ZXN0X3hmZWF0dXJlX21hc2sgPj4gMzI7CiAg ICAgICAgIC8qIEVDWDogbWF4IHNpemUgcmVxdWlyZWQgYnkgYWxsIEhXIGZlYXR1cmVzICovCiAg ICAgICAgIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfaW5wdXRbMl0gPSB7MHhkLCAweDB9 LCBfcmVnc1s0XTsKICAgICAgICAgICAgIHJlZ3NbMl0gPSAwOwotICAgICAgICAgICAgZm9yICgg X2lucHV0WzFdID0gMjsgX2lucHV0WzFdIDwgNjQ7IF9pbnB1dFsxXSsrICkKKyAgICAgICAgICAg IGZvciAoIF9pbnB1dFsxXSA9IDI7IF9pbnB1dFsxXSA8PSA2MjsgX2lucHV0WzFdKysgKQogICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgIGNwdWlkKF9pbnB1dCwgX3JlZ3MpOwogICAgICAg ICAgICAgICAgIGlmICggKF9yZWdzWzBdICsgX3JlZ3NbMV0pID4gcmVnc1syXSApCiAgICAgICAg ICAgICAgICAgICAgIHJlZ3NbMl0gPSBfcmVnc1swXSArIF9yZWdzWzFdOwogICAgICAgICAgICAg fQogICAgICAgICB9Ci0gICAgICAgIC8qIEVCWDogbWF4IHNpemUgcmVxdWlyZWQgYnkgZW5hYmxl ZCBmZWF0dXJlcy4gCi0gICAgICAgICAqIFRoaXMgcmVnaXN0ZXIgY29udGFpbnMgYSBkeW5hbWlj IHZhbHVlLCB3aGljaCB2YXJpZXMgd2hlbiBhIGd1ZXN0IAotICAgICAgICAgKiBlbmFibGVzIG9y IGRpc2FibGVzIFhTVEFURSBmZWF0dXJlcyAodmlhIHhzZXRidikuIFRoZSBkZWZhdWx0IHNpemUg Ci0gICAgICAgICAqIGFmdGVyIHJlc2V0IGlzIDU3Ni4gKi8gCisgICAgICAgIC8qIEVCWDogbWF4 IHNpemUgcmVxdWlyZWQgYnkgZW5hYmxlZCBmZWF0dXJlcy4KKyAgICAgICAgICogVGhpcyByZWdp c3RlciBjb250YWlucyBhIGR5bmFtaWMgdmFsdWUsIHdoaWNoIHZhcmllcyB3aGVuIGEgZ3Vlc3QK KyAgICAgICAgICogZW5hYmxlcyBvciBkaXNhYmxlcyBYU1RBVEUgZmVhdHVyZXMgKHZpYSB4c2V0 YnYpLiBUaGUgZGVmYXVsdCBzaXplCisgICAgICAgICAqIGFmdGVyIHJlc2V0IGlzIDU3Ni4gKi8K ICAgICAgICAgcmVnc1sxXSA9IDUxMiArIDY0OyAvKiBGUC9TU0UgKyBYU0FWRS5IRUFERVIgKi8K ICAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIDE6IC8qIGxlYWYgMSAqLwogICAgICAgICByZWdz WzBdID0gaW5mby0+ZmVhdHVyZXNldFtmZWF0dXJld29yZF9vZihYODZfRkVBVFVSRV9YU0FWRU9Q VCldOwotICAgICAgICByZWdzWzJdICY9IGluZm8tPnhmZWF0dXJlX21hc2s7Ci0gICAgICAgIHJl Z3NbM10gPSAwOworICAgICAgICByZWdzWzFdID0gMDsKKworICAgICAgICBpZiAoIHRlc3RfYml0 KFg4Nl9GRUFUVVJFX1hTQVZFUywgaW5mby0+ZmVhdHVyZXNldCkgKQorICAgICAgICB7CisgICAg ICAgICAgICByZWdzWzJdID0gZ3Vlc3RfeGZlYXR1cmVfbWFzayAmIFg4Nl9YU1NfTUFTSyAmIDB4 RkZGRkZGRkY7CisgICAgICAgICAgICByZWdzWzNdID0gKGd1ZXN0X3hmZWF0dXJlX21hc2sgPj4g MzIpICYgWDg2X1hTU19NQVNLOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg IHJlZ3NbMl0gPSByZWdzWzNdID0gMDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAyIC4uLiA2 MzogLyogc3ViLWxlYXZlcyAqLwotICAgICAgICBpZiAoICEoaW5mby0+eGZlYXR1cmVfbWFzayAm ICgxVUxMIDw8IGlucHV0WzFdKSkgKQorCisgICAgY2FzZSAyIC4uLiA2MjogLyogcGVyLWNvbXBv bmVudCBzdWItbGVhdmVzICovCisgICAgICAgIGlmICggIShndWVzdF94ZmVhdHVyZV9tYXNrICYg KDFVTEwgPDwgaW5wdXRbMV0pKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHJlZ3NbMF0gPSBy ZWdzWzFdID0gcmVnc1syXSA9IHJlZ3NbM10gPSAwOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgIH0KICAgICAgICAgLyogRG9uJ3QgdG91Y2ggRUFYLCBFQlguIEFsc28gY2xlYW51cCBFQ1gg YW5kIEVEWCAqLwotICAgICAgICByZWdzWzJdID0gcmVnc1szXSA9IDA7CisgICAgICAgIHJlZ3Nb Ml0gJj0gWFNUQVRFX1hTUyB8IFhTVEFURV9BTElHTjY0OworICAgICAgICByZWdzWzNdID0gMDsK KyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICByZWdzWzBdID0gcmVnc1sx XSA9IHJlZ3NbMl0gPSByZWdzWzNdID0gMDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQotLSAK Mi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=