From: "Chang S. Bae" <chang.seok.bae@intel.com>
To: pbonzini@redhat.com, seanjc@google.com
Cc: kvm@vger.kernel.org, x86@kernel.org,
linux-kernel@vger.kernel.org, chang.seok.bae@intel.com
Subject: [PATCH v7 01/20] KVM: x86: Extend VCPU registers for EGPRs
Date: Wed, 2 Sep 2026 02:17:45 +0000 [thread overview]
Message-ID: <20260902021804.718676-2-chang.seok.bae@intel.com> (raw)
In-Reply-To: <20260902021804.718676-1-chang.seok.bae@intel.com>
Extend the storage to include extended general-purpose registers (EGPRs:
R16-R31) when CONFIG_KVM_APX=y. This option is for VMX only.
Although EGPR state is XSAVE-managed, and thus could be stored in the
guest fpstate, VCPU storage provides a more convenient and efficient
access path for KVM.
Suggested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com>
Link: https://lore.kernel.org/abL8SW5JS1aV5goa@google.com
---
arch/x86/include/asm/kvm_host.h | 18 ++++++++++++++++++
arch/x86/kvm/Kconfig | 4 ++++
2 files changed, 22 insertions(+)
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 683bb8bf43a9..8a0de8b847ea 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -162,6 +162,24 @@ enum kvm_reg {
VCPU_REGS_R13,
VCPU_REGS_R14,
VCPU_REGS_R15,
+#endif
+#ifdef CONFIG_KVM_APX
+ VCPU_REGS_R16,
+ VCPU_REGS_R17,
+ VCPU_REGS_R18,
+ VCPU_REGS_R19,
+ VCPU_REGS_R20,
+ VCPU_REGS_R21,
+ VCPU_REGS_R22,
+ VCPU_REGS_R23,
+ VCPU_REGS_R24,
+ VCPU_REGS_R25,
+ VCPU_REGS_R26,
+ VCPU_REGS_R27,
+ VCPU_REGS_R28,
+ VCPU_REGS_R29,
+ VCPU_REGS_R30,
+ VCPU_REGS_R31,
#endif
NR_VCPU_GENERAL_PURPOSE_REGS,
diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig
index 538ed1e80332..db1427a8b099 100644
--- a/arch/x86/kvm/Kconfig
+++ b/arch/x86/kvm/Kconfig
@@ -93,10 +93,14 @@ config KVM_SW_PROTECTED_VM
If unsure, say "N".
+config KVM_APX
+ bool
+
config KVM_INTEL
tristate "KVM for Intel (and compatible) processors support"
depends on KVM && IA32_FEAT_CTL
select X86_FRED if X86_64
+ select KVM_APX if X86_64
help
Provides support for KVM on processors equipped with Intel's VT
extensions, a.k.a. Virtual Machine Extensions (VMX).
--
2.53.0
next prev parent reply other threads:[~2026-09-02 2:44 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-02 2:17 [PATCH v7 00/20] KVM: x86: Enable APX for guests Chang S. Bae
2026-09-02 2:17 ` Chang S. Bae [this message]
2026-09-02 2:17 ` [PATCH v7 02/20] KVM: VMX: Save guest EGPRs in VCPU cache Chang S. Bae
2026-09-02 3:26 ` sashiko-bot
2026-09-02 2:17 ` [PATCH v7 03/20] KVM: x86: Support APX state for XSAVE ABI Chang S. Bae
2026-09-02 3:08 ` sashiko-bot
2026-09-02 2:17 ` [PATCH v7 04/20] KVM: VMX: Refactor VMX instruction information access Chang S. Bae
2026-09-02 2:17 ` [PATCH v7 05/20] KVM: VMX: Refactor instruction information decoding Chang S. Bae
2026-09-02 2:17 ` [PATCH v7 06/20] KVM: VMX: Remove unused control-register access defines Chang S. Bae
2026-09-02 2:17 ` [PATCH v7 07/20] KVM: VMX: Refactor register index retrieval from exit qualification Chang S. Bae
2026-09-02 2:17 ` [PATCH v7 08/20] KVM: VMX: Support instruction information extension Chang S. Bae
2026-09-02 2:17 ` [PATCH v7 09/20] KVM: nVMX: Propagate extended instruction information Chang S. Bae
2026-09-02 3:07 ` sashiko-bot
2026-09-02 2:17 ` [PATCH v7 10/20] KVM: x86: Support EGPR accessing and tracking for emulator Chang S. Bae
2026-09-02 2:17 ` [PATCH v7 11/20] KVM: x86: Handle EGPR index and REX2-incompatible opcodes Chang S. Bae
2026-09-02 3:06 ` sashiko-bot
2026-09-02 2:17 ` [PATCH v7 12/20] KVM: x86: Support REX2-prefixed opcode decode Chang S. Bae
2026-09-02 2:17 ` [PATCH v7 13/20] KVM: x86: Reject EVEX-prefixed instructions Chang S. Bae
2026-09-02 2:59 ` sashiko-bot
2026-09-02 2:17 ` [PATCH v7 14/20] KVM: x86: Move KVM_SUPPORTED_{XCR0,XSS} into kvm_x86_vendor_init() Chang S. Bae
2026-09-02 2:17 ` [PATCH v7 15/20] KVM: x86: Guard valid XCR0.APX settings Chang S. Bae
2026-09-02 2:18 ` [PATCH v7 16/20] KVM: x86: Add APX to supported XCR0 Chang S. Bae
2026-09-02 3:07 ` sashiko-bot
2026-09-02 2:18 ` [PATCH v7 17/20] KVM: x86: Expose APX foundation feature to userspace Chang S. Bae
2026-09-02 2:18 ` [PATCH v7 18/20] KVM: x86: Expose APX sub-features " Chang S. Bae
2026-09-02 3:00 ` sashiko-bot
2026-09-02 2:18 ` [PATCH v7 19/20] KVM: x86: selftests: Add APX state and ABI test Chang S. Bae
2026-09-02 3:07 ` sashiko-bot
2026-09-02 2:18 ` [PATCH v7 20/20] KVM: x86: selftests: Add APX state handling and XCR0 sanity checks Chang S. Bae
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260902021804.718676-2-chang.seok.bae@intel.com \
--to=chang.seok.bae@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox