[PATCH v2 31/36] KVM: selftests: Add serialize() helper and X86_FEATURE_SERIALIZE

From: isaku . yamahata

Date: Thu Mar 05 2026 - 13:01:23 EST


From: Isaku Yamahata <isaku.yamahata@xxxxxxxxx>

As the following test cases use serialize instruction, add feature
definition and a helper function for it.

Signed-off-by: Isaku Yamahata <isaku.yamahata@xxxxxxxxx>
--
Changes v2:
- newly added
---
tools/testing/selftests/kvm/include/x86/processor.h | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/tools/testing/selftests/kvm/include/x86/processor.h b/tools/testing/selftests/kvm/include/x86/processor.h
index da94ebf16821..88e5acc1c03e 100644
--- a/tools/testing/selftests/kvm/include/x86/processor.h
+++ b/tools/testing/selftests/kvm/include/x86/processor.h
@@ -172,6 +172,7 @@ struct kvm_x86_cpu_feature {
#define X86_FEATURE_RDPID KVM_X86_CPU_FEATURE(0x7, 0, ECX, 22)
#define X86_FEATURE_SGX_LC KVM_X86_CPU_FEATURE(0x7, 0, ECX, 30)
#define X86_FEATURE_SHSTK KVM_X86_CPU_FEATURE(0x7, 0, ECX, 7)
+#define X86_FEATURE_SERIALIZE KVM_X86_CPU_FEATURE(0x7, 0, EDX, 14)
#define X86_FEATURE_IBT KVM_X86_CPU_FEATURE(0x7, 0, EDX, 20)
#define X86_FEATURE_AMX_TILE KVM_X86_CPU_FEATURE(0x7, 0, EDX, 24)
#define X86_FEATURE_SPEC_CTRL KVM_X86_CPU_FEATURE(0x7, 0, EDX, 26)
@@ -1433,6 +1434,12 @@ static inline void cli(void)
asm volatile ("cli");
}

+static inline void serialize(void)
+{
+ /* serialize instruction. binutils >= 2.35 */
+ kvm_asm_safe(".byte 0x0f, 0x01, 0xe8");
+}
+
void __vm_xsave_require_permission(uint64_t xfeature, const char *name);

#define vm_xsave_require_permission(xfeature) \
--
2.45.2