From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 26/28] tools/libxc: Wire a featureset through to cpuid policy logic Date: Tue, 15 Mar 2016 15:35:22 +0000 Message-ID: <1458056124-8024-27-git-send-email-andrew.cooper3@citrix.com> References: <1458056124-8024-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: <1458056124-8024-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 List-Id: xen-devel@lists.xenproject.org TGF0ZXIgY2hhbmdlcyB3aWxsIGNhdXNlIHRoZSBjcHVpZCBnZW5lcmF0aW9uIGxvZ2ljIHRvIHNl ZWQgdGhlaXIgaW5mb3JtYXRpb24KZnJvbSBhIGZlYXR1cmVzZXQuICBUaGlzIHBhdGNoIGFkZHMg dGhlIGluZnJhc3RydWN0dXJlIHRvIHNwZWNpZnkgYQpmZWF0dXJlc2V0LCBhbmQgd2lsbCBvYnRh aW4gdGhlIGFwcHJvcHJpYXRlIGRlZmF1bHQgZnJvbSBYZW4gaWYgb21pdHRlZC4KClNpZ25lZC1v ZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkFja2VkLWJ5 OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KQ0M6IElhbiBKYWNrc29uIDxJYW4u SmFja3NvbkBldS5jaXRyaXguY29tPgoKdjI6CiAqIE1vZGlmeSBleGlzdGluZyBjYWxsIHJhdGhl ciB0aGFuIGludHJvZHVjaW5nIGEgbmV3IG9uZS4KICogRml4IHVwIGluLXRyZWUgY2FsbHNpdGVz LgotLS0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oICAgICAgIHwgIDQgKystCiB0b29s cy9saWJ4Yy94Y19jcHVpZF94ODYuYyAgICAgICAgICB8IDY5ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2NwdWlkLmMgICAgICAgICAgIHwg IDIgKy0KIHRvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybF9zdHVicy5jIHwgIDIgKy0KIHRvb2xz L3B5dGhvbi94ZW4vbG93bGV2ZWwveGMveGMuYyAgIHwgIDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwg NjYgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGli eGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAppbmRl eCA2NmFjYmQxLi44NzJmZDA4IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0 cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMTg5Niw3ICsxODk2 LDkgQEAgaW50IHhjX2NwdWlkX3NldCh4Y19pbnRlcmZhY2UgKnhjaCwKICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqKmNvbmZpZywKICAgICAgICAgICAgICAgICAgY2hhciAqKmNvbmZpZ190 cmFuc2Zvcm1lZCk7CiBpbnQgeGNfY3B1aWRfYXBwbHlfcG9saWN5KHhjX2ludGVyZmFjZSAqeGNo LAotICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IGRvbWlkKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgZG9taWRfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgKmZlYXR1cmVzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBucl9mZWF0dXJlcyk7CiB2b2lkIHhjX2NwdWlkX3RvX3N0cihjb25zdCB1bnNpZ25lZCBp bnQgKnJlZ3MsCiAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqc3Rycyk7IC8qIHNvbWUgc3Ry c1tdIG1heSBiZSBOVUxMIGlmIEVOT01FTSAqLwogaW50IHhjX21jYV9vcCh4Y19pbnRlcmZhY2Ug KnhjaCwgc3RydWN0IHhlbl9tYyAqbWMpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfY3B1 aWRfeDg2LmMgYi90b29scy9saWJ4Yy94Y19jcHVpZF94ODYuYwppbmRleCAwY2ZmYjM2Li5hOTJm NWU0IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19jcHVpZF94ODYuYworKysgYi90b29scy9s aWJ4Yy94Y19jcHVpZF94ODYuYwpAQCAtMTY2LDYgKzE2Niw5IEBAIHN0cnVjdCBjcHVpZF9kb21h aW5faW5mbwogICAgIGJvb2wgcHZoOwogICAgIHVpbnQ2NF90IHhmZWF0dXJlX21hc2s7CiAKKyAg ICB1aW50MzJfdCAqZmVhdHVyZXNldDsKKyAgICB1bnNpZ25lZCBpbnQgbnJfZmVhdHVyZXM7CisK ICAgICAvKiBQVi1vbmx5IGluZm9ybWF0aW9uLiAqLwogICAgIGJvb2wgcHY2NDsKIApAQCAtMTk3 LDExICsyMDAsMTQgQEAgc3RhdGljIHZvaWQgY3B1aWQoY29uc3QgdW5zaWduZWQgaW50ICppbnB1 dCwgdW5zaWduZWQgaW50ICpyZWdzKQogfQogCiBzdGF0aWMgaW50IGdldF9jcHVpZF9kb21haW5f aW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21pZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBjcHVpZF9kb21haW5faW5mbyAqaW5mbykKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjcHVpZF9kb21haW5faW5mbyAqaW5mbywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpmZWF0dXJlc2V0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX2ZlYXR1cmVz KQogewogICAgIHN0cnVjdCB4ZW5fZG9tY3RsIGRvbWN0bCA9IHt9OwogICAgIHhjX2RvbWluZm9f dCBkaTsKICAgICB1bnNpZ25lZCBpbnQgaW5bMl0gPSB7IDAsIH4wVSB9LCByZWdzWzRdOworICAg IHVuc2lnbmVkIGludCBpLCBob3N0X25yX2ZlYXR1cmVzID0geGNfZ2V0X2NwdV9mZWF0dXJlc2V0 X3NpemUoKTsKICAgICBpbnQgcmM7CiAKICAgICBjcHVpZChpbiwgcmVncyk7CkBAIC0yMjMsNiAr MjI5LDIzIEBAIHN0YXRpYyBpbnQgZ2V0X2NwdWlkX2RvbWFpbl9pbmZvKHhjX2ludGVyZmFjZSAq eGNoLCBkb21pZF90IGRvbWlkLAogICAgIGluZm8tPmh2bSA9IGRpLmh2bTsKICAgICBpbmZvLT5w dmggPSBkaS5wdmg7CiAKKyAgICBpbmZvLT5mZWF0dXJlc2V0ID0gY2FsbG9jKGhvc3RfbnJfZmVh dHVyZXMsIHNpemVvZigqaW5mby0+ZmVhdHVyZXNldCkpOworICAgIGlmICggIWluZm8tPmZlYXR1 cmVzZXQgKQorICAgICAgICByZXR1cm4gLUVOT01FTTsKKworICAgIGluZm8tPm5yX2ZlYXR1cmVz ID0gaG9zdF9ucl9mZWF0dXJlczsKKworICAgIGlmICggZmVhdHVyZXNldCApCisgICAgeworICAg ICAgICBtZW1jcHkoaW5mby0+ZmVhdHVyZXNldCwgZmVhdHVyZXNldCwKKyAgICAgICAgICAgICAg IG1pbihob3N0X25yX2ZlYXR1cmVzLCBucl9mZWF0dXJlcykgKiBzaXplb2YoKmluZm8tPmZlYXR1 cmVzZXQpKTsKKworICAgICAgICAvKiBDaGVjayBmb3IgdHJ1bmNhdGVkIHNldCBiaXRzLiAqLwor ICAgICAgICBmb3IgKCBpID0gbnJfZmVhdHVyZXM7IGkgPCBob3N0X25yX2ZlYXR1cmVzOyArK2kg KQorICAgICAgICAgICAgaWYgKCBmZWF0dXJlc2V0W2ldICE9IDAgKQorICAgICAgICAgICAgICAg IHJldHVybiAtRU9QTk9UU1VQUDsKKyAgICB9CisKICAgICAvKiBHZXQgeHN0YXRlIGluZm9ybWF0 aW9uLiAqLwogICAgIGRvbWN0bC5jbWQgPSBYRU5fRE9NQ1RMX2dldHZjcHVleHRzdGF0ZTsKICAg ICBkb21jdGwuZG9tYWluID0gZG9taWQ7CkBAIC0yNDcsNiArMjcwLDE0IEBAIHN0YXRpYyBpbnQg Z2V0X2NwdWlkX2RvbWFpbl9pbmZvKHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLAog ICAgICAgICAgICAgcmV0dXJuIHJjOwogCiAgICAgICAgIGluZm8tPm5lc3RlZGh2bSA9ICEhdmFs OworCisgICAgICAgIGlmICggIWZlYXR1cmVzZXQgKQorICAgICAgICB7CisgICAgICAgICAgICBy YyA9IHhjX2dldF9jcHVfZmVhdHVyZXNldCh4Y2gsIFhFTl9TWVNDVExfY3B1X2ZlYXR1cmVzZXRf aHZtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhvc3RfbnJfZmVh dHVyZXMsIGluZm8tPmZlYXR1cmVzZXQpOworICAgICAgICAgICAgaWYgKCByYyApCisgICAgICAg ICAgICAgICAgcmV0dXJuIHJjOworICAgICAgICB9CiAgICAgfQogICAgIGVsc2UKICAgICB7CkBA IC0yNTcsMTEgKzI4OCwyNCBAQCBzdGF0aWMgaW50IGdldF9jcHVpZF9kb21haW5faW5mbyh4Y19p bnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21pZCwKICAgICAgICAgICAgIHJldHVybiByYzsKIAog ICAgICAgICBpbmZvLT5wdjY0ID0gKHdpZHRoID09IDgpOworCisgICAgICAgIGlmICggIWZlYXR1 cmVzZXQgKQorICAgICAgICB7CisgICAgICAgICAgICByYyA9IHhjX2dldF9jcHVfZmVhdHVyZXNl dCh4Y2gsIFhFTl9TWVNDVExfY3B1X2ZlYXR1cmVzZXRfcHYsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmaG9zdF9ucl9mZWF0dXJlcywgaW5mby0+ZmVhdHVyZXNldCk7 CisgICAgICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmM7CisgICAg ICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgZnJlZV9jcHVp ZF9kb21haW5faW5mbyhzdHJ1Y3QgY3B1aWRfZG9tYWluX2luZm8gKmluZm8pCit7CisgICAgZnJl ZShpbmZvLT5mZWF0dXJlc2V0KTsKK30KKwogc3RhdGljIHZvaWQgYW1kX3hjX2NwdWlkX3BvbGlj eSh4Y19pbnRlcmZhY2UgKnhjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IGNwdWlkX2RvbWFpbl9pbmZvICppbmZvLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgKmlucHV0LCB1bnNpZ25lZCBpbnQgKnJlZ3Mp CkBAIC03ODksMTYgKzgzMywxOCBAQCB2b2lkIHhjX2NwdWlkX3RvX3N0cihjb25zdCB1bnNpZ25l ZCBpbnQgKnJlZ3MsIGNoYXIgKipzdHJzKQogICAgIH0KIH0KIAotaW50IHhjX2NwdWlkX2FwcGx5 X3BvbGljeSh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21pZCkKK2ludCB4Y19jcHVpZF9h cHBseV9wb2xpY3koeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQzMl90ICpmZWF0dXJlc2V0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgbnJfZmVhdHVyZXMpCiB7CiAgICAgc3RydWN0IGNwdWlkX2Rv bWFpbl9pbmZvIGluZm8gPSB7fTsKICAgICB1bnNpZ25lZCBpbnQgaW5wdXRbMl0gPSB7IDAsIDAg fSwgcmVnc1s0XTsKICAgICB1bnNpZ25lZCBpbnQgYmFzZV9tYXgsIGV4dF9tYXg7CiAgICAgaW50 IHJjOwogCi0gICAgcmMgPSBnZXRfY3B1aWRfZG9tYWluX2luZm8oeGNoLCBkb21pZCwgJmluZm8p OworICAgIHJjID0gZ2V0X2NwdWlkX2RvbWFpbl9pbmZvKHhjaCwgZG9taWQsICZpbmZvLCBmZWF0 dXJlc2V0LCBucl9mZWF0dXJlcyk7CiAgICAgaWYgKCByYyApCi0gICAgICAgIHJldHVybiByYzsK KyAgICAgICAgZ290byBvdXQ7CiAKICAgICBjcHVpZChpbnB1dCwgcmVncyk7CiAgICAgYmFzZV9t YXggPSAocmVnc1swXSA8PSBERUZfTUFYX0JBU0UpID8gcmVnc1swXSA6IERFRl9NQVhfQkFTRTsK QEAgLTgyMSw3ICs4NjcsNyBAQCBpbnQgeGNfY3B1aWRfYXBwbHlfcG9saWN5KHhjX2ludGVyZmFj ZSAqeGNoLCBkb21pZF90IGRvbWlkKQogICAgICAgICB7CiAgICAgICAgICAgICByYyA9IHhjX2Nw dWlkX2RvX2RvbWN0bCh4Y2gsIGRvbWlkLCBpbnB1dCwgcmVncyk7CiAgICAgICAgICAgICBpZiAo IHJjICkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmM7CisgICAgICAgICAgICAgICAgZ290byBv dXQ7CiAgICAgICAgIH0KIAogICAgICAgICAvKiBJbnRlbCBjYWNoZSBkZXNjcmlwdG9yIGxlYXZl cy4gKi8KQEAgLTg0OSw3ICs4OTUsOSBAQCBpbnQgeGNfY3B1aWRfYXBwbHlfcG9saWN5KHhjX2lu dGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQog Ci0gICAgcmV0dXJuIDA7Cisgb3V0OgorICAgIGZyZWVfY3B1aWRfZG9tYWluX2luZm8oJmluZm8p OworICAgIHJldHVybiByYzsKIH0KIAogLyoKQEAgLTkzOCw5ICs5ODYsOSBAQCBpbnQgeGNfY3B1 aWRfc2V0KAogCiAgICAgbWVtc2V0KGNvbmZpZ190cmFuc2Zvcm1lZCwgMCwgNCAqIHNpemVvZigq Y29uZmlnX3RyYW5zZm9ybWVkKSk7CiAKLSAgICByYyA9IGdldF9jcHVpZF9kb21haW5faW5mbyh4 Y2gsIGRvbWlkLCAmaW5mbyk7CisgICAgcmMgPSBnZXRfY3B1aWRfZG9tYWluX2luZm8oeGNoLCBk b21pZCwgJmluZm8sIE5VTEwsIDApOwogICAgIGlmICggcmMgKQotICAgICAgICByZXR1cm4gcmM7 CisgICAgICAgIGdvdG8gb3V0OwogCiAgICAgY3B1aWQoaW5wdXQsIHJlZ3MpOwogCkBAIC05OTEs NyArMTAzOSw3IEBAIGludCB4Y19jcHVpZF9zZXQoCiAKICAgICByYyA9IHhjX2NwdWlkX2RvX2Rv bWN0bCh4Y2gsIGRvbWlkLCBpbnB1dCwgcmVncyk7CiAgICAgaWYgKCByYyA9PSAwICkKLSAgICAg ICAgcmV0dXJuIDA7CisgICAgICAgIGdvdG8gb3V0OwogCiAgZmFpbDoKICAgICBmb3IgKCBpID0g MDsgaSA8IDQ7IGkrKyApCkBAIC05OTksNSArMTA0Nyw4IEBAIGludCB4Y19jcHVpZF9zZXQoCiAg ICAgICAgIGZyZWUoY29uZmlnX3RyYW5zZm9ybWVkW2ldKTsKICAgICAgICAgY29uZmlnX3RyYW5z Zm9ybWVkW2ldID0gTlVMTDsKICAgICB9CisKKyBvdXQ6CisgICAgZnJlZV9jcHVpZF9kb21haW5f aW5mbygmaW5mbyk7CiAgICAgcmV0dXJuIHJjOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwv bGlieGxfY3B1aWQuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NwdWlkLmMKaW5kZXggYzY2ZTkxMi4u ZmMyMDE1NyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY3B1aWQuYworKysgYi90b29s cy9saWJ4bC9saWJ4bF9jcHVpZC5jCkBAIC0zMzQsNyArMzM0LDcgQEAgaW50IGxpYnhsX2NwdWlk X3BhcnNlX2NvbmZpZ194ZW5kKGxpYnhsX2NwdWlkX3BvbGljeV9saXN0ICpjcHVpZCwKIAogdm9p ZCBsaWJ4bF9jcHVpZF9hcHBseV9wb2xpY3kobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlk KQogewotICAgIHhjX2NwdWlkX2FwcGx5X3BvbGljeShjdHgtPnhjaCwgZG9taWQpOworICAgIHhj X2NwdWlkX2FwcGx5X3BvbGljeShjdHgtPnhjaCwgZG9taWQsIE5VTEwsIDApOwogfQogCiB2b2lk IGxpYnhsX2NwdWlkX3NldChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCmRpZmYgLS1n aXQgYS90b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYyBiL3Rvb2xzL29jYW1sL2xp YnMveGMveGVuY3RybF9zdHVicy5jCmluZGV4IGU3YWRmMzcuLjU0NzdkZjMgMTAwNjQ0Ci0tLSBh L3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybF9zdHVicy5jCisrKyBiL3Rvb2xzL29jYW1sL2xp YnMveGMveGVuY3RybF9zdHVicy5jCkBAIC03OTYsNyArNzk2LDcgQEAgQ0FNTHByaW0gdmFsdWUg c3R1Yl94Y19kb21haW5fY3B1aWRfYXBwbHlfcG9saWN5KHZhbHVlIHhjaCwgdmFsdWUgZG9taWQp CiAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQogCWludCByOwog Ci0JciA9IHhjX2NwdWlkX2FwcGx5X3BvbGljeShfSCh4Y2gpLCBfRChkb21pZCkpOworCXIgPSB4 Y19jcHVpZF9hcHBseV9wb2xpY3koX0goeGNoKSwgX0QoZG9taWQpLCBOVUxMLCAwKTsKIAlpZiAo ciA8IDApCiAJCWZhaWx3aXRoX3hjKF9IKHhjaCkpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL3Rvb2xz L3B5dGhvbi94ZW4vbG93bGV2ZWwveGMveGMuYyBiL3Rvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwv eGMveGMuYwppbmRleCBjNDBhNGU5Li4yMmExYzlmIDEwMDY0NAotLS0gYS90b29scy9weXRob24v eGVuL2xvd2xldmVsL3hjL3hjLmMKKysrIGIvdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94Yy94 Yy5jCkBAIC03MzEsNyArNzMxLDcgQEAgc3RhdGljIFB5T2JqZWN0ICpweXhjX2RvbV9zZXRfcG9s aWN5X2NwdWlkKFhjT2JqZWN0ICpzZWxmLAogICAgIGlmICggIVB5QXJnX1BhcnNlVHVwbGUoYXJn cywgImkiLCAmZG9taWQpICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBpZiAoIHhjX2Nw dWlkX2FwcGx5X3BvbGljeShzZWxmLT54Y19oYW5kbGUsIGRvbWlkKSApCisgICAgaWYgKCB4Y19j cHVpZF9hcHBseV9wb2xpY3koc2VsZi0+eGNfaGFuZGxlLCBkb21pZCwgTlVMTCwgMCkgKQogICAg ICAgICByZXR1cm4gcHl4Y19lcnJvcl90b19leGNlcHRpb24oc2VsZi0+eGNfaGFuZGxlKTsKIAog ICAgIFB5X0lOQ1JFRih6ZXJvKTsKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK