From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 2/2] x86/cpuid: Alter the policy logic for leaf 0xb to be multi-invocation Date: Wed, 27 Jun 2018 14:55:50 +0100 Message-ID: <1530107750-22040-3-git-send-email-andrew.cooper3@citrix.com> References: <1530107750-22040-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: <1530107750-22040-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Ian Jackson , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhlIG5ldyBkYXRhIGxpdmVzIGluIHRoZSAudG9wbyB1bmlvbiwgcmF0aGVyIHRoYW4gYmVpbmcg dHJlYXRlZCBhcyBhIHNpbmdsZQpsZWFmIGluIHRoZSBiYXNpYyB1bmlvbi4KCkhvc3QgZGF0YSBp cyBzY2FubmVkIHdoZW4gZmlsbGluZyBpbiB0aGUgcmF3IHBvbGljeSwgYnV0IFhlbiBzdGlsbCBk aXNjYXJkcwphbnkgdG9vbHN0YWNrIHNldHRpbmdzIGZvciBub3cuCgpTaWduZWQtb2ZmLWJ5OiBB bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVs aWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IElhbiBKYWNrc29uIDxJYW4uSmFja3NvbkBldS5j aXRyaXguY29tPgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ0M6IFJvZ2VyIFBh dSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotLS0KIHRvb2xzL2xpYnhjL3hjX2NwdWlk X3g4Ni5jICB8IDExICsrKysrKysrKystCiB4ZW4vYXJjaC94ODYvY3B1aWQuYyAgICAgICAgfCA0 MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogeGVuL2FyY2gveDg2 L2RvbWN0bC5jICAgICAgIHwgIDggKysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvY3B1aWQu aCB8IDE4ICsrKysrKysrKysrKysrKysrLQogNCBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25z KCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2NwdWlkX3g4 Ni5jIGIvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKaW5kZXggMjE1MzdmMC4uOTZjNmM5NSAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKKysrIGIvdG9vbHMvbGlieGMv eGNfY3B1aWRfeDg2LmMKQEAgLTc2NCwxMyArNzY0LDIyIEBAIGludCB4Y19jcHVpZF9hcHBseV9w b2xpY3koeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgaWYg KCAocmVnc1swXSAmIDB4MWYpICE9IDAgKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg ICAgICB9CisgICAgICAgIC8qIEV4dGVuZGVkIFRvcG9sb2d5IGxlYXZlcy4gKi8KKyAgICAgICAg ZWxzZSBpZiAoIGlucHV0WzBdID09IDB4YiApCisgICAgICAgIHsKKyAgICAgICAgICAgIHVpbnQ4 X3QgbGV2ZWxfdHlwZSA9IHJlZ3NbMl0gPj4gODsKKworICAgICAgICAgICAgaW5wdXRbMV0rKzsK KyAgICAgICAgICAgIGlmICggbGV2ZWxfdHlwZSA+PSAxICYmIGxldmVsX3R5cGUgPD0gMiApCisg ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAogICAgICAgICBpbnB1dFswXSsr OwogICAgICAgICBpZiAoICEoaW5wdXRbMF0gJiAweDgwMDAwMDAwdSkgJiYgKGlucHV0WzBdID4g YmFzZV9tYXggKSApCiAgICAgICAgICAgICBpbnB1dFswXSA9IDB4ODAwMDAwMDB1OwogCiAgICAg ICAgIGlucHV0WzFdID0gWEVOX0NQVUlEX0lOUFVUX1VOVVNFRDsKLSAgICAgICAgaWYgKCAoaW5w dXRbMF0gPT0gNCkgfHwgKGlucHV0WzBdID09IDcpICkKKyAgICAgICAgaWYgKCAoaW5wdXRbMF0g PT0gNCkgfHwgKGlucHV0WzBdID09IDcpIHx8IChpbnB1dFswXSA9PSAweGIpICkKICAgICAgICAg ICAgIGlucHV0WzFdID0gMDsKICAgICAgICAgZWxzZSBpZiAoIGlucHV0WzBdID09IDB4ZCApCiAg ICAgICAgICAgICBpbnB1dFsxXSA9IDE7IC8qIFhlbiBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZXMg YWxtb3N0IGV2ZXJ5dGhpbmcuICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1aWQuYyBi L3hlbi9hcmNoL3g4Ni9jcHVpZC5jCmluZGV4IGVjYTFhOWEuLmE2ZjdiYzYgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9jcHVpZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHVpZC5jCkBAIC0yMDUs NyArMjA1LDEwIEBAIHN0YXRpYyB2b2lkIHJlY2FsY3VsYXRlX21pc2Moc3RydWN0IGNwdWlkX3Bv bGljeSAqcCkKICAgICBwLT5iYXNpYy5yYXdbMHg2XSA9IEVNUFRZX0xFQUY7IC8qIFRoZXJtL1Bv d2VyIG5vdCBleHBvc2VkIHRvIGd1ZXN0cy4gKi8KIAogICAgIHAtPmJhc2ljLnJhd1sweDhdID0g RU1QVFlfTEVBRjsKLSAgICBwLT5iYXNpYy5yYXdbMHhiXSA9IEVNUFRZX0xFQUY7IC8qIFRPRE86 IFJld29yayB0b3BvbG9neSBsb2dpYy4gKi8KKworICAgIC8qIFRPRE86IFJld29yayB0b3BvbG9n eSBsb2dpYy4gKi8KKyAgICBtZW1zZXQocC0+dG9wby5yYXcsIDAsIHNpemVvZihwLT50b3BvLnJh dykpOworCiAgICAgcC0+YmFzaWMucmF3WzB4Y10gPSBFTVBUWV9MRUFGOwogCiAgICAgcC0+ZXh0 ZC5lMWQgJj0gfkNQVUlEX0NPTU1PTl8xRF9GRUFUVVJFUzsKQEAgLTI3Myw3ICsyNzYsNyBAQCBz dGF0aWMgdm9pZCBfX2luaXQgY2FsY3VsYXRlX3Jhd19wb2xpY3kodm9pZCkKICAgICB7CiAgICAg ICAgIHN3aXRjaCAoIGkgKQogICAgICAgICB7Ci0gICAgICAgIGNhc2UgMHg0OiBjYXNlIDB4Nzog Y2FzZSAweGQ6CisgICAgICAgIGNhc2UgMHg0OiBjYXNlIDB4NzogY2FzZSAweGI6IGNhc2UgMHhk OgogICAgICAgICAgICAgLyogTXVsdGktaW52b2NhdGlvbiBsZWF2ZXMuICBEZWZlcnJlZC4gKi8K ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBAIC0zMTYsNiArMzE5LDMzIEBAIHN0 YXRpYyB2b2lkIF9faW5pdCBjYWxjdWxhdGVfcmF3X3BvbGljeSh2b2lkKQogICAgICAgICAgICAg Y3B1aWRfY291bnRfbGVhZig3LCBpLCAmcC0+ZmVhdC5yYXdbaV0pOwogICAgIH0KIAorICAgIGlm ICggcC0+YmFzaWMubWF4X2xlYWYgPj0gMHhiICkKKyAgICB7CisgICAgICAgIHVuaW9uIHsKKyAg ICAgICAgICAgIHN0cnVjdCBjcHVpZF9sZWFmIGw7CisgICAgICAgICAgICBzdHJ1Y3QgY3B1aWRf dG9wb19sZWFmIHQ7CisgICAgICAgIH0gdTsKKworICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEFS UkFZX1NJWkUocC0+dG9wby5yYXcpOyArK2kgKQorICAgICAgICB7CisgICAgICAgICAgICBjcHVp ZF9jb3VudF9sZWFmKDB4YiwgaSwgJnUubCk7CisKKyAgICAgICAgICAgIGlmICggdS50LnR5cGUg PT0gMCApCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIHAtPnRvcG8uc3Vi bGVhZltpXSA9IHUudDsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIFRoZSBj aG9pY2Ugb2YgQ1BVSURfR1VFU1RfTlJfVE9QTyBpcyBwZXIgdGhlIG1hbnVhbC4gIEl0IG1heSBu ZWVkCisgICAgICAgICAqIHRvIGdyb3cgZm9yIGZ1dHVyZSBoYXJ3YXJlLgorICAgICAgICAgKi8K KyAgICAgICAgaWYgKCBpID09IEFSUkFZX1NJWkUocC0+dG9wby5yYXcpICYmCisgICAgICAgICAg ICAgKGNwdWlkX2NvdW50X2xlYWYoMHhiLCBpLCAmdS5sKSwgdS50LnR5cGUgIT0gMCkgKQorICAg ICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HCisgICAgICAgICAgICAgICAgICAgIkNQVUlE OiBJbnN1ZmZpY2llbnQgTGVhZiAweGIgc3BhY2UgZm9yIHRoaXMgaGFyZHdhcmVcbiIpOworICAg IH0KKwogICAgIGlmICggcC0+YmFzaWMubWF4X2xlYWYgPj0gWFNUQVRFX0NQVUlEICkKICAgICB7 CiAgICAgICAgIHVpbnQ2NF90IHhzdGF0ZXM7CkBAIC03MzAsNiArNzYwLDEzIEBAIHZvaWQgZ3Vl c3RfY3B1aWQoY29uc3Qgc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IGxlYWYsCiAgICAgICAgICAg ICAqcmVzID0gcC0+ZmVhdC5yYXdbc3VibGVhZl07CiAgICAgICAgICAgICBicmVhazsKIAorICAg ICAgICBjYXNlIDB4YjoKKyAgICAgICAgICAgIGlmICggc3VibGVhZiA+PSBBUlJBWV9TSVpFKHAt PnRvcG8ucmF3KSApCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAqcmVz ID0gcC0+dG9wby5yYXdbc3VibGVhZl07CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBj YXNlIFhTVEFURV9DUFVJRDoKICAgICAgICAgICAgIGlmICggIXAtPmJhc2ljLnhzYXZlIHx8IHN1 YmxlYWYgPj0gQVJSQVlfU0laRShwLT54c3RhdGUucmF3KSApCiAgICAgICAgICAgICAgICAgcmV0 dXJuOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWN0bC5jIGIveGVuL2FyY2gveDg2L2Rv bWN0bC5jCmluZGV4IDEwNWE1NzYuLjNlOTU4MGIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9k b21jdGwuYworKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKQEAgLTcwLDYgKzcwLDEwIEBAIHN0 YXRpYyBpbnQgdXBkYXRlX2RvbWFpbl9jcHVpZF9pbmZvKHN0cnVjdCBkb21haW4gKmQsCiAgICAg ICAgICAgICAgY3RsLT5pbnB1dFsxXSA+PSBBUlJBWV9TSVpFKHAtPmZlYXQucmF3KSApCiAgICAg ICAgICAgICByZXR1cm4gMDsKIAorICAgICAgICBpZiAoIGN0bC0+aW5wdXRbMF0gPT0gMHhiICYm CisgICAgICAgICAgICAgY3RsLT5pbnB1dFsxXSA+PSBBUlJBWV9TSVpFKHAtPnRvcG8ucmF3KSAp CisgICAgICAgICAgICByZXR1cm4gMDsKKwogICAgICAgICBCVUlMRF9CVUdfT04oQVJSQVlfU0la RShwLT54c3RhdGUucmF3KSA8IDIpOwogICAgICAgICBpZiAoIGN0bC0+aW5wdXRbMF0gPT0gWFNU QVRFX0NQVUlEICYmCiAgICAgICAgICAgICAgY3RsLT5pbnB1dFsxXSAhPSAxICkgLyogRXZlcnl0 aGluZyBlbHNlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZC4gKi8KQEAgLTEwMCw2ICsxMDQsMTAg QEAgc3RhdGljIGludCB1cGRhdGVfZG9tYWluX2NwdWlkX2luZm8oc3RydWN0IGRvbWFpbiAqZCwK ICAgICAgICAgICAgIHAtPmZlYXQucmF3W2N0bC0+aW5wdXRbMV1dID0gbGVhZjsKICAgICAgICAg ICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgMHhiOgorICAgICAgICAgICAgcC0+dG9wby5yYXdb Y3RsLT5pbnB1dFsxXV0gPSBsZWFmOworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2Fz ZSBYU1RBVEVfQ1BVSUQ6CiAgICAgICAgICAgICBwLT54c3RhdGUucmF3W2N0bC0+aW5wdXRbMV1d ID0gbGVhZjsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9jcHVpZC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVpZC5oCmluZGV4IDRjY2UyNjgu LjQxMTNhNWUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1aWQuaAorKysgYi94 ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlkLmgKQEAgLTYxLDYgKzYxLDcgQEAgZXh0ZXJuIHN0cnVj dCBjcHVpZG1hc2tzIGNwdWlkbWFza19kZWZhdWx0czsKICNkZWZpbmUgQ1BVSURfR1VFU1RfTlJf QkFTSUMgICAgICAoMHhkdSArIDEpCiAjZGVmaW5lIENQVUlEX0dVRVNUX05SX0ZFQVQgICAgICAg KDB1ICsgMSkKICNkZWZpbmUgQ1BVSURfR1VFU1RfTlJfQ0FDSEUgICAgICAoNXUgKyAxKQorI2Rl ZmluZSBDUFVJRF9HVUVTVF9OUl9UT1BPICAgICAgICgxdSArIDEpCiAjZGVmaW5lIENQVUlEX0dV RVNUX05SX1hTVEFURSAgICAgKDYydSArIDEpCiAjZGVmaW5lIENQVUlEX0dVRVNUX05SX0VYVERf SU5URUwgKDB4OHUgKyAxKQogI2RlZmluZSBDUFVJRF9HVUVTVF9OUl9FWFREX0FNRCAgICgweDFj dSArIDEpCkBAIC0xMDgsNyArMTA5LDExIEBAIHN0cnVjdCBjcHVpZF9wb2xpY3kKICAgICAgICAg ICAgIHVpbnQ2NF90IDo2NCwgOjY0OyAvKiBMZWFmIDB4OSAtIERDQSAqLwogCiAgICAgICAgICAg ICAvKiBMZWFmIDB4YSAtIEludGVsIFBNVS4gKi8KLSAgICAgICAgICAgIHVpbnQ4X3QgcG11X3Zl cnNpb247CisgICAgICAgICAgICB1aW50OF90IHBtdV92ZXJzaW9uLCBfcG11WzE1XTsKKworICAg ICAgICAgICAgdWludDY0X3QgOjY0LCA6NjQ7IC8qIExlYWYgMHhiIC0gVG9wb2xvZ3kuICovCisg ICAgICAgICAgICB1aW50NjRfdCA6NjQsIDo2NDsgLyogTGVhZiAweGMgLSByc3ZkICovCisgICAg ICAgICAgICB1aW50NjRfdCA6NjQsIDo2NDsgLyogTGVhZiAweGQgLSBYU1RBVEUuICovCiAgICAg ICAgIH07CiAgICAgfSBiYXNpYzsKIApAQCAtMTQyLDYgKzE0NywxNyBAQCBzdHJ1Y3QgY3B1aWRf cG9saWN5CiAgICAgICAgIH07CiAgICAgfSBmZWF0OwogCisgICAgLyogRXh0ZW5kZWQgdG9wb2xv Z3kgZW51bWVyYXRpb246IDB4MDAwMDAwMEJbeHhdICovCisgICAgdW5pb24geworICAgICAgICBz dHJ1Y3QgY3B1aWRfbGVhZiByYXdbQ1BVSURfR1VFU1RfTlJfVE9QT107CisgICAgICAgIHN0cnVj dCBjcHVpZF90b3BvX2xlYWYgeworICAgICAgICAgICAgdWludDMyX3QgaWRfc2hpZnQ6NSwgOjI3 OworICAgICAgICAgICAgdWludDE2X3QgbnJfbG9naWNhbCwgOjE2OworICAgICAgICAgICAgdWlu dDhfdCBsZXZlbCwgdHlwZSwgOjgsIDo4OworICAgICAgICAgICAgdWludDMyX3QgeDJhcGljX2lk OworICAgICAgICB9IHN1YmxlYWZbQ1BVSURfR1VFU1RfTlJfVE9QT107CisgICAgfSB0b3BvOwor CiAgICAgLyogWHN0YXRlIGZlYXR1cmUgbGVhZjogMHgwMDAwMDAwRFt4eF0gKi8KICAgICB1bmlv biB7CiAgICAgICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJhd1tDUFVJRF9HVUVTVF9OUl9YU1RBVEVd OwotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y ZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs