From mboxrd@z Thu Jan 1 00:00:00 1970 From: Luwei Kang Subject: [PATCH v5] x86/cpuid: AVX-512 Feature Detection Date: Tue, 23 Aug 2016 09:54:24 +0800 Message-ID: <1471917264-13607-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, Luwei Kang , yong.y.wang@intel.com, jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org QVZYNTEyIGlzIGFuIGV4dGVudGlvbiBvZiBBVlgyLiBJdHMgc3BlYyBjYW4gYmUgZm91bmQgYXQ6 Cmh0dHBzOi8vc29mdHdhcmUuaW50ZWwuY29tL3NpdGVzL2RlZmF1bHQvZmlsZXMvbWFuYWdlZC9i NC8zYS8zMTk0MzMtMDI0LnBkZgpUaGlzIHBhdGNoIGRldGVjdHMgQVZYNTEyIGZlYXR1cmVzIGJ5 IENQVUlELgoKU2lnbmVkLW9mZi1ieTogTHV3ZWkgS2FuZyA8bHV3ZWkua2FuZ0BpbnRlbC5jb20+ Ci0tLQpbVjVdOgpNb2RpZnkgdGhlIGNvbW1lbnQgb2YgZGVwZW5kZW5jeSBiZXR3ZWVuIEFWWDUx MiBhbmQgQVZYMi4KW1Y0XToKVXBkYXRlIHRoZSBkZXNjcmlwdGlvbiBhYm91dCBmZWF0dXJlcyBk ZXBlbmRlbmN5LgpbVjNdOgpBZGp1c3QgZGVwZW5kZW5jaWVzIGJldHdlZW4gZmVhdHVyZXMuCltW Ml06CjEuZ2V0IG1heCB4c3RhdGVfc2l6ZSBmcm9tIGVhY2ggYml0LgoyLmNoYW5nZSBnZXQgY3B1 aWQgZnVuY3Rpb24gcGFyYW1ldGVyIGZyb20gMHgwNyB0byA3LgozLmFkZCBkZXBlbmRlbmNpZXMg YmV0d2VlbiBmZWF0dXJlcyBpbiB4ZW4vdG9vbHMvZ2VuLWNwdWlkLnB5Lgo0LnNwbGl0IHRoZSBj cHVpZCBjYWxsIGp1c3QgbGlrZSB0aGUgd2F5IHRoZSBodm1fY3B1aWQoKSBzaWRlIHdvcmtzLgot LS0KIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgICAgICAgICAgICAgfCAxNCArKysr KysrKysrKysrKwogeGVuL2FyY2gveDg2L3RyYXBzLmMgICAgICAgICAgICAgICAgICAgICAgICB8 IDIyICsrKysrKysrKysrKysrKysrKysrKy0KIHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9j cHVmZWF0dXJlc2V0LmggfCAgOSArKysrKysrKysKIHhlbi90b29scy9nZW4tY3B1aWQucHkgICAg ICAgICAgICAgICAgICAgICAgfCAxMCArKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDU0IGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZt L2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA3Zjk5MDg3Li5lZGVhODdlIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v aHZtLmMKQEAgLTM0NzIsNiArMzQ3MiwyMCBAQCB2b2lkIGh2bV9jcHVpZCh1bnNpZ25lZCBpbnQg aW5wdXQsIHVuc2lnbmVkIGludCAqZWF4LCB1bnNpZ25lZCBpbnQgKmVieCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4c3RhdGVfc2l6ZXNbX1hTVEFURV9CTkRDU1JdKTsKICAg ICAgICAgICAgIH0KIAorICAgICAgICAgICAgaWYgKCBfZWJ4ICYgY3B1ZmVhdF9tYXNrKFg4Nl9G RUFUVVJFX0FWWDUxMkYpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB4ZmVhdHVy ZV9tYXNrIHw9IFhTVEFURV9PUE1BU0sgfCBYU1RBVEVfWk1NIHwgWFNUQVRFX0hJX1pNTTsKKyAg ICAgICAgICAgICAgICB4c3RhdGVfc2l6ZSA9IG1heCh4c3RhdGVfc2l6ZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4c3RhdGVfb2Zmc2V0c1tfWFNUQVRFX09QTUFTS10gKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhzdGF0ZV9zaXplc1tfWFNUQVRFX09Q TUFTS10pOworICAgICAgICAgICAgICAgIHhzdGF0ZV9zaXplID0gbWF4KHhzdGF0ZV9zaXplLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhzdGF0ZV9vZmZzZXRzW19YU1RBVEVf Wk1NXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeHN0YXRlX3NpemVzW19Y U1RBVEVfWk1NXSk7CisgICAgICAgICAgICAgICAgeHN0YXRlX3NpemUgPSBtYXgoeHN0YXRlX3Np emUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeHN0YXRlX29mZnNldHNbX1hT VEFURV9ISV9aTU1dICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4c3RhdGVf c2l6ZXNbX1hTVEFURV9ISV9aTU1dKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgaWYg KCBfZWN4ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1BLVSkgKQogICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgIHhmZWF0dXJlX21hc2sgfD0gWFNUQVRFX1BLUlU7CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IDc2N2Qw YjAuLjhmYjY5N2IgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hlbi9h cmNoL3g4Ni90cmFwcy5jCkBAIC05NzUsNyArOTc1LDcgQEAgdm9pZCBwdl9jcHVpZChzdHJ1Y3Qg Y3B1X3VzZXJfcmVncyAqcmVncykKIAogICAgIHN3aXRjaCAoIGxlYWYgKQogICAgIHsKLSAgICAg ICAgdWludDMyX3QgdG1wLCBfZWN4OworICAgICAgICB1aW50MzJfdCB0bXAsIF9lY3gsIF9lYng7 CiAKICAgICBjYXNlIDB4MDAwMDAwMDE6CiAgICAgICAgIGMgJj0gcHZfZmVhdHVyZXNldFtGRUFU VVJFU0VUXzFjXTsKQEAgLTExNTcsNiArMTE1NywyNiBAQCB2b2lkIHB2X2NwdWlkKHN0cnVjdCBj cHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhzdGF0 ZV9zaXplc1tfWFNUQVRFX1lNTV0pOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBpZiAo ICFpc19jb250cm9sX2RvbWFpbihjdXJyZCkgJiYgIWlzX2hhcmR3YXJlX2RvbWFpbihjdXJyZCkg KQorICAgICAgICAgICAgICAgIGRvbWFpbl9jcHVpZChjdXJyZCwgNywgMCwgJnRtcCwgJl9lYngs ICZ0bXAsICZ0bXApOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNwdWlkX2Nv dW50KDcsIDAsICZ0bXAsICZfZWJ4LCAmdG1wLCAmdG1wKTsKKyAgICAgICAgICAgIF9lYnggJj0g cHZfZmVhdHVyZXNldFtGRUFUVVJFU0VUXzdiMF07CisKKyAgICAgICAgICAgIGlmICggX2VieCAm IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9BVlg1MTJGKSApCisgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgeGZlYXR1cmVfbWFzayB8PSBYU1RBVEVfT1BNQVNLIHwgWFNUQVRFX1pNTSB8 IFhTVEFURV9ISV9aTU07CisgICAgICAgICAgICAgICAgeHN0YXRlX3NpemUgPSBtYXgoeHN0YXRl X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeHN0YXRlX29mZnNldHNb X1hTVEFURV9PUE1BU0tdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4c3Rh dGVfc2l6ZXNbX1hTVEFURV9PUE1BU0tdKTsKKyAgICAgICAgICAgICAgICB4c3RhdGVfc2l6ZSA9 IG1heCh4c3RhdGVfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4c3Rh dGVfb2Zmc2V0c1tfWFNUQVRFX1pNTV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHhzdGF0ZV9zaXplc1tfWFNUQVRFX1pNTV0pOworICAgICAgICAgICAgICAgIHhzdGF0ZV9z aXplID0gbWF4KHhzdGF0ZV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHhzdGF0ZV9vZmZzZXRzW19YU1RBVEVfSElfWk1NXSArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeHN0YXRlX3NpemVzW19YU1RBVEVfSElfWk1NXSk7CisgICAgICAgICAgICB9 CisKICAgICAgICAgICAgIGEgPSAodWludDMyX3QpeGZlYXR1cmVfbWFzazsKICAgICAgICAgICAg IGQgPSAodWludDMyX3QpKHhmZWF0dXJlX21hc2sgPj4gMzIpOwogICAgICAgICAgICAgYyA9IHhz dGF0ZV9zaXplOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl YXR1cmVzZXQuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmgK aW5kZXggMzlhY2Y4Yy4uOTMyMGM5ZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2Fy Y2gteDg2L2NwdWZlYXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYv Y3B1ZmVhdHVyZXNldC5oCkBAIC0yMDYsMTUgKzIwNiwyNCBAQCBYRU5fQ1BVRkVBVFVSRShQUU0s ICAgICAgICAgICA1KjMyKzEyKSAvKiAgIFBsYXRmb3JtIFFvUyBNb25pdG9yaW5nICovCiBYRU5f Q1BVRkVBVFVSRShOT19GUFVfU0VMLCAgICA1KjMyKzEzKSAvKiEgIEZQVSBDUy9EUyBzdG9yZWQg YXMgemVybyAqLwogWEVOX0NQVUZFQVRVUkUoTVBYLCAgICAgICAgICAgNSozMisxNCkgLypTICBN ZW1vcnkgUHJvdGVjdGlvbiBFeHRlbnNpb25zICovCiBYRU5fQ1BVRkVBVFVSRShQUUUsICAgICAg ICAgICA1KjMyKzE1KSAvKiAgIFBsYXRmb3JtIFFvUyBFbmZvcmNlbWVudCAqLworWEVOX0NQVUZF QVRVUkUoQVZYNTEyRiwgICAgICAgNSozMisxNikgLypBICBBVlgtNTEyIEZvdW5kYXRpb24gSW5z dHJ1Y3Rpb25zICovCitYRU5fQ1BVRkVBVFVSRShBVlg1MTJEUSwgICAgICA1KjMyKzE3KSAvKkEg IEFWWC01MTIgRG91Ymxld29yZCAmIFF1YWR3b3JkIEluc3RycyAqLwogWEVOX0NQVUZFQVRVUkUo UkRTRUVELCAgICAgICAgNSozMisxOCkgLypBICBSRFNFRUQgaW5zdHJ1Y3Rpb24gKi8KIFhFTl9D UFVGRUFUVVJFKEFEWCwgICAgICAgICAgIDUqMzIrMTkpIC8qQSAgQURDWCwgQURPWCBpbnN0cnVj dGlvbnMgKi8KIFhFTl9DUFVGRUFUVVJFKFNNQVAsICAgICAgICAgIDUqMzIrMjApIC8qUyAgU3Vw ZXJ2aXNvciBNb2RlIEFjY2VzcyBQcmV2ZW50aW9uICovCitYRU5fQ1BVRkVBVFVSRShBVlg1MTJJ Rk1BLCAgICA1KjMyKzIxKSAvKkEgIEFWWC01MTIgSW50ZWdlciBGdXNlZCBNdWx0aXBseSBBZGQg Ki8KIFhFTl9DUFVGRUFUVVJFKENMRkxVU0hPUFQsICAgIDUqMzIrMjMpIC8qQSAgQ0xGTFVTSE9Q VCBpbnN0cnVjdGlvbiAqLwogWEVOX0NQVUZFQVRVUkUoQ0xXQiwgICAgICAgICAgNSozMisyNCkg LypBICBDTFdCIGluc3RydWN0aW9uICovCitYRU5fQ1BVRkVBVFVSRShBVlg1MTJQRiwgICAgICA1 KjMyKzI2KSAvKkEgIEFWWC01MTIgUHJlZmV0Y2ggSW5zdHJ1Y3Rpb25zICovCitYRU5fQ1BVRkVB VFVSRShBVlg1MTJFUiwgICAgICA1KjMyKzI3KSAvKkEgIEFWWC01MTIgRXhwb25lbnQgJiBSZWNp cHJvY2FsIEluc3RycyAqLworWEVOX0NQVUZFQVRVUkUoQVZYNTEyQ0QsICAgICAgNSozMisyOCkg LypBICBBVlgtNTEyIENvbmZsaWN0IERldGVjdGlvbiBJbnN0cnMgKi8KIFhFTl9DUFVGRUFUVVJF KFNIQSwgICAgICAgICAgIDUqMzIrMjkpIC8qQSAgU0hBMSAmIFNIQTI1NiBpbnN0cnVjdGlvbnMg Ki8KK1hFTl9DUFVGRUFUVVJFKEFWWDUxMkJXLCAgICAgIDUqMzIrMzApIC8qQSAgQVZYLTUxMiBC eXRlIGFuZCBXb3JkIEluc3RydWN0aW9ucyAqLworWEVOX0NQVUZFQVRVUkUoQVZYNTEyVkwsICAg ICAgNSozMiszMSkgLypBICBBVlgtNTEyIFZlY3RvciBMZW5ndGggRXh0ZW5zaW9ucyAqLwogCiAv KiBJbnRlbC1kZWZpbmVkIENQVSBmZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHgwMDAwMDAwNzowLmVj eCwgd29yZCA2ICovCiBYRU5fQ1BVRkVBVFVSRShQUkVGRVRDSFdUMSwgICA2KjMyKyAwKSAvKkEg IFBSRUZFVENIV1QxIGluc3RydWN0aW9uICovCitYRU5fQ1BVRkVBVFVSRShBVlg1MTJWQk1JLCAg ICA2KjMyKyAxKSAvKkEgIEFWWC01MTIgVmVjdG9yIEJ5dGUgTWFuaXB1bGF0aW9uIEluc3RycyAq LwogWEVOX0NQVUZFQVRVUkUoUEtVLCAgICAgICAgICAgNiozMisgMykgLypIICBQcm90ZWN0aW9u IEtleXMgZm9yIFVzZXJzcGFjZSAqLwogWEVOX0NQVUZFQVRVUkUoT1NQS0UsICAgICAgICAgNioz MisgNCkgLyohICBPUyBQcm90ZWN0aW9uIEtleXMgRW5hYmxlICovCiAKZGlmZiAtLWdpdCBhL3hl bi90b29scy9nZW4tY3B1aWQucHkgYi94ZW4vdG9vbHMvZ2VuLWNwdWlkLnB5CmluZGV4IDdjNDVl Y2EuLjAyMjlkMmMgMTAwNzU1Ci0tLSBhL3hlbi90b29scy9nZW4tY3B1aWQucHkKKysrIGIveGVu L3Rvb2xzL2dlbi1jcHVpZC5weQpAQCAtMjQzLDYgKzI0MywxNiBAQCBkZWYgY3J1bmNoX251bWJl cnMoc3RhdGUpOgogICAgICAgICAjIEFNRCBLNi0yKyBhbmQgSzYtSUlJIHByb2Nlc3NvcnMgc2hp cHBlZCB3aXRoIDNETm93KywgYmV5b25kIHRoZQogICAgICAgICAjIHN0YW5kYXJkIDNETm93IGlu IHRoZSBlYXJsaWVyIEs2IHByb2Nlc3NvcnMuCiAgICAgICAgIF8zRE5PVzogW18zRE5PV0VYVF0s CisKKyAgICAgICAgIyBUaGlzIGlzIGp1c3QgdGhlIGRlcGVuZGVuY3kgYmV0d2VlbiBBVlg1MTIg YW5kIEFWWDIgb2YgWFNUQVRFIGZlYXR1cmUgZmxhZ3MuCisgICAgICAgICMgSWYgd2FudCB0byB1 c2UgQVZYNTEyLCBBVlgyIG11c3QgYmUgc3VwcG9ydGVkIGFuZCBlbmFibGVkLgorICAgICAgICBB VlgyOiBbQVZYNTEyRl0sCisKKyAgICAgICAgIyBBVlg1MTJGIGlzIHRha2VuIHRvIG1lYW4gaGFy ZHdhcmUgc3VwcG9ydCBmb3IgRVZFWCBlbmNvZGVkIGluc3RydWN0aW9ucywKKyAgICAgICAgIyA1 MTJiaXQgcmVnaXN0ZXJzLCBhbmQgdGhlIGluc3RydWN0aW9ucyB0aGVtc2VsdmVzLiBBbGwgZnVy dGhlciBBVlg1MTIgZmVhdHVyZXMKKyAgICAgICAgIyBhcmUgYnVpbHQgb24gdG9wIG9mIEFWWDUx MkYKKyAgICAgICAgQVZYNTEyRjogW0FWWDUxMkRRLCBBVlg1MTJJRk1BLCBBVlg1MTJQRiwgQVZY NTEyRVIsIEFWWDUxMkNELAorICAgICAgICAgICAgICAgICAgICBBVlg1MTJCVywgQVZYNTEyVkws IEFWWDUxMlZCTUldLAogICAgIH0KIAogICAgIGRlZXBfZmVhdHVyZXMgPSB0dXBsZShzb3J0ZWQo ZGVwcy5rZXlzKCkpKQotLSAKMi40LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK