|
|
9ae3a8 |
From 1d9d6bd6721a92ae161bd7a4e9de202691b90da0 Mon Sep 17 00:00:00 2001
|
|
|
9ae3a8 |
From: "plai@redhat.com" <plai@redhat.com>
|
|
|
9ae3a8 |
Date: Tue, 8 May 2018 17:40:48 +0200
|
|
|
9ae3a8 |
Subject: [PATCH 01/17] x86/cpu: Enable new SSE/AVX/AVX512 cpu features
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
RH-Author: plai@redhat.com
|
|
|
9ae3a8 |
Message-id: <1525801248-24104-1-git-send-email-plai@redhat.com>
|
|
|
9ae3a8 |
Patchwork-id: 80114
|
|
|
9ae3a8 |
O-Subject: [RHEL7.6 PATCH BZ 1513686] x86/cpu: Enable new SSE/AVX/AVX512 cpu features
|
|
|
9ae3a8 |
Bugzilla: 1513686
|
|
|
9ae3a8 |
RH-Acked-by: Eduardo Habkost <ehabkost@redhat.com>
|
|
|
9ae3a8 |
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
|
|
9ae3a8 |
RH-Acked-by: Radim Krcmar <rkrcmar@redhat.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
From: Yang Zhong <yang.zhong@intel.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Intel OTC Virt tested.
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Intel IceLake cpu has added new cpu features,AVX512_VBMI2/GFNI/
|
|
|
9ae3a8 |
VAES/VPCLMULQDQ/AVX512_VNNI/AVX512_BITALG. Those new cpu features
|
|
|
9ae3a8 |
need expose to guest VM.
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
The bit definition:
|
|
|
9ae3a8 |
CPUID.(EAX=7,ECX=0):ECX[bit 06] AVX512_VBMI2
|
|
|
9ae3a8 |
CPUID.(EAX=7,ECX=0):ECX[bit 08] GFNI
|
|
|
9ae3a8 |
CPUID.(EAX=7,ECX=0):ECX[bit 09] VAES
|
|
|
9ae3a8 |
CPUID.(EAX=7,ECX=0):ECX[bit 10] VPCLMULQDQ
|
|
|
9ae3a8 |
CPUID.(EAX=7,ECX=0):ECX[bit 11] AVX512_VNNI
|
|
|
9ae3a8 |
CPUID.(EAX=7,ECX=0):ECX[bit 12] AVX512_BITALG
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
The release document ref below link:
|
|
|
9ae3a8 |
https://software.intel.com/sites/default/files/managed/c5/15/\
|
|
|
9ae3a8 |
architecture-instruction-set-extensions-programming-reference.pdf
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
|
|
|
9ae3a8 |
Message-Id: <1511335676-20797-1-git-send-email-yang.zhong@intel.com>
|
|
|
9ae3a8 |
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
9ae3a8 |
(cherry picked from commit aff9e6e46a343e1404498be4edd03db1112f0950)
|
|
|
9ae3a8 |
Signed-off-by: Paul Lai <plai@redhat.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Resolved Conflicts:
|
|
|
9ae3a8 |
target/i386/cpu.c
|
|
|
9ae3a8 |
target/i386/cpu.h
|
|
|
9ae3a8 |
changes applied to target-i386/cpu.{c,h}
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9ae3a8 |
---
|
|
|
9ae3a8 |
target-i386/cpu.c | 6 +++---
|
|
|
9ae3a8 |
target-i386/cpu.h | 6 ++++++
|
|
|
9ae3a8 |
2 files changed, 9 insertions(+), 3 deletions(-)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
|
|
|
9ae3a8 |
index 539c202..48a5507 100644
|
|
|
9ae3a8 |
--- a/target-i386/cpu.c
|
|
|
9ae3a8 |
+++ b/target-i386/cpu.c
|
|
|
9ae3a8 |
@@ -156,9 +156,9 @@ static const char *cpuid_7_0_ebx_feature_name[] = {
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
static const char *cpuid_7_0_ecx_feature_name[] = {
|
|
|
9ae3a8 |
NULL, "avx512vbmi", NULL, "pku",
|
|
|
9ae3a8 |
- "ospke", NULL, NULL, NULL,
|
|
|
9ae3a8 |
- NULL, NULL, NULL, NULL,
|
|
|
9ae3a8 |
- NULL, NULL, "avx512-vpopcntdq", NULL,
|
|
|
9ae3a8 |
+ "ospke", NULL, "avx512vbmi2", NULL,
|
|
|
9ae3a8 |
+ "gfni", "vaes", "vpclmulqdq", "avx512vnni",
|
|
|
9ae3a8 |
+ "avx512bitalg", NULL, "avx512-vpopcntdq", NULL,
|
|
|
9ae3a8 |
NULL, NULL, NULL, NULL,
|
|
|
9ae3a8 |
NULL, NULL, NULL, NULL,
|
|
|
9ae3a8 |
NULL, NULL, NULL, NULL,
|
|
|
9ae3a8 |
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
|
|
|
9ae3a8 |
index da84443..a781639 100644
|
|
|
9ae3a8 |
--- a/target-i386/cpu.h
|
|
|
9ae3a8 |
+++ b/target-i386/cpu.h
|
|
|
9ae3a8 |
@@ -584,6 +584,12 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
|
|
|
9ae3a8 |
#define CPUID_7_0_ECX_UMIP (1U << 2)
|
|
|
9ae3a8 |
#define CPUID_7_0_ECX_PKU (1U << 3)
|
|
|
9ae3a8 |
#define CPUID_7_0_ECX_OSPKE (1U << 4)
|
|
|
9ae3a8 |
+#define CPUID_7_0_ECX_VBMI2 (1U << 6) /* Additional VBMI Instrs */
|
|
|
9ae3a8 |
+#define CPUID_7_0_ECX_GFNI (1U << 8)
|
|
|
9ae3a8 |
+#define CPUID_7_0_ECX_VAES (1U << 9)
|
|
|
9ae3a8 |
+#define CPUID_7_0_ECX_VPCLMULQDQ (1U << 10)
|
|
|
9ae3a8 |
+#define CPUID_7_0_ECX_AVX512VNNI (1U << 11)
|
|
|
9ae3a8 |
+#define CPUID_7_0_ECX_AVX512BITALG (1U << 12)
|
|
|
9ae3a8 |
#define CPUID_7_0_ECX_AVX512_VPOPCNTDQ (1U << 14) /* POPCNT for vectors of DW/QW */
|
|
|
9ae3a8 |
#define CPUID_7_0_ECX_RDPID (1U << 22)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
--
|
|
|
9ae3a8 |
1.8.3.1
|
|
|
9ae3a8 |
|