[PATCH v3 0/7] x86: KVM: Advertise CPUID of new Intel platform

Jiaxi Chen
2022-11-10T01:55:04Z

Latest Intel platform Granite Rapids/Sierra Forest has introduced below
new instructions and CPUIDs:

- CMPccXADD CPUID.(EAX=7,ECX=1):EAX[bit 7]
- AMX-FP16 CPUID.(EAX=7,ECX=1):EAX[bit 21]
- AVX-IFMA CPUID.(EAX=7,ECX=1):EAX[bit 23]
- AVX-VNNI-INT8 CPUID.(EAX=7,ECX=1):EDX[bit 4]
- AVX-NE-CONVERT CPUID.(EAX=7,ECX=1):EDX[bit 5]
- PREFETCHITI CPUID.(EAX=7,ECX=1):EDX[bit 14]

Details can be found in recent Intel ISE (Instruction Set
Extensions)[1].

This patch series advertises KVM support of these CPUIDs to host
userspace.

[1] Intel ISE: https://cdrdv2.intel.com/v1/dl/getContent/671368

v3:
- Remain CPUID_8000_001F_EAX in the last leaf of cpuid_leaf[]
- Replace CPUID_7_1_EAX with CPUID_LNX_5, waiting for future new CPUIDs

v2:
https://lore.kernel.org/all/20221103025030.78371-1-jiaxi.chen@linux.intel.com/
- Remove vague descriptions in the changelogs, including pronouns and
"this patch" kind of things.
- Move the two CPUIDs of cpuid_leaf[12] CPUID_7_1_EAX to kvm-only
subleaves.
- Replace cpuid_leaf[12] CPUID_7_1_EAX with the last leaf
CPUID_8000_001F_EAX to shorten array length.
- Change the newly-added CPUID leaf [CPUID_7_1_EDX] in v1 into kvm-only
subleaves.

v1:
https://lore.kernel.org/all/20221019084734.3590760-1-jiaxi.chen@linux.intel.com/

Jiaxi Chen (7):
x86: KVM: Move existing x86 CPUID leaf [CPUID_7_1_EAX] to kvm-only
leaf
x86: KVM: Advertise CMPccXADD CPUID to user space
x86: KVM: Advertise AMX-FP16 CPUID to user space
x86: KVM: Advertise AVX-IFMA CPUID to user space
x86: KVM: Advertise AVX-VNNI-INT8 CPUID to user space
x86: KVM: Advertise AVX-NE-CONVERT CPUID to user space
x86: KVM: Advertise PREFETCHIT0/1 CPUID to user space

arch/x86/include/asm/cpufeature.h | 2 +-
arch/x86/include/asm/cpufeatures.h | 4 +---
arch/x86/kernel/cpu/common.c | 6 ------
arch/x86/kernel/cpu/cpuid-deps.c | 1 -
arch/x86/kvm/cpuid.c | 11 ++++++++---
arch/x86/kvm/reverse_cpuid.h | 15 +++++++++++++++
6 files changed, 25 insertions(+), 14 deletions(-)

base-commit: 30a0b95b1335e12efef89dd78518ed3e4a71a763
--
2.27.0