* [PATCH v3] x86/cpufeatures.h: Enable A Few New AVX-512 Features
@ 2016-03-11 3:38 Fenghua Yu
2016-03-12 16:29 ` Ingo Molnar
2016-03-12 18:58 ` [tip:x86/asm] x86/cpufeature: Enable new AVX-512 features tip-bot for Fenghua Yu
0 siblings, 2 replies; 3+ messages in thread
From: Fenghua Yu @ 2016-03-11 3:38 UTC (permalink / raw)
To: H. Peter Anvin, Ingo Molnar, Thomas Gleixner, Ravi V Shankar,
Dave Hansen, Gleb Natapov, Paolo Bonzini
Cc: linux-kernel, x86, kvm, Fenghua Yu
From: Fenghua Yu <fenghua.yu@intel.com>
A few new AVX-512 instruction groups/features are added in cpufeatures.h
for enuermation: AVX512DQ, AVX512BW, and AVX512VL.
Clear the flags in fpu__xstate_clear_all_cpu_caps().
The specification for latest AVX-512 including the features can be found at
https://software.intel.com/sites/default/files/managed/07/b7/319433-023.pdf
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
---
I don't enable the flags in kvm. Hopefully kvm guys can pick up the flags
and enable them in kvm.
v3: Clear the flags in fpu__xstate_clear_all_cpu_caps().
v2: Change cpufeature.h to cpufeatures.h to use right file name in latest
kernel.
arch/x86/include/asm/cpufeatures.h | 3 +++
arch/x86/kernel/fpu/xstate.c | 3 +++
2 files changed, 6 insertions(+)
diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
index 1a2811f..9ba2ca9 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -220,6 +220,7 @@
#define X86_FEATURE_CQM ( 9*32+12) /* Cache QoS Monitoring */
#define X86_FEATURE_MPX ( 9*32+14) /* Memory Protection Extension */
#define X86_FEATURE_AVX512F ( 9*32+16) /* AVX-512 Foundation */
+#define X86_FEATURE_AVX512DQ ( 9*32+17) /* AVX-512 DQ Instructions */
#define X86_FEATURE_RDSEED ( 9*32+18) /* The RDSEED instruction */
#define X86_FEATURE_ADX ( 9*32+19) /* The ADCX and ADOX instructions */
#define X86_FEATURE_SMAP ( 9*32+20) /* Supervisor Mode Access Prevention */
@@ -230,6 +231,8 @@
#define X86_FEATURE_AVX512ER ( 9*32+27) /* AVX-512 Exponential and Reciprocal */
#define X86_FEATURE_AVX512CD ( 9*32+28) /* AVX-512 Conflict Detection */
#define X86_FEATURE_SHA_NI ( 9*32+29) /* SHA1/SHA256 Instruction Extensions */
+#define X86_FEATURE_AVX512BW ( 9*32+30) /* AVX-512 BW Instructions */
+#define X86_FEATURE_AVX512VL ( 9*32+31) /* AVX-512 Vector Lengths */
/* Extended state features, CPUID level 0x0000000d:1 (eax), word 10 */
#define X86_FEATURE_XSAVEOPT (10*32+ 0) /* XSAVEOPT */
diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
index 1b19818..b48ef35 100644
--- a/arch/x86/kernel/fpu/xstate.c
+++ b/arch/x86/kernel/fpu/xstate.c
@@ -59,6 +59,9 @@ void fpu__xstate_clear_all_cpu_caps(void)
setup_clear_cpu_cap(X86_FEATURE_AVX512PF);
setup_clear_cpu_cap(X86_FEATURE_AVX512ER);
setup_clear_cpu_cap(X86_FEATURE_AVX512CD);
+ setup_clear_cpu_cap(X86_FEATURE_AVX512DQ);
+ setup_clear_cpu_cap(X86_FEATURE_AVX512BW);
+ setup_clear_cpu_cap(X86_FEATURE_AVX512VL);
setup_clear_cpu_cap(X86_FEATURE_MPX);
setup_clear_cpu_cap(X86_FEATURE_XGETBV1);
setup_clear_cpu_cap(X86_FEATURE_PKU);
--
2.5.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v3] x86/cpufeatures.h: Enable A Few New AVX-512 Features
2016-03-11 3:38 [PATCH v3] x86/cpufeatures.h: Enable A Few New AVX-512 Features Fenghua Yu
@ 2016-03-12 16:29 ` Ingo Molnar
2016-03-12 18:58 ` [tip:x86/asm] x86/cpufeature: Enable new AVX-512 features tip-bot for Fenghua Yu
1 sibling, 0 replies; 3+ messages in thread
From: Ingo Molnar @ 2016-03-12 16:29 UTC (permalink / raw)
To: Fenghua Yu
Cc: H. Peter Anvin, Ingo Molnar, Thomas Gleixner, Ravi V Shankar,
Dave Hansen, Gleb Natapov, Paolo Bonzini, linux-kernel, x86, kvm,
Linus Torvalds, H. Peter Anvin, Peter Zijlstra, Andrew Morton,
Andy Lutomirski, Borislav Petkov
* Fenghua Yu <fenghua.yu@intel.com> wrote:
> +#define X86_FEATURE_AVX512DQ ( 9*32+17) /* AVX-512 DQ Instructions */
> +#define X86_FEATURE_AVX512BW ( 9*32+30) /* AVX-512 BW Instructions */
> +#define X86_FEATURE_AVX512VL ( 9*32+31) /* AVX-512 Vector Lengths */
Yeah, so I don't think it's obvious to people what the DQ/BW/VL extensions are
precisely, so I changed the text to the following, a bit more verbose
descriptions:
#define X86_FEATURE_AVX512DQ ( 9*32+17) /* AVX-512 DQ (Double/Quad granular) Instructions */
#define X86_FEATURE_AVX512BW ( 9*32+30) /* AVX-512 BW (Byte/Word granular) Instructions */
#define X86_FEATURE_AVX512VL ( 9*32+31) /* AVX-512 VL (128/256 Vector Length) Extensions */
Please holler if you disagree!
Thanks,
Ingo
^ permalink raw reply [flat|nested] 3+ messages in thread
* [tip:x86/asm] x86/cpufeature: Enable new AVX-512 features
2016-03-11 3:38 [PATCH v3] x86/cpufeatures.h: Enable A Few New AVX-512 Features Fenghua Yu
2016-03-12 16:29 ` Ingo Molnar
@ 2016-03-12 18:58 ` tip-bot for Fenghua Yu
1 sibling, 0 replies; 3+ messages in thread
From: tip-bot for Fenghua Yu @ 2016-03-12 18:58 UTC (permalink / raw)
To: linux-tip-commits
Cc: tglx, mingo, dave.hansen, ravi.v.shankar, oleg, dave.hansen,
peterz, quentin.casasnovas, linux-kernel, hpa, brgerst, pbonzini,
dvlasenk, torvalds, fenghua.yu, gleb, bp, luto
Commit-ID: d05004944206cbbf1c453e179768163731c7c6f1
Gitweb: http://git.kernel.org/tip/d05004944206cbbf1c453e179768163731c7c6f1
Author: Fenghua Yu <fenghua.yu@intel.com>
AuthorDate: Thu, 10 Mar 2016 19:38:18 -0800
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Sat, 12 Mar 2016 17:30:53 +0100
x86/cpufeature: Enable new AVX-512 features
A few new AVX-512 instruction groups/features are added in cpufeatures.h
for enuermation: AVX512DQ, AVX512BW, and AVX512VL.
Clear the flags in fpu__xstate_clear_all_cpu_caps().
The specification for latest AVX-512 including the features can be found at:
https://software.intel.com/sites/default/files/managed/07/b7/319433-023.pdf
Note, I didn't enable the flags in KVM. Hopefully the KVM guys can pick up
the flags and enable them in KVM.
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Gleb Natapov <gleb@kernel.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Quentin Casasnovas <quentin.casasnovas@oracle.com>
Cc: Ravi V Shankar <ravi.v.shankar@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: kvm@vger.kernel.org
Link: http://lkml.kernel.org/r/1457667498-37357-1-git-send-email-fenghua.yu@intel.com
[ Added more detailed feature descriptions. ]
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/include/asm/cpufeatures.h | 3 +++
arch/x86/kernel/fpu/xstate.c | 3 +++
2 files changed, 6 insertions(+)
diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
index d11a3aa..9e0567f 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -220,6 +220,7 @@
#define X86_FEATURE_CQM ( 9*32+12) /* Cache QoS Monitoring */
#define X86_FEATURE_MPX ( 9*32+14) /* Memory Protection Extension */
#define X86_FEATURE_AVX512F ( 9*32+16) /* AVX-512 Foundation */
+#define X86_FEATURE_AVX512DQ ( 9*32+17) /* AVX-512 DQ (Double/Quad granular) Instructions */
#define X86_FEATURE_RDSEED ( 9*32+18) /* The RDSEED instruction */
#define X86_FEATURE_ADX ( 9*32+19) /* The ADCX and ADOX instructions */
#define X86_FEATURE_SMAP ( 9*32+20) /* Supervisor Mode Access Prevention */
@@ -230,6 +231,8 @@
#define X86_FEATURE_AVX512ER ( 9*32+27) /* AVX-512 Exponential and Reciprocal */
#define X86_FEATURE_AVX512CD ( 9*32+28) /* AVX-512 Conflict Detection */
#define X86_FEATURE_SHA_NI ( 9*32+29) /* SHA1/SHA256 Instruction Extensions */
+#define X86_FEATURE_AVX512BW ( 9*32+30) /* AVX-512 BW (Byte/Word granular) Instructions */
+#define X86_FEATURE_AVX512VL ( 9*32+31) /* AVX-512 VL (128/256 Vector Length) Extensions */
/* Extended state features, CPUID level 0x0000000d:1 (eax), word 10 */
#define X86_FEATURE_XSAVEOPT (10*32+ 0) /* XSAVEOPT */
diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
index d425cda5..6e8354f 100644
--- a/arch/x86/kernel/fpu/xstate.c
+++ b/arch/x86/kernel/fpu/xstate.c
@@ -51,6 +51,9 @@ void fpu__xstate_clear_all_cpu_caps(void)
setup_clear_cpu_cap(X86_FEATURE_AVX512PF);
setup_clear_cpu_cap(X86_FEATURE_AVX512ER);
setup_clear_cpu_cap(X86_FEATURE_AVX512CD);
+ setup_clear_cpu_cap(X86_FEATURE_AVX512DQ);
+ setup_clear_cpu_cap(X86_FEATURE_AVX512BW);
+ setup_clear_cpu_cap(X86_FEATURE_AVX512VL);
setup_clear_cpu_cap(X86_FEATURE_MPX);
setup_clear_cpu_cap(X86_FEATURE_XGETBV1);
}
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-03-12 18:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-11 3:38 [PATCH v3] x86/cpufeatures.h: Enable A Few New AVX-512 Features Fenghua Yu
2016-03-12 16:29 ` Ingo Molnar
2016-03-12 18:58 ` [tip:x86/asm] x86/cpufeature: Enable new AVX-512 features tip-bot for Fenghua Yu
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.