[PATCH v2 0/3] 52-bit VA guest mode ID support

From: Itaru Kitayama

Date: Mon Sep 14 2026 - 03:33:51 EST


This patch series extends the arm64 KVM selftest framework
to support 52-bit guest virtual address (VA) modes in addition to
the existing 52-bit physical address (PA) configurations.
The motivation is to enable validation of LPA2 guest memory-management
behaviour in configurations that use a 52-bit VA space.
While the selftest framework already supports testing 52-bit PA
configurations, it lacks the ability to exercise guests running with
52-bit virtual addresses, leaving part of the LPA2 functionality untested.
To address this, the series introduces new guest modes for 52-bit VA
operation, adds five-level page table support where required, and
performs runtime detection of host 52-bit VA capability so that
LPA2-enabled guest VA tests are executed only on supported systems.

Testing:

Built and ran lpa_test on QEMU with 52-bit VA support.
The test verified shared mappings at low and high guest virtual addresses,
then remapped the high VA to a different GPA and verified that
the mappings remained independent.

Signed-off-by: Itaru Kitayama <itaru.kitayama@xxxxxxxxxxx>
Reviewed-by: Takayuki Okamoto <tokamoto@xxxxxxxxxxx>
---
Changes in v2:
- Reorganize the series so that each patch builds independently.
- Move all P52V52 mode definitions and uses into the same patch.
- Use the standard "KVM: arm64: selftests:" subject prefix.
- Reuse one probe VM and vCPU for IPA and 64K VA capability detection.
- Make the VARange result explicitly specific to the 64K granule.
- Clarify that only the 4K P52V52 mode uses five page-table levels.
- Link to v1: https://patch.msgid.link/20260826-arm64-52bit-va-v1-0-14ec98211363@xxxxxxxxxxx

To: Marc Zyngier <maz@xxxxxxxxxx>
To: Oliver Upton <oupton@xxxxxxxxxx>
To: Fuad Tabba <fuad.tabba@xxxxxxxxx>
To: Joey Gouly <joey.gouly@xxxxxxx>
To: Steffen Eiden <seiden@xxxxxxxxxxxxx>
To: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
To: Zenghui Yu <yuzenghui@xxxxxxxxxx>
To: Paolo Bonzini <pbonzini@xxxxxxxxxx>
To: Sean Christopherson <seanjc@xxxxxxxxxx>
To: Shuah Khan <shuah@xxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: kvmarm@xxxxxxxxxxxxxxx
Cc: kvm@xxxxxxxxxxxxxxx
Cc: linux-kselftest@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx

---
Itaru Kitayama (3):
KVM: arm64: selftests: Support five-level stage-1 page tables
KVM: arm64: selftests: Add 52-bit VA guest modes
KVM: arm64: selftests: Test 52-bit guest virtual addresses

tools/testing/selftests/kvm/Makefile.kvm | 1 +
tools/testing/selftests/kvm/arm64/lpa_test.c | 124 +++++++++++++++++++++
.../selftests/kvm/include/arm64/processor.h | 3 +-
tools/testing/selftests/kvm/include/kvm_util.h | 3 +
tools/testing/selftests/kvm/lib/arm64/processor.c | 60 +++++++++-
tools/testing/selftests/kvm/lib/guest_modes.c | 7 +-
tools/testing/selftests/kvm/lib/kvm_util.c | 11 ++
7 files changed, 200 insertions(+), 9 deletions(-)
---
base-commit: 28924df2a08f440c73991b83028032c901de2ae4
change-id: 20260825-arm64-52bit-va-32f1f4cd050d

Best regards,
--
Itaru Kitayama <itaru.kitayama@xxxxxxxxxxx>