From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v5 21/21] tools/libxc: Calculate xstate cpuid leaf from guest information Date: Thu, 7 Apr 2016 12:57:26 +0100 Message-ID: <1460030246-30153-22-git-send-email-andrew.cooper3@citrix.com> References: <1460030246-30153-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: <1460030246-30153-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 , Wei Liu , 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 ZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCkNDOiBXZWkgTGl1IDx3 ZWkubGl1MkBjaXRyaXguY29tPgpDQzogSWFuIEphY2tzb24gPElhbi5KYWNrc29uQGV1LmNpdHJp eC5jb20+Cgp2MzoKICogUmVpbnRyb2R1Y2UgTVBYIGFkanVzdG1lbnQgKHRoaXMgc2VyaWVzIGhh cyBiZWVuIGluIGRldmVsb3BtZW50IHNpbmNlCiAgIGJlZm9yZSB0aGUgaW50cm9kdWN0aW9uIG9m IE1QWCB1cHN0cmVhbSwgYW5kIGl0IGdvdCBsb3N0IGluIGEgcmViYXNlKS4KdjQ6CiAqIEZvbGQg ZnVydGhlciBpbXByb3ZlbWVudHMgZnJvbSBKYW4uCnY1OgogKiBSZWludHJvZHVjZSBQS1JVLCAo YWdhaW4sIGxvc3QgZHVlIHRvIHJlYmFzaW5nKS4KICogUmV3cml0ZSB0aGUgY29tbWl0IG1lc3Nh Z2UgYW5kIGNvbW1lbnRzIHRvIHRyeSBhbmQgYmV0dGVyIGV4cGxhaW4gd2h5IEkgYW0KICAgZGVs aWJlcmF0bHkgcmVtb3ZpbmcgaG9zdC1zcGVjaWZpYyBpbmZvcm1hdGlvbiBmcm9tIHRoZSB4c3Rh dGUgY2FsY3VsYXRpb24uCiAqIFJlaW50cm9kdWNlIDB4RkZGRkZGRkYgbWFza3MgZm9yIEVBWCwg dG8gYXZvaWQgQ292ZXJpdHkgY29tcGxhaW5pbmcgYWJvdXQKICAgdHJ1bmNhdGlvbiBvbiBhc3Np Z25tZW50LgotLS0KIHRvb2xzL2xpYnhjL3hjX2NwdWlkX3g4Ni5jIHwgODkgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDc1IGlu c2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hj X2NwdWlkX3g4Ni5jIGIvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKaW5kZXggZmM3ZTIwYS4u NmQxNDkwNCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKKysrIGIvdG9v bHMvbGlieGMveGNfY3B1aWRfeDg2LmMKQEAgLTM5OCw1NCArMzk4LDExNSBAQCBzdGF0aWMgdm9p ZCBpbnRlbF94Y19jcHVpZF9wb2xpY3koeGNfaW50ZXJmYWNlICp4Y2gsCiAgICAgfQogfQogCisv KiBYU1RBVEUgYml0cyBpbiBYQ1IwLiAqLworI2RlZmluZSBYODZfWENSMF9YODcgICAgKDFVTEwg PDwgIDApCisjZGVmaW5lIFg4Nl9YQ1IwX1NTRSAgICAoMVVMTCA8PCAgMSkKKyNkZWZpbmUgWDg2 X1hDUjBfQVZYICAgICgxVUxMIDw8ICAyKQorI2RlZmluZSBYODZfWENSMF9CTkRSRUcgKDFVTEwg PDwgIDMpCisjZGVmaW5lIFg4Nl9YQ1IwX0JORENTUiAoMVVMTCA8PCAgNCkKKyNkZWZpbmUgWDg2 X1hDUjBfUEtSVSAgICgxVUxMIDw8ICA5KQorI2RlZmluZSBYODZfWENSMF9MV1AgICAgKDFVTEwg PDwgNjIpCisKKyNkZWZpbmUgWDg2X1hTU19NQVNLICAgICgwKSAvKiBObyBYU1Mgc3RhdGVzIHN1 cHBvcnRlZCB5ZXQuICovCisKKy8qIFBlci1jb21wb25lbnQgc3VibGVhZiBmbGFncy4gKi8KKyNk ZWZpbmUgWFNUQVRFX1hTUyAgICAgICgxVUxMIDw8ICAwKQorI2RlZmluZSBYU1RBVEVfQUxJR042 NCAgKDFVTEwgPDwgIDEpCisKIC8qIENvbmZpZ3VyZSBleHRlbmRlZCBzdGF0ZSBlbnVtZXJhdGlv biBsZWF2ZXMgKDB4MDAwMDAwMEQgZm9yIHhzYXZlKSAqLwogc3RhdGljIHZvaWQgeGNfY3B1aWRf Y29uZmlnX3hzYXZlKHhjX2ludGVyZmFjZSAqeGNoLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVpZF9kb21haW5faW5mbyAqaW5mbywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgKmlucHV0LCB1bnNp Z25lZCBpbnQgKnJlZ3MpCiB7Ci0gICAgaWYgKCBpbmZvLT54ZmVhdHVyZV9tYXNrID09IDAgKQor ICAgIHVpbnQ2NF90IGd1ZXN0X3hmZWF0dXJlX21hc2s7CisKKyAgICBpZiAoIGluZm8tPnhmZWF0 dXJlX21hc2sgPT0gMCB8fAorICAgICAgICAgIXRlc3RfYml0KFg4Nl9GRUFUVVJFX1hTQVZFLCBp bmZvLT5mZWF0dXJlc2V0KSApCiAgICAgewogICAgICAgICByZWdzWzBdID0gcmVnc1sxXSA9IHJl Z3NbMl0gPSByZWdzWzNdID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGd1ZXN0 X3hmZWF0dXJlX21hc2sgPSBYODZfWENSMF9TU0UgfCBYODZfWENSMF9YODc7CisKKyAgICBpZiAo IHRlc3RfYml0KFg4Nl9GRUFUVVJFX0FWWCwgaW5mby0+ZmVhdHVyZXNldCkgKQorICAgICAgICBn dWVzdF94ZmVhdHVyZV9tYXNrIHw9IFg4Nl9YQ1IwX0FWWDsKKworICAgIGlmICggdGVzdF9iaXQo WDg2X0ZFQVRVUkVfTVBYLCBpbmZvLT5mZWF0dXJlc2V0KSApCisgICAgICAgIGd1ZXN0X3hmZWF0 dXJlX21hc2sgfD0gWDg2X1hDUjBfQk5EUkVHIHwgWDg2X1hDUjBfQk5EQ1NSOworCisgICAgaWYg KCB0ZXN0X2JpdChYODZfRkVBVFVSRV9QS1UsIGluZm8tPmZlYXR1cmVzZXQpICkKKyAgICAgICAg Z3Vlc3RfeGZlYXR1cmVfbWFzayB8PSBYODZfWENSMF9QS1JVOworCisgICAgaWYgKCB0ZXN0X2Jp dChYODZfRkVBVFVSRV9MV1AsIGluZm8tPmZlYXR1cmVzZXQpICkKKyAgICAgICAgZ3Vlc3RfeGZl YXR1cmVfbWFzayB8PSBYODZfWENSMF9MV1A7CisKKyAgICAvKgorICAgICAqIEluIHRoZSBjb21t b24gY2FzZSwgdGhlIHRvb2xzdGFjayB3aWxsIGhhdmUgcXVlcmllZCBYZW4gZm9yIHRoZSBtYXhp bXVtCisgICAgICogYXZhaWxhYmxlIGZlYXR1cmVzZXQsIGFuZCBndWVzdF94ZmVhdHVyZV9tYXNr IHNob3VsZCBub3QgYWJsZSB0byBiZQorICAgICAqIGNhbGN1bGF0ZWQgYXMgYmVpbmcgZ3JlYXRl ciB0aGFuIHRoZSBob3N0IGxpbWl0LCBpbmZvLT54ZmVhdHVyZV9tYXNrLgorICAgICAqCisgICAg ICogTm90aGluZyBjdXJyZW50bHkgcHJldmVudHMgYSB0b29sc3RhY2sgKG9yIGFuIG9wdGltaXN0 aWMgdXNlcikgZnJvbQorICAgICAqIHB1cnBvc2VmdWxseSB0cnlpbmcgdG8gc2VsZWN0IGEgbGFy Z2VyLXRoYW4tYXZhaWxhYmxlIHhzdGF0ZSBzZXQuCisgICAgICoKKyAgICAgKiBUbyBhdm9pZCB0 aGUgZG9tYWluIGR5aW5nIHdpdGggYW4gdW5leHBlY3RlZCBmYXVsdCwgY2xhbXAgdGhlCisgICAg ICogY2FsY3VsYXRlZCBtYXNrIHRvIHRoZSBob3N0IGxpbWl0LiAgRnV0dXJlIGRldmVsb3BtZW50 IHdvcmsgd2lsbCByZW1vdmUKKyAgICAgKiB0aGlzIHBvc3NpYmlsaXR5LCB3aGVuIFhlbiBmdWxs eSBhdWRpdHMgdGhlIGNvbXBsZXRlIGNwdWlkIHBvbGN5IHNldAorICAgICAqIGZvciBhIGRvbWFp bi4KKyAgICAgKi8KKyAgICBndWVzdF94ZmVhdHVyZV9tYXNrICY9IGluZm8tPnhmZWF0dXJlX21h c2s7CisKICAgICBzd2l0Y2ggKCBpbnB1dFsxXSApCiAgICAgewotICAgIGNhc2UgMDogCisgICAg Y2FzZSAwOgogICAgICAgICAvKiBFQVg6IGxvdyAzMmJpdHMgb2YgeGZlYXR1cmVfZW5hYmxlZF9t YXNrICovCi0gICAgICAgIHJlZ3NbMF0gPSBpbmZvLT54ZmVhdHVyZV9tYXNrICYgMHhGRkZGRkZG RjsKKyAgICAgICAgcmVnc1swXSA9IGd1ZXN0X3hmZWF0dXJlX21hc2sgJiAweEZGRkZGRkZGOwog ICAgICAgICAvKiBFRFg6IGhpZ2ggMzJiaXRzIG9mIHhmZWF0dXJlX2VuYWJsZWRfbWFzayAqLwot ICAgICAgICByZWdzWzNdID0gKGluZm8tPnhmZWF0dXJlX21hc2sgPj4gMzIpICYgMHhGRkZGRkZG RjsKKyAgICAgICAgcmVnc1szXSA9IGd1ZXN0X3hmZWF0dXJlX21hc2sgPj4gMzI7CiAgICAgICAg IC8qIEVDWDogbWF4IHNpemUgcmVxdWlyZWQgYnkgYWxsIEhXIGZlYXR1cmVzICovCiAgICAgICAg IHsKICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfaW5wdXRbMl0gPSB7MHhkLCAweDB9LCBfcmVn c1s0XTsKICAgICAgICAgICAgIHJlZ3NbMl0gPSAwOwotICAgICAgICAgICAgZm9yICggX2lucHV0 WzFdID0gMjsgX2lucHV0WzFdIDwgNjQ7IF9pbnB1dFsxXSsrICkKKyAgICAgICAgICAgIGZvciAo IF9pbnB1dFsxXSA9IDI7IF9pbnB1dFsxXSA8PSA2MjsgX2lucHV0WzFdKysgKQogICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgIGNwdWlkKF9pbnB1dCwgX3JlZ3MpOwogICAgICAgICAgICAg ICAgIGlmICggKF9yZWdzWzBdICsgX3JlZ3NbMV0pID4gcmVnc1syXSApCiAgICAgICAgICAgICAg ICAgICAgIHJlZ3NbMl0gPSBfcmVnc1swXSArIF9yZWdzWzFdOwogICAgICAgICAgICAgfQogICAg ICAgICB9Ci0gICAgICAgIC8qIEVCWDogbWF4IHNpemUgcmVxdWlyZWQgYnkgZW5hYmxlZCBmZWF0 dXJlcy4gCi0gICAgICAgICAqIFRoaXMgcmVnaXN0ZXIgY29udGFpbnMgYSBkeW5hbWljIHZhbHVl LCB3aGljaCB2YXJpZXMgd2hlbiBhIGd1ZXN0IAotICAgICAgICAgKiBlbmFibGVzIG9yIGRpc2Fi bGVzIFhTVEFURSBmZWF0dXJlcyAodmlhIHhzZXRidikuIFRoZSBkZWZhdWx0IHNpemUgCi0gICAg ICAgICAqIGFmdGVyIHJlc2V0IGlzIDU3Ni4gKi8gCisgICAgICAgIC8qIEVCWDogbWF4IHNpemUg cmVxdWlyZWQgYnkgZW5hYmxlZCBmZWF0dXJlcy4KKyAgICAgICAgICogVGhpcyByZWdpc3RlciBj b250YWlucyBhIGR5bmFtaWMgdmFsdWUsIHdoaWNoIHZhcmllcyB3aGVuIGEgZ3Vlc3QKKyAgICAg ICAgICogZW5hYmxlcyBvciBkaXNhYmxlcyBYU1RBVEUgZmVhdHVyZXMgKHZpYSB4c2V0YnYpLiBU aGUgZGVmYXVsdCBzaXplCisgICAgICAgICAqIGFmdGVyIHJlc2V0IGlzIDU3Ni4gKi8KICAgICAg ICAgcmVnc1sxXSA9IDUxMiArIDY0OyAvKiBGUC9TU0UgKyBYU0FWRS5IRUFERVIgKi8KICAgICAg ICAgYnJlYWs7CisKICAgICBjYXNlIDE6IC8qIGxlYWYgMSAqLwogICAgICAgICByZWdzWzBdID0g aW5mby0+ZmVhdHVyZXNldFtmZWF0dXJld29yZF9vZihYODZfRkVBVFVSRV9YU0FWRU9QVCldOwot ICAgICAgICByZWdzWzJdICY9IGluZm8tPnhmZWF0dXJlX21hc2s7Ci0gICAgICAgIHJlZ3NbM10g PSAwOworICAgICAgICByZWdzWzFdID0gMDsKKworICAgICAgICBpZiAoIHRlc3RfYml0KFg4Nl9G RUFUVVJFX1hTQVZFUywgaW5mby0+ZmVhdHVyZXNldCkgKQorICAgICAgICB7CisgICAgICAgICAg ICByZWdzWzJdID0gZ3Vlc3RfeGZlYXR1cmVfbWFzayAmIFg4Nl9YU1NfTUFTSyAmIDB4RkZGRkZG RkY7CisgICAgICAgICAgICByZWdzWzNdID0gKGd1ZXN0X3hmZWF0dXJlX21hc2sgPj4gMzIpICYg WDg2X1hTU19NQVNLOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlZ3Nb Ml0gPSByZWdzWzNdID0gMDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAyIC4uLiA2MzogLyog c3ViLWxlYXZlcyAqLwotICAgICAgICBpZiAoICEoaW5mby0+eGZlYXR1cmVfbWFzayAmICgxVUxM IDw8IGlucHV0WzFdKSkgKQorCisgICAgY2FzZSAyIC4uLiA2MjogLyogcGVyLWNvbXBvbmVudCBz dWItbGVhdmVzICovCisgICAgICAgIGlmICggIShndWVzdF94ZmVhdHVyZV9tYXNrICYgKDFVTEwg PDwgaW5wdXRbMV0pKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHJlZ3NbMF0gPSByZWdzWzFd ID0gcmVnc1syXSA9IHJlZ3NbM10gPSAwOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K ICAgICAgICAgLyogRG9uJ3QgdG91Y2ggRUFYLCBFQlguIEFsc28gY2xlYW51cCBFQ1ggYW5kIEVE WCAqLwotICAgICAgICByZWdzWzJdID0gcmVnc1szXSA9IDA7CisgICAgICAgIHJlZ3NbMl0gJj0g WFNUQVRFX1hTUyB8IFhTVEFURV9BTElHTjY0OworICAgICAgICByZWdzWzNdID0gMDsKKyAgICAg ICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICByZWdzWzBdID0gcmVnc1sxXSA9IHJl Z3NbMl0gPSByZWdzWzNdID0gMDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQotLSAKMi4xLjQK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=