From mboxrd@z Thu Jan 1 00:00:00 1970 From: Luwei Kang Subject: [PATCH] x86/cpuid: AVX-512 Feature Detection Date: Wed, 29 Jun 2016 09:57:59 +0800 Message-ID: <1467165479-18754-1-git-send-email-luwei.kang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: andrew.cooper3@citrix.com, chao.p.peng@intel.com, Luwei Kang , yong.y.wang@intel.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org QVZYLTUxMiBpcyBhbiBleHRlbnRpb24gb2YgQVZYMi4gSXRzIHNwZWMgY2FuIGJlIGZvdW5kIGF0 OgpodHRwczovL3NvZnR3YXJlLmludGVsLmNvbS9zaXRlcy9kZWZhdWx0L2ZpbGVzL21hbmFnZWQv YjQvM2EvMzE5NDMzLTAyNC5wZGYKVGhpcyBwYXRjaCBkZXRlY3RzIEFWWC01MTIgZmVhdHVyZXMg YnkgQ1BVSUQuCgpTaWduZWQtb2ZmLWJ5OiBMdXdlaSBLYW5nIDxsdXdlaS5rYW5nQGludGVsLmNv bT4KLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgICAgICAgICAgIHwgMTQg KysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4Ni90cmFwcy5jICAgICAgICAgICAgICAgICAgICAg ICAgfCAyNCArKysrKysrKysrKysrKysrKysrKysrKy0KIHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNo LXg4Ni9jcHVmZWF0dXJlc2V0LmggfCAgOSArKysrKysrKysKIHhlbi90b29scy9nZW4tY3B1aWQu cHkgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKysrCiA0IGZpbGVzIGNoYW5nZWQsIDUwIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZt L2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCBjODlhYjZlLi43Njk2YjFlIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v aHZtLmMKQEAgLTM0NzQsNiArMzQ3NCwyMCBAQCB2b2lkIGh2bV9jcHVpZCh1bnNpZ25lZCBpbnQg aW5wdXQsIHVuc2lnbmVkIGludCAqZWF4LCB1bnNpZ25lZCBpbnQgKmVieCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4c3RhdGVfc2l6ZXNbX1hTVEFURV9CTkRDU1JdKTsKICAg ICAgICAgICAgIH0KIAorICAgICAgICAgICAgaWYgKCBfZWJ4ICYgY3B1ZmVhdF9tYXNrKFg4Nl9G RUFUVVJFX0FWWDUxMkYpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB4ZmVhdHVy ZV9tYXNrIHw9IFhTVEFURV9PUE1BU0sgfCBYU1RBVEVfWk1NIHwgWFNUQVRFX0hJX1pNTTsKKyAg ICAgICAgICAgICAgICB4c3RhdGVfc2l6ZSA9IG1heCh4c3RhdGVfc2l6ZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4c3RhdGVfb2Zmc2V0c1tfWFNUQVRFX09QTUFTS10gKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhzdGF0ZV9zaXplc1tfWFNUQVRFX09Q TUFTS10pOworICAgICAgICAgICAgICAgIHhzdGF0ZV9zaXplID0gbWF4KHhzdGF0ZV9zaXplLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhzdGF0ZV9vZmZzZXRzW19YU1RBVEVf Wk1NXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeHN0YXRlX3NpemVzW19Y U1RBVEVfWk1NXSk7CisgICAgICAgICAgICAgICAgeHN0YXRlX3NpemUgPSBtYXgoeHN0YXRlX3Np emUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeHN0YXRlX29mZnNldHNbX1hT VEFURV9ISV9aTU1dICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4c3RhdGVf c2l6ZXNbX1hTVEFURV9ISV9aTU1dKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgaWYg KCBfZWN4ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1BLVSkgKQogICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgIHhmZWF0dXJlX21hc2sgfD0gWFNUQVRFX1BLUlU7CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IDc2N2Qw YjAuLmExOTAxMDMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hlbi9h cmNoL3g4Ni90cmFwcy5jCkBAIC05NzUsNyArOTc1LDcgQEAgdm9pZCBwdl9jcHVpZChzdHJ1Y3Qg Y3B1X3VzZXJfcmVncyAqcmVncykKIAogICAgIHN3aXRjaCAoIGxlYWYgKQogICAgIHsKLSAgICAg ICAgdWludDMyX3QgdG1wLCBfZWN4OworICAgICAgICB1aW50MzJfdCB0bXAsIF9lY3gsIF9lYng7 CiAKICAgICBjYXNlIDB4MDAwMDAwMDE6CiAgICAgICAgIGMgJj0gcHZfZmVhdHVyZXNldFtGRUFU VVJFU0VUXzFjXTsKQEAgLTExMzksNiArMTEzOSw3IEBAIHZvaWQgcHZfY3B1aWQoc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgICAgICBkb21haW5fY3B1aWQoY3VycmQsIDEsIDAs ICZ0bXAsICZ0bXAsICZfZWN4LCAmdG1wKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgX2Vj eCA9IGNwdWlkX2VjeCgxKTsKKwogICAgICAgICBfZWN4ICY9IHB2X2ZlYXR1cmVzZXRbRkVBVFVS RVNFVF8xY107CiAKICAgICAgICAgaWYgKCAhKF9lY3ggJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRV UkVfWFNBVkUpKSB8fCBzdWJsZWFmID49IDYzICkKQEAgLTExNTcsNiArMTE1OCwyNyBAQCB2b2lk IHB2X2NwdWlkKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHhzdGF0ZV9zaXplc1tfWFNUQVRFX1lNTV0pOwogICAgICAgICAgICAgfQog CisgICAgICAgICAgICBpZiAoICFpc19jb250cm9sX2RvbWFpbihjdXJyZCkgJiYgIWlzX2hhcmR3 YXJlX2RvbWFpbihjdXJyZCkgKQorICAgICAgICAgICAgICAgIGRvbWFpbl9jcHVpZChjdXJyZCwg NywgMCwgJnRtcCwgJl9lYngsICZ0bXAsICZ0bXApOworICAgICAgICAgICAgZWxzZQorICAgICAg ICAgICAgICAgIGNwdWlkX2NvdW50KDcsIDAsICZ0bXAsICZfZWJ4LCAmdG1wLCAmdG1wKTsKKwor ICAgICAgICAgICAgX2VieCAmPSBwdl9mZWF0dXJlc2V0W0ZFQVRVUkVTRVRfN2IwXTsKKworICAg ICAgICAgICAgaWYgKCBfZWJ4ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0FWWDUxMkYpICkK KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB4ZmVhdHVyZV9tYXNrIHw9IFhTVEFURV9P UE1BU0sgfCBYU1RBVEVfWk1NIHwgWFNUQVRFX0hJX1pNTTsKKyAgICAgICAgICAgICAgICB4c3Rh dGVfc2l6ZSA9IG1heCh4c3RhdGVfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB4c3RhdGVfb2Zmc2V0c1tfWFNUQVRFX09QTUFTS10gKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHhzdGF0ZV9zaXplc1tfWFNUQVRFX09QTUFTS10pOworICAgICAgICAg ICAgICAgIHhzdGF0ZV9zaXplID0gbWF4KHhzdGF0ZV9zaXplLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHhzdGF0ZV9vZmZzZXRzW19YU1RBVEVfWk1NXSArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeHN0YXRlX3NpemVzW19YU1RBVEVfWk1NXSk7CisgICAg ICAgICAgICAgICAgeHN0YXRlX3NpemUgPSBtYXgoeHN0YXRlX3NpemUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgeHN0YXRlX29mZnNldHNbX1hTVEFURV9ISV9aTU1dICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4c3RhdGVfc2l6ZXNbX1hTVEFURV9ISV9a TU1dKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgYSA9ICh1aW50MzJfdCl4ZmVhdHVy ZV9tYXNrOwogICAgICAgICAgICAgZCA9ICh1aW50MzJfdCkoeGZlYXR1cmVfbWFzayA+PiAzMik7 CiAgICAgICAgICAgICBjID0geHN0YXRlX3NpemU7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9w dWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt eDg2L2NwdWZlYXR1cmVzZXQuaAppbmRleCAzOWFjZjhjLi45MzIwYzllIDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCisrKyBiL3hlbi9pbmNs dWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmgKQEAgLTIwNiwxNSArMjA2LDI0IEBA IFhFTl9DUFVGRUFUVVJFKFBRTSwgICAgICAgICAgIDUqMzIrMTIpIC8qICAgUGxhdGZvcm0gUW9T IE1vbml0b3JpbmcgKi8KIFhFTl9DUFVGRUFUVVJFKE5PX0ZQVV9TRUwsICAgIDUqMzIrMTMpIC8q ISAgRlBVIENTL0RTIHN0b3JlZCBhcyB6ZXJvICovCiBYRU5fQ1BVRkVBVFVSRShNUFgsICAgICAg ICAgICA1KjMyKzE0KSAvKlMgIE1lbW9yeSBQcm90ZWN0aW9uIEV4dGVuc2lvbnMgKi8KIFhFTl9D UFVGRUFUVVJFKFBRRSwgICAgICAgICAgIDUqMzIrMTUpIC8qICAgUGxhdGZvcm0gUW9TIEVuZm9y Y2VtZW50ICovCitYRU5fQ1BVRkVBVFVSRShBVlg1MTJGLCAgICAgICA1KjMyKzE2KSAvKkEgIEFW WC01MTIgRm91bmRhdGlvbiBJbnN0cnVjdGlvbnMgKi8KK1hFTl9DUFVGRUFUVVJFKEFWWDUxMkRR LCAgICAgIDUqMzIrMTcpIC8qQSAgQVZYLTUxMiBEb3VibGV3b3JkICYgUXVhZHdvcmQgSW5zdHJz ICovCiBYRU5fQ1BVRkVBVFVSRShSRFNFRUQsICAgICAgICA1KjMyKzE4KSAvKkEgIFJEU0VFRCBp bnN0cnVjdGlvbiAqLwogWEVOX0NQVUZFQVRVUkUoQURYLCAgICAgICAgICAgNSozMisxOSkgLypB ICBBRENYLCBBRE9YIGluc3RydWN0aW9ucyAqLwogWEVOX0NQVUZFQVRVUkUoU01BUCwgICAgICAg ICAgNSozMisyMCkgLypTICBTdXBlcnZpc29yIE1vZGUgQWNjZXNzIFByZXZlbnRpb24gKi8KK1hF Tl9DUFVGRUFUVVJFKEFWWDUxMklGTUEsICAgIDUqMzIrMjEpIC8qQSAgQVZYLTUxMiBJbnRlZ2Vy IEZ1c2VkIE11bHRpcGx5IEFkZCAqLwogWEVOX0NQVUZFQVRVUkUoQ0xGTFVTSE9QVCwgICAgNSoz MisyMykgLypBICBDTEZMVVNIT1BUIGluc3RydWN0aW9uICovCiBYRU5fQ1BVRkVBVFVSRShDTFdC LCAgICAgICAgICA1KjMyKzI0KSAvKkEgIENMV0IgaW5zdHJ1Y3Rpb24gKi8KK1hFTl9DUFVGRUFU VVJFKEFWWDUxMlBGLCAgICAgIDUqMzIrMjYpIC8qQSAgQVZYLTUxMiBQcmVmZXRjaCBJbnN0cnVj dGlvbnMgKi8KK1hFTl9DUFVGRUFUVVJFKEFWWDUxMkVSLCAgICAgIDUqMzIrMjcpIC8qQSAgQVZY LTUxMiBFeHBvbmVudCAmIFJlY2lwcm9jYWwgSW5zdHJzICovCitYRU5fQ1BVRkVBVFVSRShBVlg1 MTJDRCwgICAgICA1KjMyKzI4KSAvKkEgIEFWWC01MTIgQ29uZmxpY3QgRGV0ZWN0aW9uIEluc3Ry cyAqLwogWEVOX0NQVUZFQVRVUkUoU0hBLCAgICAgICAgICAgNSozMisyOSkgLypBICBTSEExICYg U0hBMjU2IGluc3RydWN0aW9ucyAqLworWEVOX0NQVUZFQVRVUkUoQVZYNTEyQlcsICAgICAgNSoz MiszMCkgLypBICBBVlgtNTEyIEJ5dGUgYW5kIFdvcmQgSW5zdHJ1Y3Rpb25zICovCitYRU5fQ1BV RkVBVFVSRShBVlg1MTJWTCwgICAgICA1KjMyKzMxKSAvKkEgIEFWWC01MTIgVmVjdG9yIExlbmd0 aCBFeHRlbnNpb25zICovCiAKIC8qIEludGVsLWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJRCBs ZXZlbCAweDAwMDAwMDA3OjAuZWN4LCB3b3JkIDYgKi8KIFhFTl9DUFVGRUFUVVJFKFBSRUZFVENI V1QxLCAgIDYqMzIrIDApIC8qQSAgUFJFRkVUQ0hXVDEgaW5zdHJ1Y3Rpb24gKi8KK1hFTl9DUFVG RUFUVVJFKEFWWDUxMlZCTUksICAgIDYqMzIrIDEpIC8qQSAgQVZYLTUxMiBWZWN0b3IgQnl0ZSBN YW5pcHVsYXRpb24gSW5zdHJzICovCiBYRU5fQ1BVRkVBVFVSRShQS1UsICAgICAgICAgICA2KjMy KyAzKSAvKkggIFByb3RlY3Rpb24gS2V5cyBmb3IgVXNlcnNwYWNlICovCiBYRU5fQ1BVRkVBVFVS RShPU1BLRSwgICAgICAgICA2KjMyKyA0KSAvKiEgIE9TIFByb3RlY3Rpb24gS2V5cyBFbmFibGUg Ki8KIApkaWZmIC0tZ2l0IGEveGVuL3Rvb2xzL2dlbi1jcHVpZC5weSBiL3hlbi90b29scy9nZW4t Y3B1aWQucHkKaW5kZXggN2M0NWVjYS4uODk3ZTY2MCAxMDA3NTUKLS0tIGEveGVuL3Rvb2xzL2dl bi1jcHVpZC5weQorKysgYi94ZW4vdG9vbHMvZ2VuLWNwdWlkLnB5CkBAIC0yMzUsNiArMjM1LDEw IEBAIGRlZiBjcnVuY2hfbnVtYmVycyhzdGF0ZSk6CiAgICAgICAgICMgc3Vic2VxdWVudCBpbnN0 cnVjdGlvbiBncm91cHMgbWF5IG9ubHkgYmUgVkVYIGVuY29kZWQuCiAgICAgICAgIEFWWDogW0ZN QSwgRk1BNCwgRjE2QywgQVZYMiwgWE9QXSwKIAorICAgICAgICAjIEFWWC01MTIgaXMgYW4gZXh0 ZW50aW9uIG9mIEFWWDIgYW5kIGl0IGRlcGVuZHMgb24gQVZYMiBhdmFpbGFibGUuCisgICAgICAg IEFWWDI6IFtBVlg1MTJGLCBBVlg1MTJEUSwgQVZYNTEySUZNQSwgQVZYNTEyUEYsIEFWWDUxMkVS LCBBVlg1MTJDRCwKKyAgICAgICAgICAgICAgICBBVlg1MTJCVywgQVZYNTEyVkwsIEFWWDUxMlZC TUldLAorCiAgICAgICAgICMgQ1gxNiBpcyBvbmx5IGVuY29kYWJsZSBpbiBMb25nIE1vZGUuICBM QUhGX0xNIGluZGljYXRlcyB0aGF0IHRoZQogICAgICAgICAjIFNBSEYvTEFIRiBpbnN0cnVjdGlv bnMgYXJlIHJlaW50cm9kdWNlZCBpbiBMb25nIE1vZGUuICAxR0IKICAgICAgICAgIyBzdXBlcnBh Z2VzLCBQQ0lEIGFuZCBQS1UgYXJlIG9ubHkgYXZhaWxhYmxlIGluIDQgbGV2ZWwgcGFnaW5nLgot LSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=