Hi Itaru,
On Tue, 25 Aug 2026 at 22:18, Itaru Kitayama <[email protected]> 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
>