From: Sriram Nambakam <snambakam@linux.microsoft.com>
To: kvm@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Subject: [RFC PATCH v2 0/8] VBS/VSM-on-KVM: guest support using VM Planes
Date: Mon, 10 Aug 2026 18:52:35 -0700 [thread overview]
Message-ID: <20260811015243.188486-1-snambakam@linux.microsoft.com> (raw)
This RFC adds guest-side Virtualization-Based Security (VBS) support using
KVM VM Planes. Plane 0 runs the normal guest kernel and plane 1 runs a
higher-trust secure kernel that receives VTL calls through the KVM
hypercall-mediated plane switch.
The series enables a second software plane by default, introduces the VBS
core and KVM backend, bootstraps the secure plane, and adds the secure-side
monitor and park/dispatch handshake.
This is v2 of the series. Based on feedback from maintainers, the KVM
host, guest, and QEMU changes are now being posted as three separate,
layered RFCs to make it easier to understand the context of these
changes as they pertain to the KVM host, guest, and QEMU. This
patchset does not yet include memory protection between planes; that
will be added in a future version.
This series is based on the KVM VM Planes prerequisite patchset obtained
from Joerg Roedel's tree (kvm-planes-v7.1):
https://github.com/joergroedel/linux/tree/kvm-planes-v7.1
This series depends on the separately posted four-patch KVM host RFC ending
at commit 6cbd0b038cb3 ("KVM: x86: handle VBS VTL call/return via in-kernel
plane switch"):
https://lore.kernel.org/kvm/20260811003114.30107-1-snambakam@linux.microsoft.com/
This remains prototype code and is not intended for production use.
The implementation and integration tooling are available at:
Linux and KVM support:
https://github.com/safe-tee/linux/tree/vm-planes-layered
QEMU support:
https://github.com/safe-tee/qemu/tree/vm-planes-layered
Build, test, and integration tooling:
https://github.com/safe-tee/lvbs/tree/vm-planes-layered
Acknowledgments
===============
This work stands on top of, and is indebted to, several prior efforts:
- Joerg Roedel, whose QEMU and KVM VM Planes work provides the
infrastructure that the VBS/VSM secure plane relies on.
- Paolo Bonzini, whose "[RFC PATCH 00/29] KVM: VM planes" introduced
the VM Plane concept to KVM as a common in-kernel model for AMD VMPLs,
Intel TDX partitions, Hyper-V VTLs, and Arm CCA planes.
https://lwn.net/Articles/1016113/
- James Bottomley and James Morris, for their ongoing VSM-on-KVM work,
which informed the design and direction of this series.
Feedback on the VBS framework, guest bootstrap, backend interface, and
normal-plane/secure-plane division is welcome.
Sriram Nambakam (8):
KVM: x86: raise the default maximum planes to two
security/vbs: introduce core VBS framework
security/vbs: add platform probe and backend registration
security/vbs: add KVM software planes backend
security/vbs: enable the backend after driver init
vm_planes: add hypervisor-assisted plane bootstrap
security/vbs: bootstrap the plane from the enable path
drivers/virt: add KVM VM-planes secure-plane monitor
arch/x86/kernel/cpu/common.c | 64 ++++
arch/x86/kvm/x86.c | 3 +-
arch/x86/realmode/init.c | 21 ++
drivers/virt/Kconfig | 15 +
drivers/virt/Makefile | 1 +
drivers/virt/secure_monitor.c | 141 ++++++++
include/linux/vbs.h | 74 ++++
include/linux/vm_planes.h | 46 +++
init/Kconfig | 18 +
init/Makefile | 4 +
init/vm_planes.c | 636 ++++++++++++++++++++++++++++++++++
security/Kconfig | 2 +
security/Makefile | 1 +
security/vbs/Kconfig | 32 ++
security/vbs/Makefile | 7 +
security/vbs/core.c | 182 ++++++++++
security/vbs/internal.h | 20 ++
security/vbs/kvm_planes.c | 177 ++++++++++
security/vbs/probe.c | 61 ++++
19 files changed, 1504 insertions(+), 1 deletion(-)
create mode 100644 drivers/virt/secure_monitor.c
create mode 100644 include/linux/vbs.h
create mode 100644 include/linux/vm_planes.h
create mode 100644 init/vm_planes.c
create mode 100644 security/vbs/Kconfig
create mode 100644 security/vbs/Makefile
create mode 100644 security/vbs/core.c
create mode 100644 security/vbs/internal.h
create mode 100644 security/vbs/kvm_planes.c
create mode 100644 security/vbs/probe.c
base-commit: 6cbd0b038cb31db2f06fe6516f5982d5bdb50174
--
2.55.0
next reply other threads:[~2026-08-11 1:53 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-11 1:52 Sriram Nambakam [this message]
2026-08-11 1:52 ` [RFC PATCH v2 1/8] KVM: x86: raise the default maximum planes to two Sriram Nambakam
2026-08-11 1:52 ` [RFC PATCH v2 2/8] security/vbs: introduce core VBS framework Sriram Nambakam
2026-08-11 1:52 ` [RFC PATCH v2 3/8] security/vbs: add platform probe and backend registration Sriram Nambakam
2026-08-11 1:52 ` [RFC PATCH v2 4/8] security/vbs: add KVM software planes backend Sriram Nambakam
2026-08-11 1:52 ` [RFC PATCH v2 5/8] security/vbs: enable the backend after driver init Sriram Nambakam
2026-08-11 1:52 ` [RFC PATCH v2 6/8] vm_planes: add hypervisor-assisted plane bootstrap Sriram Nambakam
2026-08-11 1:52 ` [RFC PATCH v2 7/8] security/vbs: bootstrap the plane from the enable path Sriram Nambakam
2026-08-11 1:52 ` [RFC PATCH v2 8/8] drivers/virt: add KVM VM-planes secure-plane monitor Sriram Nambakam
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=20260811015243.188486-1-snambakam@linux.microsoft.com \
--to=snambakam@linux.microsoft.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.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