On 6/22/26 10:14 PM, Sebastian Ott wrote:
>
> Fix the following failure when running with 16K host page size:
> ==== Test Assertion Failure ====
> lib/kvm_util.c:991: vm_adjust_num_guest_pages(vm->mode, npages) == npages
> pid=873 tid=873 errno=0 - Success
> 1 0x0000000000405a27: vm_mem_add at kvm_util.c:991
> 2 0x000000000040241f: check_steal_time_uapi at steal_time.c:223
> (discriminator 7)
> 3 (inlined by) main at steal_time.c:539 (discriminator 7)
> 4 0x00007fff8b57af3b: ?? ??:0
> 5 0x00007fff8b57b007: ?? ??:0
> 6 0x0000000000402b6f: _start at ??:?
> Number of guest pages is not compatible with the host. Try npages=4
>
> Fixes: fc240715fc50 ("KVM: selftests: arm64: Fix steal_time test after UAPI
> refactoring")
> Reported-by: Zenghui Yu <[email protected]>
> Link:
> https://lore.kernel.org/kvmarm/[email protected]/T/#u
> Signed-off-by: Sebastian Ott <[email protected]>
> ---
> tools/testing/selftests/kvm/steal_time.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/kvm/steal_time.c
> b/tools/testing/selftests/kvm/steal_time.c
> index 76fcdd1fd3cb..cdb81f3ee4b2 100644
> --- a/tools/testing/selftests/kvm/steal_time.c
> +++ b/tools/testing/selftests/kvm/steal_time.c
> @@ -208,6 +208,7 @@ static void check_steal_time_uapi(void)
> {
> struct kvm_vm *vm;
> struct kvm_vcpu *vcpu;
> + unsigned int gpages;
> u64 st_ipa;
> int ret;
>
> @@ -220,8 +221,9 @@ static void check_steal_time_uapi(void)
> };
>
> vcpu_ioctl(vcpu, KVM_HAS_DEVICE_ATTR, &dev);
> - vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS, ST_GPA_BASE, 1, 1,
> 0);
> - virt_map(vm, ST_GPA_BASE, ST_GPA_BASE, 1);
> + gpages = vm_calc_num_guest_pages(VM_MODE_DEFAULT, 1);
Would vm_calc_num_guest_pages(VM_MODE_DEFAULT, STEAL_TIME_SIZE) be better
to describe the number of pages we want to add?
> + vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS, ST_GPA_BASE, 1,
> gpages, 0);
> + virt_map(vm, ST_GPA_BASE, ST_GPA_BASE, gpages);
>
> st_ipa = (ulong)ST_GPA_BASE | 1;
> ret = __vcpu_ioctl(vcpu, KVM_SET_DEVICE_ATTR, &dev);