From patchwork Fri Nov 10 09:36:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10052669 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 943926032D for ; Fri, 10 Nov 2017 09:39:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8C3482AF1C for ; Fri, 10 Nov 2017 09:39:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 80A632AF29; Fri, 10 Nov 2017 09:39:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id E98DC2AF25 for ; Fri, 10 Nov 2017 09:39:09 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eD5k6-0003FB-VR; Fri, 10 Nov 2017 09:36:54 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eD5k6-0003Ez-Id for xen-devel@lists.xen.org; Fri, 10 Nov 2017 09:36:54 +0000 Received: from [85.158.143.35] by server-7.bemta-6.messagelabs.com id 4D/00-25852-533750A5; Fri, 10 Nov 2017 09:36:53 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupikeJIrShJLcpLzFFi42I5YG5SoWtazBp lsHGRpMWSj4tZHBg9ju7+zRTAGMWamZeUX5HAmrF40hLWglMaFfP3fWNuYJyk0MXIySEkMI1R oukeM4gtIcArcWTZDFYI21/i1f03LF2MXEA1jYwSbzsvsYMk2ATUJT71rwMrEhGQlrj2+TIji M0sUCzROq8ZLC4s4Cnx4+5jIJuDg0VAVaL5ZDxImFfAWWLm6Q42iPlyEiePTQYr4RRwkdi7KR LiHGeJBZdmMk5g5F3AyLCKUaM4tagstUjX2FAvqSgzPaMkNzEzR9fQwEwvN7W4ODE9NScxqVg vOT93EyMwFBiAYAdj06LAQ4ySHExKorxSlixRQnxJ+SmVGYnFGfFFpTmpxYcYZTg4lCR43xay RgkJFqWmp1akZeYAgxImLcHBoyTCK1QElOYtLkjMLc5Mh0idYrTnOLbp8h8mjkc37gLJZzNfN zBzTLva2sQsxJKXn5cqJc7bDjJVAKQtozQPbigsii4xykoJ8zICnSnEU5BalJtZgir/ilGcg1 FJmFcdZDlPZl4J3O5XQGcxAZ0Vzc4CclZJIkJKqoFxwZL8MxdM1Ip8/C3b3rn9tZa0ifgQJRe w5dC6xe+aqzTl6wNu1u5Nj1sodpN1ydVnE1K8Szcuf/2qX2/upD1rb38u+m3Syv1g5X6+lx+s rxUF9565EMV1RHlO0cbWpStPx8jdPaagqcvDfk3A8bLStd87bWL9uCIub7KWYVrwSW+y4BvOh ZFzlFiKMxINtZiLihMBG1HJpJ0CAAA= X-Env-Sender: yang.zhong@intel.com X-Msg-Ref: server-13.tower-21.messagelabs.com!1510306610!75523726!2 X-Originating-IP: [192.55.52.120] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.45; banners=-,-,- X-VirusChecked: Checked Received: (qmail 54844 invoked from network); 10 Nov 2017 09:36:53 -0000 Received: from mga04.intel.com (HELO mga04.intel.com) (192.55.52.120) by server-13.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 10 Nov 2017 09:36:53 -0000 Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Nov 2017 01:36:49 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,373,1505804400"; d="scan'208";a="172009109" Received: from yangzhon-virtual.bj.intel.com ([10.238.145.49]) by orsmga005.jf.intel.com with ESMTP; 10 Nov 2017 01:36:47 -0800 From: Yang Zhong To: xen-devel@lists.xen.org Date: Fri, 10 Nov 2017 17:36:05 +0800 Message-Id: <1510306568-9701-2-git-send-email-yang.zhong@intel.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1510306568-9701-1-git-send-email-yang.zhong@intel.com> References: <1510306568-9701-1-git-send-email-yang.zhong@intel.com> Cc: yang.zhong@intel.com, yi.y.sun@intel.com, chao.p.peng@intel.com, luwei.kang@intel.com, yu.c.zhang@intel.com Subject: [Xen-devel] [PATCH v2 1/4] x86/cpuid: Enable new SSE/AVX/AVX512 cpu features X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Intel IceLake cpu has added new cpu features: AVX512VBMI2/GFNI/ VAES/AVX512VNNI/AVX512BITALG/VPCLMULQDQ. Those new cpu features need expose to guest. The bit definition: CPUID.(EAX=7,ECX=0):ECX[bit 06] AVX512VBMI2 CPUID.(EAX=7,ECX=0):ECX[bit 08] GFNI CPUID.(EAX=7,ECX=0):ECX[bit 09] VAES CPUID.(EAX=7,ECX=0):ECX[bit 10] VPCLMULQDQ CPUID.(EAX=7,ECX=0):ECX[bit 11] AVX512VNNI CPUID.(EAX=7,ECX=0):ECX[bit 12] AVX512_BITALG The release document ref below link: https://software.intel.com/sites/default/files/managed/c5/15/\ architecture-instruction-set-extensions-programming-reference.pdf Signed-off-by: Yang Zhong Acked-by: Jan Beulich --- docs/man/xl.cfg.pod.5.in | 3 ++- tools/libxl/libxl_cpuid.c | 6 ++++++ tools/misc/xen-cpuid.c | 13 +++++++------ xen/include/public/arch-x86/cpufeatureset.h | 6 ++++++ xen/tools/gen-cpuid.py | 3 ++- 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/docs/man/xl.cfg.pod.5.in b/docs/man/xl.cfg.pod.5.in index b7b91d8..d056768 100644 --- a/docs/man/xl.cfg.pod.5.in +++ b/docs/man/xl.cfg.pod.5.in @@ -1731,7 +1731,8 @@ perfctr_core perfctr_nb pge pku popcnt pse pse36 psn rdrand rdseed rdtscp rtm sha skinit smap smep smx ss sse sse2 sse3 sse4.1 sse4.2 sse4_1 sse4_2 sse4a ssse3 svm svm_decode svm_lbrv svm_npt svm_nrips svm_pausefilt svm_tscrate svm_vmcbclean syscall sysenter tbm tm tm2 topoext tsc tsc-deadline tsc_adjust -umip vme vmx wdt x2apic xop xsave xtpr +umip vme vmx wdt x2apic xop xsave xtpr avx512_vbmi2 gfni vaes vpclmulqdq +avx512_vnni avx512_bitalg The xend syntax is a list of values in the form of diff --git a/tools/libxl/libxl_cpuid.c b/tools/libxl/libxl_cpuid.c index e692b61..614991f 100644 --- a/tools/libxl/libxl_cpuid.c +++ b/tools/libxl/libxl_cpuid.c @@ -199,6 +199,12 @@ int libxl_cpuid_parse_config(libxl_cpuid_policy_list *cpuid, const char* str) {"umip", 0x00000007, 0, CPUID_REG_ECX, 2, 1}, {"pku", 0x00000007, 0, CPUID_REG_ECX, 3, 1}, {"ospke", 0x00000007, 0, CPUID_REG_ECX, 4, 1}, + {"avx512_vbmi2", 0x00000007, 0, CPUID_REG_ECX, 6, 1}, + {"gfni", 0x00000007, 0, CPUID_REG_ECX, 8, 1}, + {"vaes", 0x00000007, 0, CPUID_REG_ECX, 9, 1}, + {"vpclmulqdq", 0x00000007, 0, CPUID_REG_ECX, 10, 1}, + {"avx512_vnni", 0x00000007, 0, CPUID_REG_ECX, 11, 1}, + {"avx512_bitalg",0x00000007, 0, CPUID_REG_ECX, 12, 1}, {"avx512-4vnniw",0x00000007, 0, CPUID_REG_EDX, 2, 1}, {"avx512-4fmaps",0x00000007, 0, CPUID_REG_EDX, 3, 1}, diff --git a/tools/misc/xen-cpuid.c b/tools/misc/xen-cpuid.c index 106be0f..985deea 100644 --- a/tools/misc/xen-cpuid.c +++ b/tools/misc/xen-cpuid.c @@ -120,12 +120,13 @@ static const char *str_Da1[32] = static const char *str_7c0[32] = { - [ 0] = "prechwt1", [ 1] = "avx512vbmi", - [ 2] = "REZ", [ 3] = "pku", - [ 4] = "ospke", - - [5 ... 13] = "REZ", - + [ 0] = "prechwt1", [ 1] = "avx512vbmi", + [ 2] = "REZ", [ 3] = "pku", + [ 4] = "ospke", [ 5] = "REZ", + [ 6] = "avx512_vbmi2", [ 7] = "REZ", + [ 8] = "gfni", [ 9] = "vaes", + [10] = "vpclmulqdq", [11] = "avx512_vnni", + [12] = "avx512_bitalg",[13] = "REZ", [14] = "avx512_vpopcntdq", [15 ... 31] = "REZ", diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h index 0ee3ea3..bb24b79 100644 --- a/xen/include/public/arch-x86/cpufeatureset.h +++ b/xen/include/public/arch-x86/cpufeatureset.h @@ -228,6 +228,12 @@ XEN_CPUFEATURE(AVX512VBMI, 6*32+ 1) /*A AVX-512 Vector Byte Manipulation Ins XEN_CPUFEATURE(UMIP, 6*32+ 2) /*S User Mode Instruction Prevention */ XEN_CPUFEATURE(PKU, 6*32+ 3) /*H Protection Keys for Userspace */ XEN_CPUFEATURE(OSPKE, 6*32+ 4) /*! OS Protection Keys Enable */ +XEN_CPUFEATURE(AVX512_VBMI2, 6*32+ 6) /*A addition AVX-512 VBMI Instructions */ +XEN_CPUFEATURE(GFNI, 6*32+ 8) /*A Galois Field New Instructions */ +XEN_CPUFEATURE(VAES, 6*32+ 9) /*A Vector AES instructions */ +XEN_CPUFEATURE(VPCLMULQDQ, 6*32+ 10) /*A vector PCLMULQDQ instructions */ +XEN_CPUFEATURE(AVX512_VNNI, 6*32+ 11) /*A Vector Neural Network Instructions */ +XEN_CPUFEATURE(AVX512_BITALG, 6*32+ 12) /*A support for VPOPCNT[B,W] and VPSHUFBITQMB*/ XEN_CPUFEATURE(AVX512_VPOPCNTDQ, 6*32+14) /*A POPCNT for vectors of DW/QW */ XEN_CPUFEATURE(RDPID, 6*32+22) /*A RDPID instruction */ diff --git a/xen/tools/gen-cpuid.py b/xen/tools/gen-cpuid.py index 9ec4486..be8df48 100755 --- a/xen/tools/gen-cpuid.py +++ b/xen/tools/gen-cpuid.py @@ -255,7 +255,8 @@ def crunch_numbers(state): # top of AVX512F AVX512F: [AVX512DQ, AVX512IFMA, AVX512PF, AVX512ER, AVX512CD, AVX512BW, AVX512VL, AVX512VBMI, AVX512_4VNNIW, - AVX512_4FMAPS, AVX512_VPOPCNTDQ], + AVX512_4FMAPS, AVX512_VPOPCNTDQ, AVX512_VBMI2, + AVX512_VNNI, AVX512_BITALG], } deep_features = tuple(sorted(deps.keys()))