Hi Sebastian,
On 5/4/26 7:28 PM, Sebastian Ott wrote:
> Fix the following failure to the steal_time test on arm64 by making
> the timer address known to the guest.
>
> ==== Test Assertion Failure ====
> steal_time.c:229: !ret
> pid=18514 tid=18514 errno=22 - Invalid argument
> 1 0x000000000040252f: check_steal_time_uapi at steal_time.c:229
> (discriminator 20)
> 2 (inlined by) main at steal_time.c:537 (discriminator 20)
> 3 0x0000ffffa23d621b: ?? ??:0
> 4 0x0000ffffa23d62fb: ?? ??:0
> 5 0x0000000000402b6f: _start at ??:?
> KVM_SET_DEVICE_ATTR failed, rc: -1 errno: 22 (Invalid argument)
>
> Fixes: 40351ed924dd ("KVM: selftests: Refactor UAPI tests into dedicated
> function")
> Signed-off-by: Sebastian Ott <[email protected]>
> ---
> tools/testing/selftests/kvm/steal_time.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/tools/testing/selftests/kvm/steal_time.c
> b/tools/testing/selftests/kvm/steal_time.c
> index 7df2bc8eec02..76fcdd1fd3cb 100644
> --- a/tools/testing/selftests/kvm/steal_time.c
> +++ b/tools/testing/selftests/kvm/steal_time.c
> @@ -220,6 +220,8 @@ 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);
This leads to the following failure when the host page size is greater than
the guest's:
[root@localhost kvm]# getconf PAGESIZE
16384
[root@localhost kvm]# ./steal_time
Random seed: 0x6b8b4567
__vm_create: mode='PA-bits:40, VA-bits:48, 4K pages' type='0', pages='672'
TAP version 13
1..4
__vm_create: mode='PA-bits:40, VA-bits:48, 4K pages' type='0', pages='660'
==== 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
> + virt_map(vm, ST_GPA_BASE, ST_GPA_BASE, 1);
>
> st_ipa = (ulong)ST_GPA_BASE | 1;
> ret = __vcpu_ioctl(vcpu, KVM_SET_DEVICE_ATTR, &dev);
Thanks,
Zenghui