From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 6/6] x86/cpuid: Only recalculate the shared feature bits once Date: Wed, 18 Jan 2017 19:40:58 +0000 Message-ID: <1484768458-13117-7-git-send-email-andrew.cooper3@citrix.com> References: <1484768458-13117-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: <1484768458-13117-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 , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org V2l0aCBhY2N1cmF0ZSB2ZW5kb3IgaW5mb3JtYXRpb24gYXZhaWxhYmxlLCB0aGUgc2hhcmVkIGJp dHMgY2FuIGJlIHNvcnRlZCBvdXQKZHVyaW5nIHJlY2FsY3VsYXRpb24sIHJhdGhlciB0aGFuIGF0 IHF1ZXJ5IHRpbWUgaW4gdGhlIGxlZ2FjeSBjcHVpZCBwYXRoLgoKVGhpcyBtZWFucyB0aGF0Ogog KiBEdXBsaWNhdGlvbiBjYW4gYmUgZHJvcHBlZCBmcm9tIHRoZSBhdXRvbWF0aWNhbGx5IGdlbmVy YXRlZCBjcHVpZCBkYXRhLgogKiBUaGUgdG9vbHN0YWNrIG5lZWQgbm90IHdvcnJ5IGFib3V0IHNl dHRpbmcgdGhlbSBhcHByb3ByaWF0ZWx5LgogKiBUaGV5IGNhbiBiZSBkcm9wcGVkIGZyb20gdGhl IHN5c3RlbSBtYXhpbXVtIGZlYXR1cmVzZXRzLgoKV2hpbGUgZWRpdGluZyBnZW4tY3B1aWQucHks IHJlZmxvdyBzb21lIGNvbW1lbnRzIHdoaWNoIGV4Y2VlZGVkIHRoZSBleHBlY3RlZApsaW5lIGxl bmd0aC4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJp eC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgpDQzogSWFuIEph Y2tzb24gPElhbi5KYWNrc29uQGV1LmNpdHJpeC5jb20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1MkBj aXRyaXguY29tPgotLS0KIHRvb2xzL2xpYnhjL3hjX2NwdWlkX3g4Ni5jIHwgMTkgLS0tLS0tLS0t LS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2NwdWlkLmMgICAgICAgfCAyNSArKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tCiB4ZW4vdG9vbHMvZ2VuLWNwdWlkLnB5ICAgICB8IDI5ICsrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDU4 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2NwdWlkX3g4Ni5jIGIv dG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKaW5kZXggOTZkNjAyNS4uOTE4NTkwZiAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKKysrIGIvdG9vbHMvbGlieGMveGNfY3B1 aWRfeDg2LmMKQEAgLTQxLDcgKzQxLDYgQEAgZW51bSB7CiAjZGVmaW5lIERFRl9NQVhfQkFTRSAw eDAwMDAwMDBkdQogI2RlZmluZSBERUZfTUFYX0lOVEVMRVhUICAweDgwMDAwMDA4dQogI2RlZmlu ZSBERUZfTUFYX0FNREVYVCAgICAweDgwMDAwMDFjdQotI2RlZmluZSBDT01NT05fMUQgQ1BVSURf Q09NTU9OXzFEX0ZFQVRVUkVTCiAKIGludCB4Y19nZXRfY3B1X2xldmVsbGluZ19jYXBzKHhjX2lu dGVyZmFjZSAqeGNoLCB1aW50MzJfdCAqY2FwcykKIHsKQEAgLTcxMiwyNCArNzExLDYgQEAgc3Rh dGljIHZvaWQgc2FuaXRpc2VfZmVhdHVyZXNldChzdHJ1Y3QgY3B1aWRfZG9tYWluX2luZm8gKmlu Zm8pCiAgICAgICAgICAgICBkaXNhYmxlZF9mZWF0dXJlc1tpXSAmPSB+ZGZzW2ldOwogICAgICAg ICB9CiAgICAgfQotCi0gICAgc3dpdGNoICggaW5mby0+dmVuZG9yICkKLSAgICB7Ci0gICAgY2Fz ZSBWRU5ET1JfSU5URUw6Ci0gICAgICAgIC8qIEludGVsIGNsZWFycyB0aGUgY29tbW9uIGJpdHMg aW4gZTFkLiAqLwotICAgICAgICBpbmZvLT5mZWF0dXJlc2V0W2ZlYXR1cmV3b3JkX29mKFg4Nl9G RUFUVVJFX1NZU0NBTEwpXSAmPSB+Q09NTU9OXzFEOwotICAgICAgICBicmVhazsKLQotICAgIGNh c2UgVkVORE9SX0FNRDoKLSAgICAgICAgLyogQU1EIGR1cGxpY2F0ZXMgdGhlIGNvbW1vbiBiaXRz IGJldHdlZW4gMWQgYW5kIGUxZC4gKi8KLSAgICAgICAgaW5mby0+ZmVhdHVyZXNldFtmZWF0dXJl d29yZF9vZihYODZfRkVBVFVSRV9TWVNDQUxMKV0gPQotICAgICAgICAgICAgKChpbmZvLT5mZWF0 dXJlc2V0W2ZlYXR1cmV3b3JkX29mKFg4Nl9GRUFUVVJFX0ZQVSldICYgQ09NTU9OXzFEKSB8Ci0g ICAgICAgICAgICAgKGluZm8tPmZlYXR1cmVzZXRbZmVhdHVyZXdvcmRfb2YoWDg2X0ZFQVRVUkVf U1lTQ0FMTCldICYgfkNPTU1PTl8xRCkpOwotICAgICAgICBicmVhazsKLQotICAgIGRlZmF1bHQ6 Ci0gICAgICAgIGJyZWFrOwotICAgIH0KIH0KIAogaW50IHhjX2NwdWlkX2FwcGx5X3BvbGljeSh4 Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21pZCwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9jcHVpZC5jIGIveGVuL2FyY2gveDg2L2NwdWlkLmMKaW5kZXggNzkyNmQwYi4uYTI3YThkNiAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdWlkLmMKKysrIGIveGVuL2FyY2gveDg2L2NwdWlk LmMKQEAgLTY3LDE4ICs2Nyw2IEBAIHN0YXRpYyB2b2lkIHNhbml0aXNlX2ZlYXR1cmVzZXQodWlu dDMyX3QgKmZzKQogICAgICAgICAgICAgZGlzYWJsZWRfZmVhdHVyZXNbal0gJj0gfmRmc1tqXTsK ICAgICAgICAgfQogICAgIH0KLQotICAgIC8qCi0gICAgICogU29ydCBvdXQgc2hhcmVkIGJpdHMu ICBXZSBhcmUgY29uc3RydWN0aW5nIGEgZmVhdHVyZXNldCB3aGljaCBuZWVkcyB0bwotICAgICAq IGJlIGFwcGxpY2FibGUgdG8gYSBjcm9zcy12ZW5kb3IgY2FzZS4gIEludGVsIHN0cmljdGx5IGNs ZWFycyB0aGUgY29tbW9uCi0gICAgICogYml0cyBpbiBlMWQsIHdoaWxlIEFNRCBzdHJpY3RseSBk dXBsaWNhdGVzIHRoZW0uCi0gICAgICoKLSAgICAgKiBXZSBkdXBsaWNhdGUgdGhlbSBoZXJlIHRv IGJlIGNvbXBhdGlibGUgd2l0aCBBTUQgd2hpbGUgb24gSW50ZWwsIGFuZAotICAgICAqIHJlbHkg b24gbG9naWMgY2xvc2VyIHRvIHRoZSBndWVzdCB0byBtYWtlIHRoZSBmZWF0dXJlc2V0IHN0cmlj dGVyIGlmCi0gICAgICogZW11bGF0aW5nIEludGVsLgotICAgICAqLwotICAgIGZzW0ZFQVRVUkVT RVRfZTFkXSA9ICgoZnNbRkVBVFVSRVNFVF8xZF0gICYgIENQVUlEX0NPTU1PTl8xRF9GRUFUVVJF UykgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAoZnNbRkVBVFVSRVNFVF9lMWRdICYgfkNQ VUlEX0NPTU1PTl8xRF9GRUFUVVJFUykpOwogfQogCiBzdGF0aWMgdm9pZCByZWNhbGN1bGF0ZV94 c3RhdGUoc3RydWN0IGNwdWlkX3BvbGljeSAqcCkKQEAgLTE2NSw2ICsxNTMsOCBAQCBzdGF0aWMg dm9pZCByZWNhbGN1bGF0ZV94c3RhdGUoc3RydWN0IGNwdWlkX3BvbGljeSAqcCkKIAogc3RhdGlj IHZvaWQgcmVjYWxjdWxhdGVfY29tbW9uKHN0cnVjdCBjcHVpZF9wb2xpY3kgKnApCiB7CisgICAg cC0+ZXh0ZC5lMWQgJj0gfkNQVUlEX0NPTU1PTl8xRF9GRUFUVVJFUzsKKwogICAgIHN3aXRjaCAo IHAtPng4Nl92ZW5kb3IgKQogICAgIHsKICAgICBjYXNlIFg4Nl9WRU5ET1JfSU5URUw6CkBAIC0x NzcsNiArMTY3LDggQEAgc3RhdGljIHZvaWQgcmVjYWxjdWxhdGVfY29tbW9uKHN0cnVjdCBjcHVp ZF9wb2xpY3kgKnApCiAgICAgICAgIHAtPmV4dGQudmVuZG9yX2VieCA9IHAtPmJhc2ljLnZlbmRv cl9lYng7CiAgICAgICAgIHAtPmV4dGQudmVuZG9yX2VjeCA9IHAtPmJhc2ljLnZlbmRvcl9lY3g7 CiAgICAgICAgIHAtPmV4dGQudmVuZG9yX2VkeCA9IHAtPmJhc2ljLnZlbmRvcl9lZHg7CisKKyAg ICAgICAgcC0+ZXh0ZC5lMWQgfD0gcC0+YmFzaWMuXzFkICYgQ1BVSURfQ09NTU9OXzFEX0ZFQVRV UkVTOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC02NjUsMTAgKzY1Nyw2IEBAIHN0YXRp YyB2b2lkIHB2X2NwdWlkKHVpbnQzMl90IGxlYWYsIHVpbnQzMl90IHN1YmxlYWYsIHN0cnVjdCBj cHVpZF9sZWFmICpyZXMpCiAgICAgICAgIHJlcy0+YyA9IHAtPmV4dGQuZTFjOwogICAgICAgICBy ZXMtPmQgPSBwLT5leHRkLmUxZDsKIAotICAgICAgICAvKiBJZiBub3QgZW11bGF0aW5nIEFNRCwg Y2xlYXIgdGhlIGR1cGxpY2F0ZWQgZmVhdHVyZXMgaW4gZTFkLiAqLwotICAgICAgICBpZiAoIHAt Png4Nl92ZW5kb3IgIT0gWDg2X1ZFTkRPUl9BTUQgKQotICAgICAgICAgICAgcmVzLT5kICY9IH5D UFVJRF9DT01NT05fMURfRkVBVFVSRVM7Ci0KICAgICAgICAgLyoKICAgICAgICAgICogTVRSUiB1 c2VkIHRvIHVuY29uZGl0aW9uYWxseSBsZWFrIGludG8gUFYgZ3Vlc3RzLiAgVGhleSBjYW5ub3Qg TVRSUgogICAgICAgICAgKiBpbmZyYXN0cnVjdHVyZSBhdCBhbGwsIGFuZCBzaG91bGRuJ3QgYmUg YWJsZSB0byBzZWUgdGhlIGZlYXR1cmUuCkBAIC03OTAsMTEgKzc3OCw4IEBAIHN0YXRpYyB2b2lk IGh2bV9jcHVpZCh1aW50MzJfdCBsZWFmLCB1aW50MzJfdCBzdWJsZWFmLCBzdHJ1Y3QgY3B1aWRf bGVhZiAqcmVzKQogICAgICAgICByZXMtPmMgPSBwLT5leHRkLmUxYzsKICAgICAgICAgcmVzLT5k ID0gcC0+ZXh0ZC5lMWQ7CiAKLSAgICAgICAgLyogSWYgbm90IGVtdWxhdGluZyBBTUQsIGNsZWFy IHRoZSBkdXBsaWNhdGVkIGZlYXR1cmVzIGluIGUxZC4gKi8KLSAgICAgICAgaWYgKCBwLT54ODZf dmVuZG9yICE9IFg4Nl9WRU5ET1JfQU1EICkKLSAgICAgICAgICAgIHJlcy0+ZCAmPSB+Q1BVSURf Q09NTU9OXzFEX0ZFQVRVUkVTOwogICAgICAgICAvKiBmYXN0LWZvcndhcmQgTVNSX0FQSUNfQkFT RS5FTiBpZiBpdCBoYXNuJ3QgYWxyZWFkeSBiZWVuIGNsb2JiZXJlZC4gKi8KLSAgICAgICAgZWxz ZSBpZiAoIHZsYXBpY19od19kaXNhYmxlZCh2Y3B1X3ZsYXBpYyh2KSkgKQorICAgICAgICBpZiAo IHZsYXBpY19od19kaXNhYmxlZCh2Y3B1X3ZsYXBpYyh2KSkgKQogICAgICAgICAgICAgcmVzLT5k ICY9IH5jcHVmZWF0X2JpdChYODZfRkVBVFVSRV9BUElDKTsKIAogICAgICAgICAvKgpkaWZmIC0t Z2l0IGEveGVuL3Rvb2xzL2dlbi1jcHVpZC5weSBiL3hlbi90b29scy9nZW4tY3B1aWQucHkKaW5k ZXggNjIxMmU0Zi4uNWNhYjZkYiAxMDA3NTUKLS0tIGEveGVuL3Rvb2xzL2dlbi1jcHVpZC5weQor KysgYi94ZW4vdG9vbHMvZ2VuLWNwdWlkLnB5CkBAIC0xMjksMTYgKzEyOSw3IEBAIGRlZiBjcnVu Y2hfbnVtYmVycyhzdGF0ZSk6CiAgICAgY29tbW9uXzFkID0gKEZQVSwgVk1FLCBERSwgUFNFLCBU U0MsIE1TUiwgUEFFLCBNQ0UsIENYOCwgQVBJQywKICAgICAgICAgICAgICAgICAgTVRSUiwgUEdF LCBNQ0EsIENNT1YsIFBBVCwgUFNFMzYsIE1NWCwgRlhTUikKIAotICAgICMgQWxsIGtub3duIGZl YXR1cmVzLiAgRHVwbGljYXRlIHRoZSBjb21tb24gZmVhdHVyZXMgaW4gZTFkCi0gICAgZTFkX2Jh c2UgPSBTWVNDQUxMICYgfjMxCi0gICAgc3RhdGUua25vd24gPSBmZWF0dXJlc2V0X3RvX3VpbnQz MnMoCi0gICAgICAgIHN0YXRlLm5hbWVzLmtleXMoKSArIFsgZTFkX2Jhc2UgKyAoeCAlIDMyKSBm b3IgeCBpbiBjb21tb25fMWQgXSwKLSAgICAgICAgbnJfZW50cmllcykKLQotICAgICMgRm9sZCBj b21tb24gYmFjayBpbnRvIG5hbWVzCi0gICAgZm9yIGYgaW4gY29tbW9uXzFkOgotICAgICAgICBz dGF0ZS5uYW1lc1tlMWRfYmFzZSArIChmICUgMzIpXSA9ICJFMURfIiArIHN0YXRlLm5hbWVzW2Zd Ci0KKyAgICBzdGF0ZS5rbm93biA9IGZlYXR1cmVzZXRfdG9fdWludDMycyhzdGF0ZS5uYW1lcy5r ZXlzKCksIG5yX2VudHJpZXMpCiAgICAgc3RhdGUuY29tbW9uXzFkID0gZmVhdHVyZXNldF90b191 aW50MzJzKGNvbW1vbl8xZCwgMSlbMF0KICAgICBzdGF0ZS5zcGVjaWFsID0gZmVhdHVyZXNldF90 b191aW50MzJzKHN0YXRlLnJhd19zcGVjaWFsLCBucl9lbnRyaWVzKQogICAgIHN0YXRlLnB2ID0g ZmVhdHVyZXNldF90b191aW50MzJzKHN0YXRlLnJhd19wdiwgbnJfZW50cmllcykKQEAgLTI0OCwx MyArMjM5LDE0IEBAIGRlZiBjcnVuY2hfbnVtYmVycyhzdGF0ZSk6CiAgICAgICAgICMgc3RhbmRh cmQgM0ROb3cgaW4gdGhlIGVhcmxpZXIgSzYgcHJvY2Vzc29ycy4KICAgICAgICAgXzNETk9XOiBb XzNETk9XRVhUXSwKIAotICAgICAgICAjIFRoaXMgaXMganVzdCB0aGUgZGVwZW5kZW5jeSBiZXR3 ZWVuIEFWWDUxMiBhbmQgQVZYMiBvZiBYU1RBVEUgZmVhdHVyZSBmbGFncy4KLSAgICAgICAgIyBJ ZiB3YW50IHRvIHVzZSBBVlg1MTIsIEFWWDIgbXVzdCBiZSBzdXBwb3J0ZWQgYW5kIGVuYWJsZWQu CisgICAgICAgICMgVGhpcyBpcyBqdXN0IHRoZSBkZXBlbmRlbmN5IGJldHdlZW4gQVZYNTEyIGFu ZCBBVlgyIG9mIFhTVEFURQorICAgICAgICAjIGZlYXR1cmUgZmxhZ3MuICBJZiB3YW50IHRvIHVz ZSBBVlg1MTIsIEFWWDIgbXVzdCBiZSBzdXBwb3J0ZWQgYW5kCisgICAgICAgICMgZW5hYmxlZC4K ICAgICAgICAgQVZYMjogW0FWWDUxMkZdLAogCi0gICAgICAgICMgQVZYNTEyRiBpcyB0YWtlbiB0 byBtZWFuIGhhcmR3YXJlIHN1cHBvcnQgZm9yIEVWRVggZW5jb2RlZCBpbnN0cnVjdGlvbnMsCi0g ICAgICAgICMgNTEyYml0IHJlZ2lzdGVycywgYW5kIHRoZSBpbnN0cnVjdGlvbnMgdGhlbXNlbHZl cy4gQWxsIGZ1cnRoZXIgQVZYNTEyIGZlYXR1cmVzCi0gICAgICAgICMgYXJlIGJ1aWx0IG9uIHRv cCBvZiBBVlg1MTJGCisgICAgICAgICMgQVZYNTEyRiBpcyB0YWtlbiB0byBtZWFuIGhhcmR3YXJl IHN1cHBvcnQgZm9yIEVWRVggZW5jb2RlZAorICAgICAgICAjIGluc3RydWN0aW9ucywgNTEyYml0 IHJlZ2lzdGVycywgYW5kIHRoZSBpbnN0cnVjdGlvbnMgdGhlbXNlbHZlcy4gQWxsCisgICAgICAg ICMgZnVydGhlciBBVlg1MTIgZmVhdHVyZXMgYXJlIGJ1aWx0IG9uIHRvcCBvZiBBVlg1MTJGCiAg ICAgICAgIEFWWDUxMkY6IFtBVlg1MTJEUSwgQVZYNTEySUZNQSwgQVZYNTEyUEYsIEFWWDUxMkVS LCBBVlg1MTJDRCwKICAgICAgICAgICAgICAgICAgIEFWWDUxMkJXLCBBVlg1MTJWTCwgQVZYNTEy VkJNSSwgQVZYNTEyXzRWTk5JVywKICAgICAgICAgICAgICAgICAgIEFWWDUxMl80Rk1BUFMsIEFW WDUxMl9WUE9QQ05URFFdLApAQCAtMzA1LDEwICsyOTcsOSBAQCBkZWYgY3J1bmNoX251bWJlcnMo c3RhdGUpOgogICAgICAgICAgICAgaWYgbmFtZSBhbmQgbmFtZVswXSBpbiAiMDEyMzQ1Njc4OSI6 CiAgICAgICAgICAgICAgICAgbmFtZSA9ICJfIiArIG5hbWUKIAotICAgICAgICAgICAgIyBEb24n dCBnZW5lcmF0ZSBuYW1lcyBmb3IgdGhlIGR1cGxpY2F0ZSBmZWF0dXJlcywgb3Igb25lcwotICAg ICAgICAgICAgIyBmYXN0LWZvcndhcmRlZCBmcm9tIG90aGVyIHN0YXRlCi0gICAgICAgICAgICBp ZiAobmFtZS5zdGFydHN3aXRoKCJFMURfIikgb3IKLSAgICAgICAgICAgICAgICBuYW1lIGluICgi QVBJQyIsICJPU1hTQVZFIiwgIk9TUEtFIikpOgorICAgICAgICAgICAgIyBEb24ndCBnZW5lcmF0 ZSBuYW1lcyBmb3IgZmVhdHVyZXMgZmFzdC1mb3J3YXJkZWQgZnJvbSBvdGhlcgorICAgICAgICAg ICAgIyBzdGF0ZQorICAgICAgICAgICAgaWYgbmFtZSBpbiAoIkFQSUMiLCAiT1NYU0FWRSIsICJP U1BLRSIpOgogICAgICAgICAgICAgICAgIG5hbWUgPSAiIgogCiAgICAgICAgICAgICBuYW1lcy5h cHBlbmQobmFtZS5sb3dlcigpKQotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK