All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Hoo <robert.hu@linux.intel.com>
To: pbonzini@redhat.com, seanjc@google.com, vkuznets@redhat.com,
	wanpengli@tencent.com, jmattson@google.com, joro@8bytes.org,
	kvm@vger.kernel.org
Cc: x86@kernel.org, linux-kernel@vger.kernel.org,
	chang.seok.bae@intel.com, robert.hu@intel.com,
	robert.hu@linux.intel.com
Subject: [PATCH 02/15] x86/cpufeatures: Define Key Locker sub feature flags
Date: Tue,  1 Jun 2021 16:47:41 +0800	[thread overview]
Message-ID: <1622537274-146420-3-git-send-email-robert.hu@linux.intel.com> (raw)
In-Reply-To: <1622537274-146420-1-git-send-email-robert.hu@linux.intel.com>

Though KeyLocker is generally enumerated by
CPUID.(07H,0):ECX.KL[bit23], CPUID.19H:{EBX,ECX} enumerate
more details of KeyLocker supporting status.
Define them in scattered cpuid bits.

CPUID.19H:EBX
bit0 enumerates if OS (CR4.KeyLocker) and BIOS have enabled KeyLocker.
bit2 enumerates if wide Key Locker instructions are supported.
bit4 enumerates if IWKey backup is supported.
CPUID.19H:ECX
bit0 enumerates if the NoBackup parameter to LOADIWKEY is supported.
bit1 enumerates if IWKey randomization is supported.

Most of above features don't necessarily appear in /proc/cpuinfo,
except "iwkey_rand", which we think might be interesting to indicate
that the system supports randomized IWKey.

Signed-off-by: Robert Hoo <robert.hu@linux.intel.com>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Cc: x86@kernel.org
Cc: linux-kernel@vger.kernel.org
---
 arch/x86/include/asm/cpufeatures.h | 5 +++++
 arch/x86/kernel/cpu/scattered.c    | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
index 578cf3f..8dd7271 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -294,6 +294,11 @@
 #define X86_FEATURE_PER_THREAD_MBA	(11*32+ 7) /* "" Per-thread Memory Bandwidth Allocation */
 #define X86_FEATURE_SGX1		(11*32+ 8) /* "" Basic SGX */
 #define X86_FEATURE_SGX2		(11*32+ 9) /* "" SGX Enclave Dynamic Memory Management (EDMM) */
+#define X86_FEATURE_KL_INS_ENABLED	(11*32 + 10) /* "" Key Locker instructions */
+#define X86_FEATURE_KL_WIDE		(11*32 + 11) /* "" Wide Key Locker instructions */
+#define X86_FEATURE_IWKEY_BACKUP	(11*32 + 12) /* "" IWKey backup */
+#define X86_FEATURE_IWKEY_NOBACKUP	(11*32 + 13) /* "" NoBackup parameter to LOADIWKEY */
+#define X86_FEATURE_IWKEY_RAND		(11*32 + 14) /* IWKey Randomization */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */
 #define X86_FEATURE_AVX_VNNI		(12*32+ 4) /* AVX VNNI instructions */
diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c
index 21d1f06..de8677c 100644
--- a/arch/x86/kernel/cpu/scattered.c
+++ b/arch/x86/kernel/cpu/scattered.c
@@ -38,6 +38,11 @@ struct cpuid_bit {
 	{ X86_FEATURE_PER_THREAD_MBA,	CPUID_ECX,  0, 0x00000010, 3 },
 	{ X86_FEATURE_SGX1,		CPUID_EAX,  0, 0x00000012, 0 },
 	{ X86_FEATURE_SGX2,		CPUID_EAX,  1, 0x00000012, 0 },
+	{ X86_FEATURE_KL_INS_ENABLED,	CPUID_EBX,  0, 0x00000019, 0 },
+	{ X86_FEATURE_KL_WIDE,		CPUID_EBX,  2, 0x00000019, 0 },
+	{ X86_FEATURE_IWKEY_BACKUP,	CPUID_EBX,  4, 0x00000019, 0 },
+	{ X86_FEATURE_IWKEY_NOBACKUP,	CPUID_ECX,  0, 0x00000019, 0 },
+	{ X86_FEATURE_IWKEY_RAND,	CPUID_ECX,  1, 0x00000019, 0 },
 	{ X86_FEATURE_HW_PSTATE,	CPUID_EDX,  7, 0x80000007, 0 },
 	{ X86_FEATURE_CPB,		CPUID_EDX,  9, 0x80000007, 0 },
 	{ X86_FEATURE_PROC_FEEDBACK,    CPUID_EDX, 11, 0x80000007, 0 },
-- 
1.8.3.1


  parent reply	other threads:[~2021-06-01  8:49 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-01  8:47 [PATCH 00/15] KVM: Support Intel Key Locker Robert Hoo
2021-06-01  8:47 ` [PATCH 01/15] x86/keylocker: Move KEYSRC_{SW,HW}RAND to keylocker.h Robert Hoo
2021-06-01  8:47 ` Robert Hoo [this message]
2021-06-01  8:47 ` [PATCH 03/15] x86/feat_ctl: Add new VMX feature, Tertiary VM-Execution control and LOADIWKEY Exiting Robert Hoo
2021-06-01  8:47 ` [PATCH 04/15] kvm/vmx: Detect Tertiary VM-Execution control when setup VMCS config Robert Hoo
2021-06-01  8:47 ` [PATCH 05/15] kvm/vmx: Extend BUILD_CONTROLS_SHADOW macro to support 64-bit variation Robert Hoo
2021-06-01  8:47 ` [PATCH 06/15] kvm/vmx: Set Tertiary VM-Execution control field When init vCPU's VMCS Robert Hoo
2021-06-01  8:47 ` [PATCH 07/15] kvm/vmx: dump_vmcs() reports tertiary_exec_control field as well Robert Hoo
2021-06-01  8:47 ` [PATCH 08/15] kvm/vmx: Add KVM support on guest Key Locker operations Robert Hoo
2021-06-01  8:47 ` [PATCH 09/15] kvm/cpuid: Enumerate Key Locker feature in KVM Robert Hoo
2021-06-01  8:47 ` [PATCH 10/15] kvm/vmx/nested: Support new IA32_VMX_PROCBASED_CTLS3 vmx capability MSR Robert Hoo
2021-06-01  8:47 ` [PATCH 11/15] kvm/vmx: Implement vmx_compute_tertiary_exec_control() Robert Hoo
2021-06-01  8:47 ` [PATCH 12/15] kvm/vmx/vmcs12: Add Tertiary VM-Exec control field in vmcs12 Robert Hoo
2021-06-01  8:47 ` [PATCH 13/15] kvm/vmx/nested: Support Tertiary VM-Exec control in vmcs02 Robert Hoo
2021-06-01  8:47 ` [PATCH 14/15] kvm/vmx/nested: Support CR4.KL in nested Robert Hoo
2021-06-01  8:47 ` [PATCH 15/15] kvm/vmx/nested: Enable nested LOADIWKEY VM-exit Robert Hoo

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=1622537274-146420-3-git-send-email-robert.hu@linux.intel.com \
    --to=robert.hu@linux.intel.com \
    --cc=chang.seok.bae@intel.com \
    --cc=jmattson@google.com \
    --cc=joro@8bytes.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=robert.hu@intel.com \
    --cc=seanjc@google.com \
    --cc=vkuznets@redhat.com \
    --cc=wanpengli@tencent.com \
    --cc=x86@kernel.org \
    /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 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.