On 2026/5/12 9:59, Mark Brown wrote:
> On Fri, May 01, 2026 at 02:16:39AM +0000, Jiakai Xu wrote:
> > The refactored check_steal_time_uapi() creates a temporary VM via
> > vm_create_with_one_vcpu(), whose default memslot0 only covers GPA
> > 0..~2MB.  Setting st_ipa to ST_GPA_BASE (1 << 30) causes
> > kvm_arm_pvtime_set_attr() to fail with EINVAL because gfn_to_hva()
> > cannot find a valid memslot at the target GFN.
> >
> > Add a memslot at ST_GPA_BASE in the temporary VM, mirroring what
> > the main test already does.
> 
> The regression in Linus' tree that is fixed by this patch is still
> present today.  Adding Marc and Oliver since this bug manifests on
> arm64, adding Anup and Atish since the patch introducing the regression
> was merged via RISC-V.

Does fc240715fc50 [1] fix the selftest regression? It has been included
in the latest KVM/arm64 pull request [2].

[1]
https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git/commit/?h=fixes&id=fc240715fc5003538ff530e3cfb985e7769b7171
[2] https://lore.kernel.org/kvmarm/[email protected]

> 
> > Reported-by: Mark Brown <[email protected]>
> > Closes: https://lore.kernel.org/lkml/[email protected]
> > Signed-off-by: Jiakai Xu <[email protected]>
> > Signed-off-by: Jiakai Xu <[email protected]>
> > Fixes: 40351ed924dd30 ("KVM: selftests: Refactor UAPI tests into dedicated 
> > function")
> > ---
> >  tools/testing/selftests/kvm/steal_time.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/tools/testing/selftests/kvm/steal_time.c 
> > b/tools/testing/selftests/kvm/steal_time.c
> > index 7df2bc8eec02..2b01b466ddc1 100644
> > --- a/tools/testing/selftests/kvm/steal_time.c
> > +++ b/tools/testing/selftests/kvm/steal_time.c
> > @@ -213,6 +213,10 @@ static void check_steal_time_uapi(void)
> >  
> >     vm = vm_create_with_one_vcpu(&vcpu, NULL);
> >  
> > +   /* ST_GPA_BASE needs a valid memslot for gfn_to_hva() to succeed */
> > +   vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS, ST_GPA_BASE,
> > +                               1, 1, 0);
> > +
> >     struct kvm_device_attr dev = {
> >             .group = KVM_ARM_VCPU_PVTIME_CTRL,
> >             .attr = KVM_ARM_VCPU_PVTIME_IPA,
> > -- 
> > 2.34.1
> >

Reply via email to