From: "Jörg Rödel" <joro@8bytes.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>
Cc: philmd@linaro.org, marcel.apfelbaum@gmail.com,
zhao1.liu@intel.com, berrange@redhat.com, mst@redhat.com,
cohuck@redhat.com, mtosatti@redhat.com,
Tom Lendacky <thomas.lendacky@amd.com>,
qemu-devel@nongnu.org, kvm@vger.kernel.org,
coconut-svsm@lists.linux.dev, joerg.roedel@amd.com
Subject: [RFC PATCH 00/10] QEMU Support for KVM Planes
Date: Mon, 8 Jun 2026 17:20:59 +0200 [thread overview]
Message-ID: <20260608152109.356783-1-joro@8bytes.org> (raw)
From: Joerg Roedel <joerg.roedel@amd.com>
Hi,
here are the required QEMU changes to make use of the KVM Planes
interface posted here[1].
The patches are based on QEMU v11.0.0 and can be used to launch an AMD
SEV-SNP VM with COCONUT-SVSM + a Linux guest.
To make this work a change to the QEMU command line is required to
tell QEMU which plane to target external IRQs to. this is done with
the new device-plane property to the machine specification, e.g:
$ qemu-system-x86_64 \
-enable-kvm \
-cpu EPYC-v4 \
-machine q35,confidential-guest-support=sev0,memory-backend=ram1,igvm-cfg=igvm0,kernel-irqchip=split,device-plane=2 \
-object memory-backend-memfd,id=ram1,size=32G,share=true \
-object sev-snp-guest,id=sev0,cbitpos=51,reduced-phys-bits=1 \
-object igvm-cfg,id=igvm0,file=$IGVM_FILE \
...
Any feedback appreciated.
-Joerg
[1] https://lore.kernel.org/kvm/20260608144252.351443-1-joro@8bytes.org/T/#t
Joerg Roedel (10):
Update Linux Header for KVM Planes Support
accel/kvm: Extend KVMState to carry fds for planes
accel/kvm: Extend CPUState to handle Planes
accel: Add nr_planes() op
accel/kvm: Support nr_planes call-back
accel/kvm: Handle KVM_PLANE_EVENT_CREATE_CPU event
hw/core/machine: Add device-plane property
qdev: Add plane property
MSI: Inject into correct plane
KVM: Set GSI routes for default plane
accel/accel-system.c | 13 +
accel/kvm/kvm-all.c | 247 ++++++++--
accel/kvm/trace-events | 2 +
dtc | 1 +
hw/core/machine.c | 22 +
hw/core/qdev.c | 26 +
hw/i386/kvm/apic.c | 6 +-
hw/pci/msi.c | 3 +
hw/pci/msix.c | 3 +
include/accel/accel-ops.h | 3 +
include/hw/core/boards.h | 3 +
include/hw/core/cpu.h | 17 +-
include/hw/core/qdev.h | 5 +
include/hw/pci/msi.h | 1 +
include/qemu/accel.h | 7 +
include/standard-headers/drm/drm_fourcc.h | 28 +-
include/standard-headers/linux/const.h | 18 +
include/standard-headers/linux/ethtool.h | 28 +-
.../linux/input-event-codes.h | 13 +
include/standard-headers/linux/pci_regs.h | 71 ++-
include/standard-headers/linux/typelimits.h | 8 +
include/standard-headers/linux/virtio_ring.h | 3 +-
include/standard-headers/linux/virtio_rtc.h | 237 ++++++++++
include/standard-headers/linux/vmclock-abi.h | 20 +
include/system/kvm.h | 7 +
include/system/kvm_int.h | 30 +-
linux-headers/asm-arm64/kvm.h | 1 +
linux-headers/asm-arm64/unistd_64.h | 1 +
linux-headers/asm-generic/unistd.h | 5 +-
linux-headers/asm-loongarch/kvm.h | 5 +
linux-headers/asm-loongarch/kvm_para.h | 1 +
linux-headers/asm-loongarch/unistd_64.h | 2 +
linux-headers/asm-mips/unistd_n32.h | 1 +
linux-headers/asm-mips/unistd_n64.h | 1 +
linux-headers/asm-mips/unistd_o32.h | 1 +
linux-headers/asm-powerpc/unistd_32.h | 1 +
linux-headers/asm-powerpc/unistd_64.h | 1 +
linux-headers/asm-riscv/kvm.h | 11 +-
linux-headers/asm-riscv/ptrace.h | 37 ++
linux-headers/asm-riscv/unistd_32.h | 1 +
linux-headers/asm-riscv/unistd_64.h | 1 +
linux-headers/asm-s390/unistd_32.h | 446 ------------------
linux-headers/asm-s390/unistd_64.h | 1 +
linux-headers/asm-x86/kvm.h | 21 +-
linux-headers/asm-x86/unistd_32.h | 1 +
linux-headers/asm-x86/unistd_64.h | 1 +
linux-headers/asm-x86/unistd_x32.h | 1 +
linux-headers/linux/const.h | 18 +
linux-headers/linux/iommufd.h | 48 ++
linux-headers/linux/kvm.h | 64 ++-
linux-headers/linux/mshv.h | 4 +-
linux-headers/linux/psp-sev.h | 2 +-
linux-headers/linux/stddef.h | 4 +
linux-headers/linux/vduse.h | 85 +++-
linux-headers/linux/vfio.h | 30 +-
target/arm/kvm.c | 2 +-
target/i386/kvm/kvm.c | 57 +++
tests/unit/test-qdev-global-props.c | 5 +
tests/unit/test-qdev.c | 5 +
ui/keycodemapdb | 1 +
60 files changed, 1150 insertions(+), 538 deletions(-)
create mode 160000 dtc
create mode 100644 include/standard-headers/linux/typelimits.h
create mode 100644 include/standard-headers/linux/virtio_rtc.h
delete mode 100644 linux-headers/asm-s390/unistd_32.h
create mode 160000 ui/keycodemapdb
--
2.53.0
next reply other threads:[~2026-06-08 15:21 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-08 15:20 Jörg Rödel [this message]
2026-06-08 15:21 ` [RFC PATCH 01/10] Update Linux Header for KVM Planes Support Jörg Rödel
2026-06-08 15:21 ` [RFC PATCH 02/10] accel/kvm: Extend KVMState to carry fds for planes Jörg Rödel
2026-06-08 15:21 ` [RFC PATCH 03/10] accel/kvm: Extend CPUState to handle Planes Jörg Rödel
2026-06-08 15:21 ` [RFC PATCH 04/10] accel: Add nr_planes() op Jörg Rödel
2026-06-08 15:21 ` [RFC PATCH 05/10] accel/kvm: Support nr_planes call-back Jörg Rödel
2026-06-08 15:21 ` [RFC PATCH 06/10] accel/kvm: Handle KVM_PLANE_EVENT_CREATE_CPU event Jörg Rödel
2026-06-08 15:21 ` [RFC PATCH 07/10] hw/core/machine: Add device-plane property Jörg Rödel
2026-06-08 15:21 ` [RFC PATCH 08/10] qdev: Add plane property Jörg Rödel
2026-06-08 15:21 ` [RFC PATCH 09/10] MSI: Inject into correct plane Jörg Rödel
2026-06-08 15:21 ` [RFC PATCH 10/10] KVM: Set GSI routes for default plane Jörg Rödel
2026-06-08 15:40 ` [RFC PATCH 00/10] QEMU Support for KVM Planes Daniel P. Berrangé
2026-06-08 15:45 ` Jörg Rödel
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=20260608152109.356783-1-joro@8bytes.org \
--to=joro@8bytes.org \
--cc=berrange@redhat.com \
--cc=coconut-svsm@lists.linux.dev \
--cc=cohuck@redhat.com \
--cc=joerg.roedel@amd.com \
--cc=kvm@vger.kernel.org \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thomas.lendacky@amd.com \
--cc=zhao1.liu@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