mirror-linux/arch
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
..
alpha alpha updates for v6.19 2025-12-11 08:01:52 +09:00
arc
arm sound fixes for 6.19-rc1 2025-12-13 16:09:10 +12:00
arm64 Devicetree fixes for v6.19, part 1: 2025-12-20 11:49:49 -08:00
csky csky 6.19 Release Notes 2025-12-10 12:17:29 +09:00
hexagon This update includes the following changes: 2025-12-03 11:28:38 -08:00
loongarch LoongArch: BPF: Enhance the bpf_arch_text_poke() function 2025-12-31 15:19:21 +08:00
m68k Networking changes for 6.19. 2025-12-03 17:24:33 -08:00
microblaze arch: hookup listns() system call 2025-11-03 17:41:18 +01:00
mips MIPS: Fix a reference leak bug in ip22_check_gio() 2025-12-15 16:11:14 +01:00
nios2 arch/nios2: replace "__auto_type" and adjacent equivalent with "auto" 2025-12-08 15:32:15 -08:00
openrisc
parisc TTY/Serial changes for 6.19-rc1 2025-12-06 18:38:19 -08:00
powerpc powerpc/32: Restore disabling of interrupts at interrupt/syscall exit 2025-12-22 18:25:07 +05:30
riscv riscv: Add SBI debug trigger extension and function ids 2025-12-19 00:22:30 -07:00
s390 s390/stacktrace: Do not fallback to RA register 2025-12-14 11:03:58 +01:00
sh sound fixes for 6.19-rc1 2025-12-13 16:09:10 +12:00
sparc dma-mapping updates for Linux 6.19: 2025-12-06 09:25:05 -08:00
um Address various objtool scalability bugs/inefficiencies exposed by 2025-12-06 11:56:51 -08:00
x86 KVM: x86: Advertise MOVRS CPUID to userspace 2026-01-23 09:59:38 -08:00
xtensa TTY/Serial changes for 6.19-rc1 2025-12-06 18:38:19 -08:00
.gitignore
Kconfig treewide: drop outdated compiler version remarks in Kconfig help texts 2025-11-12 10:00:14 -08:00