OSDN Git Service

KVM: arm64: selftests: Align VA space allocator with TTBR0
authorOliver Upton <oliver.upton@linux.dev>
Wed, 7 Dec 2022 21:48:07 +0000 (21:48 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 9 Dec 2022 08:13:35 +0000 (09:13 +0100)
commite8b9a055fa0481679132781db574ecb771960f16
treec27dabafacc1cd6966c6626e9ddabf4deb026442
parenteb5618911af0ac069d2313b289d4c19ca3379401
KVM: arm64: selftests: Align VA space allocator with TTBR0

An interesting feature of the Arm architecture is that the stage-1 MMU
supports two distinct VA regions, controlled by TTBR{0,1}_EL1. As KVM
selftests on arm64 only uses TTBR0_EL1, the VA space is constrained to
[0, 2^(va_bits-1)). This is different from other architectures that
allow for addressing low and high regions of the VA space from a single
page table.

KVM selftests' VA space allocator presumes the valid address range is
split between low and high memory based the MSB, which of course is a
poor match for arm64's TTBR0 region.

Allow architectures to override the default VA space layout. Make use of
the override to align vpages_valid with the behavior of TTBR0 on arm64.

Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Message-Id: <20221207214809.489070-4-oliver.upton@linux.dev>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
tools/testing/selftests/kvm/include/kvm_util_base.h
tools/testing/selftests/kvm/lib/aarch64/processor.c
tools/testing/selftests/kvm/lib/kvm_util.c