public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [kvm-unit-tests PATCH 00/17] x86/vmx: align with Linux kernel VMX definitions
@ 2025-09-16 17:22 Jon Kohler
  2025-09-16 17:22 ` [kvm-unit-tests PATCH 01/17] lib: add linux vmx.h clone from 6.16 Jon Kohler
                   ` (17 more replies)
  0 siblings, 18 replies; 21+ messages in thread
From: Jon Kohler @ 2025-09-16 17:22 UTC (permalink / raw)
  To: seanjc, pbonzini, kvm; +Cc: Jon Kohler

This series modernizes VMX definitions to align with the canonical ones
within Linux kernel source. Currently, kvm-unit-tests uses custom VMX
constant definitions that have grown organically and have diverged from
the kernel, increasing the overhead to grok from one code base to
another.

This alignment provides several benefits:
- Reduces maintenance overhead by using authoritative definitions
- Eliminates potential bugs from definition mismatches
- Makes the test suite more consistent with kernel code
- Simplifies future updates when new VMX features are added

Given the lines touched, I've broken this up into two groups within the
series:

Group 1: Import various headers from Linux kernel 6.16 (P01-04)

Headers were brought in with minimal adaptation outside of minor tweaks
for includes, etc.

Group 2: Mechanically replace existing constants with equivalents (P05-17)

Replace custom VMX constant definitions in x86/vmx.h with Linux kernel
equivalents from lib/linux/vmx.h. This systematic replacement covers:

- Pin-based VM-execution controls (PIN_* -> PIN_BASED_*)
- CPU-based VM-execution controls (CPU_* -> CPU_BASED_*, SECONDARY_EXEC_*)
- VM-exit controls (EXI_* -> VM_EXIT_*)
- VM-entry controls (ENT_* -> VM_ENTRY_*)
- VMCS field names (custom enum -> standard Linux enum)
- VMX exit reasons (VMX_* -> EXIT_REASON_*)
- Interrupt/exception type definitions

All functional behavior is preserved - only the constant names and
values change to match Linux kernel definitions. All existing VMX tests
pass with no functional changes.

There is still a bit of bulk in x86/vmx.h, which can be addressed in
future patches as needed.

Jon Kohler (17):
  lib: add linux vmx.h clone from 6.16
  lib: add linux trapnr.h clone from 6.16
  lib: add vmxfeatures.h clone from 6.16
  lib: define __aligned() in compiler.h
  x86/vmx: basic integration for new vmx.h
  x86/vmx: switch to new vmx.h EPT violation defs
  x86/vmx: switch to new vmx.h EPT RWX defs
  x86/vmx: switch to new vmx.h EPT access and dirty defs
  x86/vmx: switch to new vmx.h EPT capability and memory type defs
  x86/vmx: switch to new vmx.h primary processor-based VM-execution
    controls
  x86/vmx: switch to new vmx.h secondary execution control bit
  x86/vmx: switch to new vmx.h secondary execution controls
  x86/vmx: switch to new vmx.h pin based VM-execution controls
  x86/vmx: switch to new vmx.h exit controls
  x86/vmx: switch to new vmx.h entry controls
  x86/vmx: switch to new vmx.h interrupt defs
  x86/vmx: align exit reasons with Linux uapi

 lib/linux/compiler.h    |    1 +
 lib/linux/trapnr.h      |   44 ++
 lib/linux/vmx.h         |  672 ++++++++++++++++++
 lib/linux/vmxfeatures.h |   93 +++
 lib/x86/msr.h           |   14 +
 x86/vmx.c               |  230 +++---
 x86/vmx.h               |  356 ++--------
 x86/vmx_tests.c         | 1489 ++++++++++++++++++++++-----------------
 8 files changed, 1876 insertions(+), 1023 deletions(-)
 create mode 100644 lib/linux/trapnr.h
 create mode 100644 lib/linux/vmx.h
 create mode 100644 lib/linux/vmxfeatures.h

base-commit: 890498d834b68104e79b57a801fa11fc6ce82846

-- 
2.43.0


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2025-11-17 17:41 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-16 17:22 [kvm-unit-tests PATCH 00/17] x86/vmx: align with Linux kernel VMX definitions Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 01/17] lib: add linux vmx.h clone from 6.16 Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 02/17] lib: add linux trapnr.h " Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 03/17] lib: add vmxfeatures.h " Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 04/17] lib: define __aligned() in compiler.h Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 05/17] x86/vmx: basic integration for new vmx.h Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 06/17] x86/vmx: switch to new vmx.h EPT violation defs Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 07/17] x86/vmx: switch to new vmx.h EPT RWX defs Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 08/17] x86/vmx: switch to new vmx.h EPT access and dirty defs Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 09/17] x86/vmx: switch to new vmx.h EPT capability and memory type defs Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 10/17] x86/vmx: switch to new vmx.h primary processor-based VM-execution controls Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 11/17] x86/vmx: switch to new vmx.h secondary execution control bit Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 12/17] x86/vmx: switch to new vmx.h secondary execution controls Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 13/17] x86/vmx: switch to new vmx.h pin based VM-execution controls Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 14/17] x86/vmx: switch to new vmx.h exit controls Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 15/17] x86/vmx: switch to new vmx.h entry controls Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 16/17] x86/vmx: switch to new vmx.h interrupt defs Jon Kohler
2025-09-16 17:22 ` [kvm-unit-tests PATCH 17/17] x86/vmx: align exit reasons with Linux uapi Jon Kohler
2025-11-12 19:02 ` [kvm-unit-tests PATCH 00/17] x86/vmx: align with Linux kernel VMX definitions Sean Christopherson
2025-11-14 14:52   ` Jon Kohler
2025-11-17 17:41     ` Sean Christopherson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox