From: Oliver Upton <oupton@kernel.org>
To: Wei-Lin Chang <weilin.chang@arm.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
linux-kselftest@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
Paolo Bonzini <pbonzini@redhat.com>,
Shuah Khan <shuah@kernel.org>, Marc Zyngier <maz@kernel.org>,
Joey Gouly <joey.gouly@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Zenghui Yu <yuzenghui@huawei.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Itaru Kitayama <itaru.kitayama@fujitsu.com>
Subject: Re: [PATCH v3 0/9] KVM: arm64: selftests: Basic nested guest support
Date: Tue, 19 May 2026 14:31:09 -0700 [thread overview]
Message-ID: <agzWnS2gzzhEHEG6@kernel.org> (raw)
In-Reply-To: <20260516183003.799058-1-weilin.chang@arm.com>
Hi Wei-Lin,
Thank you very much for the series.
I haven't had time to read through much of this yet, but I noticed
Itaru's comment about leaving stage-1 translation disabled for the L2.
Since selftests expects things like atomics to work we will definitely
need the stage-1 MMU to be enabled w/ Normal mappings (this was broken
in the past [*]). I wonder if we can (ab)use the pre-existing stage-1
tables that the selftests library creates on behalf of the L1. After all,
L1 and L2 are both effectively in the same virtual address space.
[*] https://lore.kernel.org/kvmarm/20250405001042.1470552-1-rananta@google.com/
Thanks,
Oliver
On Sat, May 16, 2026 at 07:29:54PM +0100, Wei-Lin Chang wrote:
> Hi,
>
> This is v3 of adding basic support for running nested guests (L2) in
> kselftest. This time a framework for enabling stage-2 in the guest is
> added, including the s2_mmu struct, s2 translation control setup, and
> a stage-2 page table generator. Similar to L2 vCPU management, all
> stage-2 work is done in the guest instead of userspace.
>
> An additional shadow_stage2 test is added which leverages the framework
> to run L2 with stage-2 enabled.
>
> * Changes from v2 [1]:
>
> - Update vm_paddr_t to gpa_t, vm_vaddr_t to gva_t.
>
> - Added framework for enabling stage-2 in the guest.
>
> - Added shadow_stage2 test.
>
> Thanks!
>
> [1]: https://lore.kernel.org/kvmarm/20260412142216.3806482-1-weilin.chang@arm.com/
>
> Wei-Lin Chang (9):
> KVM: arm64: selftests: Add GPR save/restore functions for NV
> KVM: arm64: selftests: Add helpers for guest hypervisors
> KVM: arm64: selftests: Add hello_nested basic NV selftest
> KVM: arm64: selftests: Enhance hello_nested test
> KVM: arm64: selftests: Add shadow_stage2 test
> KVM: arm64: selftests: shadow_stage2: Allocate L2 stack from dedicated
> pool
> KVM: arm64: selftests: shadow_stage2: Check supported stage-2 granule
> size
> KVM: arm64: selftests: Add infrastructure for using stage-2 in guest
> KVM: arm64: selftests: shadow_stage2: Turn on stage-2 translation for
> the nested guest
>
> tools/testing/selftests/kvm/Makefile.kvm | 5 +
> .../selftests/kvm/arm64/hello_nested.c | 134 +++++++++
> .../selftests/kvm/arm64/shadow_stage2.c | 165 +++++++++++
> .../selftests/kvm/include/arm64/nested.h | 85 ++++++
> tools/testing/selftests/kvm/lib/arm64/entry.S | 137 +++++++++
> .../selftests/kvm/lib/arm64/hyp-entry.S | 77 +++++
> .../testing/selftests/kvm/lib/arm64/nested.c | 264 ++++++++++++++++++
> 7 files changed, 867 insertions(+)
> create mode 100644 tools/testing/selftests/kvm/arm64/hello_nested.c
> create mode 100644 tools/testing/selftests/kvm/arm64/shadow_stage2.c
> create mode 100644 tools/testing/selftests/kvm/include/arm64/nested.h
> create mode 100644 tools/testing/selftests/kvm/lib/arm64/entry.S
> create mode 100644 tools/testing/selftests/kvm/lib/arm64/hyp-entry.S
> create mode 100644 tools/testing/selftests/kvm/lib/arm64/nested.c
>
> --
> 2.43.0
>
>
next prev parent reply other threads:[~2026-05-19 21:31 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-16 18:29 [PATCH v3 0/9] KVM: arm64: selftests: Basic nested guest support Wei-Lin Chang
2026-05-16 18:29 ` [PATCH v3 1/9] KVM: arm64: selftests: Add GPR save/restore functions for NV Wei-Lin Chang
2026-05-16 18:29 ` [PATCH v3 2/9] KVM: arm64: selftests: Add helpers for guest hypervisors Wei-Lin Chang
2026-05-16 18:29 ` [PATCH v3 3/9] KVM: arm64: selftests: Add hello_nested basic NV selftest Wei-Lin Chang
2026-05-16 18:29 ` [PATCH v3 4/9] KVM: arm64: selftests: Enhance hello_nested test Wei-Lin Chang
2026-05-16 18:29 ` [PATCH v3 5/9] KVM: arm64: selftests: Add shadow_stage2 test Wei-Lin Chang
2026-05-22 2:02 ` Itaru Kitayama
2026-05-28 4:59 ` [PATCH] KVM: selftest: arm64: Run shadow_stage2 varying guest modes Itaru Kitayama
2026-05-28 16:02 ` Wei-Lin Chang
2026-05-28 22:14 ` Itaru Kitayama
2026-05-16 18:30 ` [PATCH v3 6/9] KVM: arm64: selftests: shadow_stage2: Allocate L2 stack from dedicated pool Wei-Lin Chang
2026-05-16 18:30 ` [PATCH v3 7/9] KVM: arm64: selftests: shadow_stage2: Check supported stage-2 granule size Wei-Lin Chang
2026-05-16 18:30 ` [PATCH v3 8/9] KVM: arm64: selftests: Add infrastructure for using stage-2 in guest Wei-Lin Chang
2026-05-16 18:30 ` [PATCH v3 9/9] KVM: arm64: selftests: shadow_stage2: Turn on stage-2 translation for the nested guest Wei-Lin Chang
2026-05-19 21:31 ` Oliver Upton [this message]
2026-05-29 13:38 ` [PATCH v3 0/9] KVM: arm64: selftests: Basic nested guest support Wei-Lin Chang
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=agzWnS2gzzhEHEG6@kernel.org \
--to=oupton@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=itaru.kitayama@fujitsu.com \
--cc=joey.gouly@arm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=maz@kernel.org \
--cc=pbonzini@redhat.com \
--cc=shuah@kernel.org \
--cc=suzuki.poulose@arm.com \
--cc=weilin.chang@arm.com \
--cc=will@kernel.org \
--cc=yuzenghui@huawei.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.