public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Tao Su <tao1.su@linux.intel.com>
To: kvm@vger.kernel.org, x86@kernel.org
Cc: seanjc@google.com, pbonzini@redhat.com, bp@alien8.de,
	dave.hansen@linux.intel.com, chao.gao@intel.com,
	xiaoyao.li@intel.com, jiaan.lu@intel.com, xuelian.guo@intel.com,
	tao1.su@linux.intel.com
Subject: [PATCH 3/4] x86: KVM: Advertise SM4 CPUID to userspace
Date: Mon,  4 Nov 2024 14:35:58 +0800	[thread overview]
Message-ID: <20241104063559.727228-4-tao1.su@linux.intel.com> (raw)
In-Reply-To: <20241104063559.727228-1-tao1.su@linux.intel.com>

SM4 is a new set of instructions in the latest Intel platform
Clearwater Forest, which contains VSM4KEY4, VSM4RNDS4.

SM4 is enumerated via CPUID.(EAX=7,ECX=1):EAX[bit 2].

SM4 is on an expected-dense CPUID leaf and some other bits on this leaf
have kernel usages. Considering SM4 itself has no truly kernel usages,
hide this one in /proc/cpuinfo.

These instructions only operate in xmm, ymm registers and have no new VMX
controls, so there is no additional host enabling required for guests to
use these instructions, i.e. advertising SM4 CPUID to userspace is safe.

Tested-by: Jiaan Lu <jiaan.lu@intel.com>
Tested-by: Xuelian Guo <xuelian.guo@intel.com>
Signed-off-by: Tao Su <tao1.su@linux.intel.com>
---
 arch/x86/include/asm/cpufeatures.h | 1 +
 arch/x86/kvm/cpuid.c               | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
index 460f4f93b039..d96277dceabf 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -319,6 +319,7 @@
 /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */
 #define X86_FEATURE_SHA512		(12*32+ 0) /* SHA512 instructions */
 #define X86_FEATURE_SM3			(12*32+ 1) /* SM3 instructions */
+#define X86_FEATURE_SM4			(12*32+ 2) /* SM4 instructions */
 #define X86_FEATURE_AVX_VNNI		(12*32+ 4) /* "avx_vnni" AVX VNNI instructions */
 #define X86_FEATURE_AVX512_BF16		(12*32+ 5) /* "avx512_bf16" AVX512 BFLOAT16 instructions */
 #define X86_FEATURE_CMPCCXADD           (12*32+ 7) /* CMPccXADD instructions */
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index e9f7489ba569..160b060121b2 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -698,7 +698,7 @@ void kvm_set_cpu_caps(void)
 		kvm_cpu_cap_set(X86_FEATURE_SPEC_CTRL_SSBD);
 
 	kvm_cpu_cap_mask(CPUID_7_1_EAX,
-		F(SHA512) | F(SM3) | F(AVX_VNNI) | F(AVX512_BF16) |
+		F(SHA512) | F(SM3) | F(SM4) | F(AVX_VNNI) | F(AVX512_BF16) |
 		F(CMPCCXADD) | F(FZRM) | F(FSRS) | F(FSRC) |
 		F(AMX_FP16) | F(AVX_IFMA) | F(LAM)
 	);
-- 
2.34.1


  parent reply	other threads:[~2024-11-04  6:42 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-04  6:35 [PATCH 0/4] Advertise CPUID for new instructions in Clearwater Forest Tao Su
2024-11-04  6:35 ` [PATCH 1/4] x86: KVM: Advertise SHA512 CPUID to userspace Tao Su
2024-11-04  6:35 ` [PATCH 2/4] x86: KVM: Advertise SM3 " Tao Su
2024-11-04 16:40   ` Dave Hansen
2024-11-05  0:58     ` Tao Su
2024-11-04  6:35 ` Tao Su [this message]
2024-11-04  6:35 ` [PATCH 4/4] KVM: x86: Advertise AVX-VNNI-INT16 " Tao Su
2024-11-04  6:51 ` [PATCH 0/4] Advertise CPUID for new instructions in Clearwater Forest Borislav Petkov
2024-11-04  7:04   ` Tao Su
2024-11-04  9:58     ` Borislav Petkov
2024-11-04 13:21       ` Tao Su

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241104063559.727228-4-tao1.su@linux.intel.com \
    --to=tao1.su@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=chao.gao@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=jiaan.lu@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=x86@kernel.org \
    --cc=xiaoyao.li@intel.com \
    --cc=xuelian.guo@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox