[PATCH v7 00/20] KVM: x86: Enable APX for guests

Chang S. Bae posted 20 patches 3 weeks, 3 days ago
arch/x86/Kconfig.assembler                    |   5 +
arch/x86/include/asm/cpuid/api.h              |   1 +
arch/x86/include/asm/kvm_host.h               |  19 ++
arch/x86/include/asm/kvm_vcpu_regs.h          |  50 +++++
arch/x86/include/asm/vmx.h                    |  22 +-
arch/x86/kvm/Kconfig                          |   4 +
arch/x86/kvm/cpuid.c                          |  27 ++-
arch/x86/kvm/cpuid.h                          |   2 +
arch/x86/kvm/emulate.c                        | 121 +++++++----
arch/x86/kvm/kvm_emulate.h                    |  21 +-
arch/x86/kvm/reverse_cpuid.h                  |   6 +
arch/x86/kvm/svm/svm.c                        |   8 +-
arch/x86/kvm/vmenter.h                        |   1 +
arch/x86/kvm/vmx/nested.c                     |  75 +++----
arch/x86/kvm/vmx/nested.h                     |   2 +-
arch/x86/kvm/vmx/vmcs12.c                     |   1 +
arch/x86/kvm/vmx/vmcs12.h                     |   3 +-
arch/x86/kvm/vmx/vmenter.S                    |  31 ++-
arch/x86/kvm/vmx/vmx.c                        |  28 ++-
arch/x86/kvm/vmx/vmx.h                        |  77 ++++++-
arch/x86/kvm/x86.c                            |  92 +++++++--
tools/testing/selftests/kvm/Makefile.kvm      |   1 +
.../selftests/kvm/include/x86/processor.h     | 120 +++++++++++
tools/testing/selftests/kvm/x86/apx_test.c    | 191 ++++++++++++++++++
tools/testing/selftests/kvm/x86/state_test.c  |   3 +
.../selftests/kvm/x86/xcr0_cpuid_test.c       |  19 ++
26 files changed, 802 insertions(+), 128 deletions(-)
create mode 100644 tools/testing/selftests/kvm/x86/apx_test.c
[PATCH v7 00/20] KVM: x86: Enable APX for guests
Posted by Chang S. Bae 3 weeks, 3 days ago
Dear KVM maintainers,

This respin is primarily a rebase onto v7.3, with the following minor
changes:

 * Patch 8: Adjust the core API usage from static_cpu_has() to
   cpu_feature_enabled().
 * Patch 2: Fix an unintended code comment change that was previously
   leaked to next patch.

Please let me know if there are any remaining issues that should be
addressed. I'm trying to figure out the next steps for the series.

Otherwise, I would appreciate your consideration for picking up this.

References:

 * Repo: git://github.com/intel/apx.git apx-kvm_v7
 * KVM unit test: https://lore.kernel.org/20260420212355.507827-1-chang.seok.bae@intel.com
 * V6: https://lore.kernel.org/kvm/20260729191656.598771-1-chang.seok.bae@intel.com/

Thanks,
Chang


Chang S. Bae (19):
  KVM: x86: Extend VCPU registers for EGPRs
  KVM: VMX: Save guest EGPRs in VCPU cache
  KVM: x86: Support APX state for XSAVE ABI
  KVM: VMX: Refactor VMX instruction information access
  KVM: VMX: Refactor instruction information decoding
  KVM: VMX: Remove unused control-register access defines
  KVM: VMX: Refactor register index retrieval from exit qualification
  KVM: VMX: Support instruction information extension
  KVM: nVMX: Propagate extended instruction information
  KVM: x86: Support EGPR accessing and tracking for emulator
  KVM: x86: Handle EGPR index and REX2-incompatible opcodes
  KVM: x86: Support REX2-prefixed opcode decode
  KVM: x86: Reject EVEX-prefixed instructions
  KVM: x86: Guard valid XCR0.APX settings
  KVM: x86: Add APX to supported XCR0
  KVM: x86: Expose APX foundation feature to userspace
  KVM: x86: Expose APX sub-features to userspace
  KVM: x86: selftests: Add APX state and ABI test
  KVM: x86: selftests: Add APX state handling and XCR0 sanity checks

Sean Christopherson (1):
  KVM: x86: Move KVM_SUPPORTED_{XCR0,XSS} into kvm_x86_vendor_init()

 arch/x86/Kconfig.assembler                    |   5 +
 arch/x86/include/asm/cpuid/api.h              |   1 +
 arch/x86/include/asm/kvm_host.h               |  19 ++
 arch/x86/include/asm/kvm_vcpu_regs.h          |  50 +++++
 arch/x86/include/asm/vmx.h                    |  22 +-
 arch/x86/kvm/Kconfig                          |   4 +
 arch/x86/kvm/cpuid.c                          |  27 ++-
 arch/x86/kvm/cpuid.h                          |   2 +
 arch/x86/kvm/emulate.c                        | 121 +++++++----
 arch/x86/kvm/kvm_emulate.h                    |  21 +-
 arch/x86/kvm/reverse_cpuid.h                  |   6 +
 arch/x86/kvm/svm/svm.c                        |   8 +-
 arch/x86/kvm/vmenter.h                        |   1 +
 arch/x86/kvm/vmx/nested.c                     |  75 +++----
 arch/x86/kvm/vmx/nested.h                     |   2 +-
 arch/x86/kvm/vmx/vmcs12.c                     |   1 +
 arch/x86/kvm/vmx/vmcs12.h                     |   3 +-
 arch/x86/kvm/vmx/vmenter.S                    |  31 ++-
 arch/x86/kvm/vmx/vmx.c                        |  28 ++-
 arch/x86/kvm/vmx/vmx.h                        |  77 ++++++-
 arch/x86/kvm/x86.c                            |  92 +++++++--
 tools/testing/selftests/kvm/Makefile.kvm      |   1 +
 .../selftests/kvm/include/x86/processor.h     | 120 +++++++++++
 tools/testing/selftests/kvm/x86/apx_test.c    | 191 ++++++++++++++++++
 tools/testing/selftests/kvm/x86/state_test.c  |   3 +
 .../selftests/kvm/x86/xcr0_cpuid_test.c       |  19 ++
 26 files changed, 802 insertions(+), 128 deletions(-)
 create mode 100644 tools/testing/selftests/kvm/x86/apx_test.c


base-commit: cee9395acd8043be0644b25c34bfa86623f2b935
-- 
2.53.0
Re: [PATCH v7 00/20] KVM: x86: Enable APX for guests
Posted by Zhao Liu 2 days, 23 hours ago
On Wed, Sep 02, 2026 at 02:17:44AM +0000, Chang S. Bae wrote:
> Date: Wed,  2 Sep 2026 02:17:44 +0000
> From: "Chang S. Bae" <chang.seok.bae@intel.com>
> Subject: [PATCH v7 00/20] KVM: x86: Enable APX for guests
> X-Mailer: git-send-email 2.53.0
> 
> Dear KVM maintainers,
> 
> This respin is primarily a rebase onto v7.3, with the following minor
> changes:
> 
>  * Patch 8: Adjust the core API usage from static_cpu_has() to
>    cpu_feature_enabled().
>  * Patch 2: Fix an unintended code comment change that was previously
>    leaked to next patch.
> 
> Please let me know if there are any remaining issues that should be
> addressed. I'm trying to figure out the next steps for the series.
> 
> Otherwise, I would appreciate your consideration for picking up this.

Hi Chang,

I tested this series with QEMU master, and no regression was found.

my tests include:

1) Check APX enumeration & XSTATE in L1 & L2 VM.
2) (with AI help) Collect instruction test cases from LLVM/GCC and
   create some new, then test them in L1 & L2 VM.
3) Expand the selftest to cover additional KVM instruction-emulator
   cases.

All tests are passed at my side, so,

Tested-by: Zhao Liu <zhao1.liu@intel.com>