Re: [PATCH 2/2] KVM: selftests: arm64: Add 52-bit VA guest modes

From: Fuad Tabba

Date: Fri Sep 04 2026 - 04:54:32 EST


Hi Itaru,

On Tue, 25 Aug 2026 at 22:18, Itaru Kitayama <itaru.kitayama@xxxxxxxxxxx> wrote:
...
> diff --git a/tools/testing/selftests/kvm/lib/arm64/processor.c b/tools/testing/selftests/kvm/lib/arm64/processor.c
> index 9108e14a9b5b..bcdf670c9eb8 100644
> --- a/tools/testing/selftests/kvm/lib/arm64/processor.c
> +++ b/tools/testing/selftests/kvm/lib/arm64/processor.c
> @@ -46,7 +46,7 @@ static u64 pud_index(struct kvm_vm *vm, gva_t gva)
> u64 mask = (1UL << (vm->page_shift - 3)) - 1;
>
> TEST_ASSERT(vm->mmu.pgtable_levels >= 4,
> - "Mode %d does not have at least 4 page table levels",
> + "Mode %d does not have >= 4 page table levels",

Patch 1 added this string one commit earlier. Could it go in with the
final wording there?

...

> @@ -298,10 +304,14 @@ struct kvm_vm *____vm_create(struct vm_shape shape)
>
> /* Setup mode specific traits. */
> switch (vm->mode) {
> + case VM_MODE_P52V52_4K:
> + vm->mmu.pgtable_levels = 5;
> + break;

This is now the deepest mode, so page_fault_test.c's sizing is stale:

* VM_MODE_P48V48_4K is the mode with most PT pages; let's use
* twice that just in case.
pt_size = 26 * guest_page_size;

The margin still covers it. Could pt_size come from vm->mmu.pgtable_levels?

Cheers,
/fuad


> case VM_MODE_P52V48_4K:
> vm->mmu.pgtable_levels = 4;
> break;
> case VM_MODE_P52V48_64K:
> + case VM_MODE_P52V52_64K:
> vm->mmu.pgtable_levels = 3;
> break;
> case VM_MODE_P48V48_4K:
> @@ -322,6 +332,7 @@ struct kvm_vm *____vm_create(struct vm_shape shape)
> case VM_MODE_P48V48_16K:
> case VM_MODE_P40V48_16K:
> case VM_MODE_P36V48_16K:
> + case VM_MODE_P52V52_16K:
> vm->mmu.pgtable_levels = 4;
> break;
> case VM_MODE_P47V47_16K:
>
> --
> 2.43.0
>