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);

Reply via email to