From: Jing Zhang <jingzhangos@google.com>
To: KVM <kvm@vger.kernel.org>, KVMARM <kvmarm@lists.linux.dev>,
Marc Zyngier <maz@kernel.org>, Joey Gouly <joey.gouly@arm.com>,
Wei-Lin Chang <weilin.chang@arm.com>,
Yao Yuan <yaoyuan@linux.alibaba.com>
Cc: Oliver Upton <oliver.upton@linux.dev>,
Andrew Jones <andrew.jones@linux.dev>,
Alexandru Elisei <alexandru.elisei@arm.com>,
Mingwei Zhang <mizhang@google.com>,
Raghavendra Rao Ananta <rananta@google.com>,
Colton Lewis <coltonlewis@google.com>,
Jing Zhang <jingzhangos@google.com>
Subject: [kvm-unit-tests PATCH v2 0/7] arm64: Add Stage-2 MMU and Nested Guest Framework
Date: Mon, 13 Apr 2026 13:46:23 -0700 [thread overview]
Message-ID: <20260413204630.1149038-1-jingzhangos@google.com> (raw)
This patch series introduces a lightweight infrastructure for managing ARM64
Stage-2 translation tables and executing nested guests. These components are
essential for testing advanced virtualization features such as nested
virtualization (NV) and GICv4 direct interrupt injection.
The series provides a generic Stage-2 MMU library supporting multiple
translation granules (4K, 16K, 64K) and dynamic page table management.
Building on this, it adds a guest execution framework that handles guest
lifecycle management, context switching and guest exit routing. A new test
case for Stage-2 MMU demand paging to verify fault handling.
Please note that this is a very preliminary implementation intended as a
startup baseline for future work in virtualization testing. Users should be
aware that because this is an early-stage baseline, some portions of the code
may just happen to work in its current state. There might be critical
architectural elements or edge-case handling missing that will need to be
addressed as the framework matures.
---
* v1 -> v2
- Used generated `struct guest` offset instead of hardcoding.
- Cleaned up register definitions.
- Refined EL1/EL2 exception vector tables.
- Split monolithic patches into a series of granular commits.
- Addressed other review feedbacks.
[1] https://lore.kernel.org/kvmarm/20260316224349.2360482-1-jingzhangos@google.com/
---
Jing Zhang (7):
lib: arm64: Generalize ESR exception class definitions for EL2 support
lib: arm64: Add stage2 page table management library
lib: arm64: Generalize exception vector definitions for EL2 support
lib: arm64: Add foundational guest execution framework
lib: arm64: Add support for guest exit exception handling
lib: arm64: Add guest-internal exception handling (EL1)
arm64: Add Stage-2 MMU demand paging test
arm/Makefile.arm64 | 4 +
arm/debug.c | 6 +-
arm/gic.c | 2 +-
arm/micro-bench.c | 4 +-
arm/mte.c | 6 +-
arm/pl031.c | 2 +-
arm/pmu.c | 2 +-
arm/psci.c | 2 +-
arm/selftest.c | 6 +-
arm/stage2-mmu-test.c | 107 ++++++++++
arm/timer.c | 6 +-
lib/arm64/asm-offsets.c | 15 ++
lib/arm64/asm/esr.h | 5 +-
lib/arm64/asm/guest.h | 91 +++++++++
lib/arm64/asm/processor.h | 32 +--
lib/arm64/asm/stage2_mmu.h | 70 +++++++
lib/arm64/asm/sysreg.h | 7 +
lib/arm64/guest.c | 158 +++++++++++++++
lib/arm64/guest_arch.S | 248 +++++++++++++++++++++++
lib/arm64/processor.c | 18 +-
lib/arm64/stage2_mmu.c | 403 +++++++++++++++++++++++++++++++++++++
21 files changed, 1149 insertions(+), 45 deletions(-)
create mode 100644 arm/stage2-mmu-test.c
create mode 100644 lib/arm64/asm/guest.h
create mode 100644 lib/arm64/asm/stage2_mmu.h
create mode 100644 lib/arm64/guest.c
create mode 100644 lib/arm64/guest_arch.S
create mode 100644 lib/arm64/stage2_mmu.c
base-commit: 86e53277ac80dabb04f4fa5fa6a6cc7649392bdc
--
2.53.0.1213.gd9a14994de-goog
next reply other threads:[~2026-04-13 20:46 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-13 20:46 Jing Zhang [this message]
2026-04-13 20:46 ` [kvm-unit-tests PATCH v2 1/7] lib: arm64: Generalize ESR exception class definitions for EL2 support Jing Zhang
2026-04-16 15:27 ` Joey Gouly
2026-04-13 20:46 ` [kvm-unit-tests PATCH v2 2/7] lib: arm64: Add stage2 page table management library Jing Zhang
2026-04-16 15:19 ` Joey Gouly
2026-04-13 20:46 ` [kvm-unit-tests PATCH v2 3/7] lib: arm64: Generalize exception vector definitions for EL2 support Jing Zhang
2026-04-13 20:46 ` [kvm-unit-tests PATCH v2 4/7] lib: arm64: Add foundational guest execution framework Jing Zhang
2026-04-16 16:16 ` Joey Gouly
2026-04-13 20:46 ` [kvm-unit-tests PATCH v2 5/7] lib: arm64: Add support for guest exit exception handling Jing Zhang
2026-04-13 20:46 ` [kvm-unit-tests PATCH v2 6/7] lib: arm64: Add guest-internal exception handling (EL1) Jing Zhang
2026-04-13 20:46 ` [kvm-unit-tests PATCH v2 7/7] arm64: Add Stage-2 MMU demand paging test Jing Zhang
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=20260413204630.1149038-1-jingzhangos@google.com \
--to=jingzhangos@google.com \
--cc=alexandru.elisei@arm.com \
--cc=andrew.jones@linux.dev \
--cc=coltonlewis@google.com \
--cc=joey.gouly@arm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=maz@kernel.org \
--cc=mizhang@google.com \
--cc=oliver.upton@linux.dev \
--cc=rananta@google.com \
--cc=weilin.chang@arm.com \
--cc=yaoyuan@linux.alibaba.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