mirror-linux/arch/x86
Zhao Liu f24ef0093d KVM: x86: Advertise MOVRS CPUID to userspace
Define the feature flag for MOVRS and advertise support to userspace when
the feature is supported by the host.

MOVRS is a new set of instructions introduced in the Intel platform
Diamond Rapids, to provide load instructions that carry a read-shared
hint.

Functionally, MOVRS family is equivalent to existing load instructions,
but its read-shared hint indicates that the source memory location is
likely to become read-shared by multiple processors, i.e., read in the
future by at least one other processor before it is written (assuming it
is ever written in the future). This hint could optimize the behavior of
the caches, especially shared caches, for this data for future reads by
multiple processors. Additionally, MOVRS family also includes a software
prefetch instruction, PREFETCHRST2, that carries the same read-shared
hint. [*]

MOVRS family is enumerated by CPUID single-bit (0x7.0x1.EAX[bit 31]).
Since it's on a densely-populated CPUID leaf and some other bits on
this leaf have kernel usages, define this new feature in cpufeatures.h,
but hide it in /proc/cpuinfo due to lack of current kernel usage.

Advertise MOVRS bit to userspace directly. It's safe, since there's no
new VMX controls or additional host enabling required for guests to use
this feature.

[*]: Intel Architecture Instruction Set Extensions and Future Features
     (rev.059).

Tested-by: Xudong Hao <xudong.hao@intel.com>
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Link: https://patch.msgid.link/20251120050720.931449-2-zhao1.liu@intel.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2026-01-23 09:59:38 -08:00
..
boot - Use the proper accessors when reading CR3 as part of the page level 2025-12-02 13:32:52 -08:00
coco x86/coco/sev: Convert has_cpuflag() to use cpu_feature_enabled() 2025-11-11 16:42:31 +01:00
configs
crypto This update includes the following changes: 2025-12-03 11:28:38 -08:00
entry * Fix 64-bit identifier structure member name in fred_ss 2025-12-02 14:24:21 -08:00
events Misc fixes: 2025-12-14 06:10:35 +12:00
hyperv x86/hv: Add gitignore entry for generated header file 2025-12-13 19:57:41 +12:00
ia32
include KVM: x86: Advertise MOVRS CPUID to userspace 2026-01-23 09:59:38 -08:00
kernel x86/microcode/AMD: Fix Entrysign revision check for Zen5/Strix Halo 2025-12-29 20:08:02 +01:00
kvm KVM: x86: Advertise MOVRS CPUID to userspace 2026-01-23 09:59:38 -08:00
lib Address various objtool scalability bugs/inefficiencies exposed by 2025-12-06 11:56:51 -08:00
math-emu x86/math-emu: Fix div_Xsig() prototype 2025-11-09 21:01:08 +01:00
mm soc: driver updates for 6.19, part 2 2025-12-05 17:47:59 -08:00
net bpf: Add bpf_has_frame_pointer() 2025-12-09 23:29:42 -08:00
pci
platform - Remove a bunch of asm implementing condition flags testing in KVM's 2025-10-11 11:19:16 -07:00
power
purgatory kcfi: Rename CONFIG_CFI_CLANG to CONFIG_CFI 2025-09-24 14:29:14 -07:00
ras
realmode
tools - Add functionality to provide runtime firmware updates for the non-x86 parts 2025-09-30 13:40:35 -07:00
um x86/asm: Remove ANNOTATE_DATA_SPECIAL usage 2025-12-03 16:53:19 +01:00
video
virt x86: Restrict KVM-induced symbol exports to KVM modules where obvious/possible 2025-11-12 15:29:38 -08:00
xen x86/xen: Fix sparse warning in enlighten_pv.c 2025-12-16 07:48:40 +01:00
.gitignore
Kbuild
Kconfig Significant patch series in this merge are as follows: 2025-12-05 13:52:43 -08:00
Kconfig.assembler
Kconfig.cpu
Kconfig.cpufeatures x86/cpufeatures: Enumerate the LASS feature bits 2025-11-18 10:38:26 -08:00
Kconfig.debug
Makefile vfs-6.19-rc1.misc 2025-12-01 08:44:26 -08:00
Makefile.um
Makefile_32.cpu