From: Zhao Liu <zhao1.liu@intel.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org,
"Chang S . Bae" <chang.seok.bae@intel.com>,
Zide Chen <zide.chen@intel.com>,
Xudong Hao <xudong.hao@intel.com>, Zhao Liu <zhao1.liu@intel.com>
Subject: [PATCH 0/5] i386/cpu: Support APX for KVM
Date: Tue, 18 Nov 2025 14:58:12 +0800 [thread overview]
Message-ID: <20251118065817.835017-1-zhao1.liu@intel.com> (raw)
Hi,
This series adds APX (Advanced Performance Extensions) support in QEMU
to enable APX in Guest based on KVM.
This series is based on CET v4:
https://lore.kernel.org/qemu-devel/20251118034231.704240-1-zhao1.liu@intel.com/
And you can also find the code here:
https://gitlab.com/zhao.liu/qemu/-/commits/i386-all-for-dmr-v1.1-11-17-2025
The patches for KVM side can be found at:
https://lore.kernel.org/kvm/20251110180131.28264-1-chang.seok.bae@intel.com/
Thanks for your review!
Overview
========
Intel Advanced Performance Extensions (Intel APX) expands the Intel 64
instruction set architecture with access to more registers (16
additional general-purpose registers (GPRs) R16–R31) and adds various
new features that improve general-purpose performance. The extensions
are designed to provide efficient performance gains across a variety of
workloads without significantly increasing silicon area or power
consumption of the core.
APX spec link (rev.07) is:
https://cdrdv2.intel.com/v1/dl/getContent/861610
At QEMU side, the enabling work mainly includes two parts:
1. save/restore/migrate the xstate of APX.
* APX xstate is a user xstate, but it reuses MPX xstate area in
un-compacted XSAVE buffer.
* To address this, QEMU will reject both APX and MPX if their CPUID
feature bits are set at the same (in Patch 1).
2. add related CPUIDs support in feature words.
Thanks and Best Regards,
Zhao
---
Zhao Liu (2):
i386/cpu: Support APX CPUIDs
i386/cpu: Mark apx xstate as migratable
Zide Chen (3):
i386/cpu: Add APX EGPRs into xsave area
i386/cpu: Cache EGPRs in CPUX86State
i386/cpu: Add APX migration support
target/i386/cpu.c | 68 ++++++++++++++++++++++++++++++++++++--
target/i386/cpu.h | 26 +++++++++++++--
target/i386/machine.c | 24 ++++++++++++++
target/i386/xsave_helper.c | 14 ++++++++
4 files changed, 128 insertions(+), 4 deletions(-)
--
2.34.1
next reply other threads:[~2025-11-18 6:36 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-18 6:58 Zhao Liu [this message]
2025-11-18 6:58 ` [PATCH 1/5] i386/cpu: Add APX EGPRs into xsave area Zhao Liu
2025-11-18 6:58 ` [PATCH 2/5] i386/cpu: Cache EGPRs in CPUX86State Zhao Liu
2025-11-18 8:43 ` Paolo Bonzini
2025-11-19 7:47 ` Zhao Liu
2025-11-18 6:58 ` [PATCH 3/5] i386/cpu: Add APX migration support Zhao Liu
2025-11-18 6:58 ` [PATCH 4/5] i386/cpu: Support APX CPUIDs Zhao Liu
2025-11-18 8:44 ` Paolo Bonzini
2025-11-19 7:34 ` Zhao Liu
2025-11-19 8:04 ` Paolo Bonzini
2025-11-19 18:04 ` Florian Weimer
2025-11-19 18:08 ` Paolo Bonzini
2025-11-18 6:58 ` [PATCH 5/5] i386/cpu: Mark apx xstate as migratable Zhao Liu
2025-11-18 8:45 ` [PATCH 0/5] i386/cpu: Support APX for KVM Paolo Bonzini
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=20251118065817.835017-1-zhao1.liu@intel.com \
--to=zhao1.liu@intel.com \
--cc=chang.seok.bae@intel.com \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=xudong.hao@intel.com \
--cc=zide.chen@intel.com \
/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;
as well as URLs for NNTP newsgroup(s).