MAINTAINERS | 2 + tools/testing/selftests/kvm/Makefile | 2 +- tools/testing/selftests/kvm/Makefile.kvm | 10 + tools/testing/selftests/kvm/dirty_log_test.c | 12 +- .../testing/selftests/kvm/include/kvm_util.h | 9 + .../selftests/kvm/include/powerpc/hcall.h | 17 + .../kvm/include/powerpc/kvm_util_arch.h | 22 + .../selftests/kvm/include/powerpc/ppc_asm.h | 32 ++ .../selftests/kvm/include/powerpc/processor.h | 39 ++ .../selftests/kvm/include/powerpc/ucall.h | 21 + .../selftests/kvm/kvm_create_max_vcpus.c | 8 +- tools/testing/selftests/kvm/lib/guest_modes.c | 20 +- tools/testing/selftests/kvm/lib/kvm_util.c | 8 + .../selftests/kvm/lib/powerpc/handlers.S | 93 ++++ .../testing/selftests/kvm/lib/powerpc/hcall.c | 45 ++ .../selftests/kvm/lib/powerpc/processor.c | 512 ++++++++++++++++++ .../testing/selftests/kvm/lib/powerpc/ucall.c | 22 + 17 files changed, 862 insertions(+), 12 deletions(-) create mode 100644 tools/testing/selftests/kvm/include/powerpc/hcall.h create mode 100644 tools/testing/selftests/kvm/include/powerpc/kvm_util_arch.h create mode 100644 tools/testing/selftests/kvm/include/powerpc/ppc_asm.h create mode 100644 tools/testing/selftests/kvm/include/powerpc/processor.h create mode 100644 tools/testing/selftests/kvm/include/powerpc/ucall.h create mode 100644 tools/testing/selftests/kvm/lib/powerpc/handlers.S create mode 100644 tools/testing/selftests/kvm/lib/powerpc/hcall.c create mode 100644 tools/testing/selftests/kvm/lib/powerpc/processor.c create mode 100644 tools/testing/selftests/kvm/lib/powerpc/ucall.c
PATCH v3 -> PATCH v4:
==================
- Rebased on top of Sean's new page allocator patch series v2 [1]
This allowed to drop and patch-2 since it will now come from Sean's
v2.
- Addressed review comments from Sean - squashed patches 6-10 in patch-1 of
this.
- Dropped patch-5 to print vcpu_id when KVM_CREATE_VCPU ioctl fails.
- Added additional patch-3 to this series to allow dirty_log_test to run on all
big-endian machines.
[1]: https://lore.kernel.org/kvm/20260902164123.2546762-1-seanjc@google.com/
[v3]: https://lore.kernel.org/linuxppc-dev/2d2c46be7f051c7f1c645afaec67f57067d37a81.1781093720.git.ritesh.list@gmail.com/
Testing updates:
================
I have done some fair amount of testing of the selftests both on real HW and
using various combinations on qemu (powernv+LE (default), pseries+cap-nested-hv,
pseries+cap-nested-papr, powernv+BE). There were few powerpc kvm kernel fixes
which were identified as part of this work. I will send those patches separately
as those anyway needs to go in separately.
<pasted snippet of cover letter from previous versions>
=======================================================
Hi All,
This series primarly adds KVM selftests support for powerpc (64-bit, BookS,
radix MMU).
This patch series is originally Nick's work. I have mainly only rebased it on
the latest upstream tree. Since the rebase required few changes to all the four
patches (Patch 1-4), I have dropped the earlier Acked-by from Michael Ellerman.
Since the last series was posted three years ago [1], I am resetting the version
to RFC. This rebase was done as part of a larger effort to improve the selftests
infrastructure for Linux on PowerPC tree. Thanks to Harsh and Maddy for their
help on this.
Nicholas Piggin (1):
KVM: PPC: selftests: add support for powerpc
Ritesh Harjani (IBM) (2):
KVM: PPC: selftests: powerpc enable kvm_create_max_vcpus test
KVM: selftests: Use LE bitops for dirty bitmaps on all big-endian
hosts
MAINTAINERS | 2 +
tools/testing/selftests/kvm/Makefile | 2 +-
tools/testing/selftests/kvm/Makefile.kvm | 10 +
tools/testing/selftests/kvm/dirty_log_test.c | 12 +-
.../testing/selftests/kvm/include/kvm_util.h | 9 +
.../selftests/kvm/include/powerpc/hcall.h | 17 +
.../kvm/include/powerpc/kvm_util_arch.h | 22 +
.../selftests/kvm/include/powerpc/ppc_asm.h | 32 ++
.../selftests/kvm/include/powerpc/processor.h | 39 ++
.../selftests/kvm/include/powerpc/ucall.h | 21 +
.../selftests/kvm/kvm_create_max_vcpus.c | 8 +-
tools/testing/selftests/kvm/lib/guest_modes.c | 20 +-
tools/testing/selftests/kvm/lib/kvm_util.c | 8 +
.../selftests/kvm/lib/powerpc/handlers.S | 93 ++++
.../testing/selftests/kvm/lib/powerpc/hcall.c | 45 ++
.../selftests/kvm/lib/powerpc/processor.c | 512 ++++++++++++++++++
.../testing/selftests/kvm/lib/powerpc/ucall.c | 22 +
17 files changed, 862 insertions(+), 12 deletions(-)
create mode 100644 tools/testing/selftests/kvm/include/powerpc/hcall.h
create mode 100644 tools/testing/selftests/kvm/include/powerpc/kvm_util_arch.h
create mode 100644 tools/testing/selftests/kvm/include/powerpc/ppc_asm.h
create mode 100644 tools/testing/selftests/kvm/include/powerpc/processor.h
create mode 100644 tools/testing/selftests/kvm/include/powerpc/ucall.h
create mode 100644 tools/testing/selftests/kvm/lib/powerpc/handlers.S
create mode 100644 tools/testing/selftests/kvm/lib/powerpc/hcall.c
create mode 100644 tools/testing/selftests/kvm/lib/powerpc/processor.c
create mode 100644 tools/testing/selftests/kvm/lib/powerpc/ucall.c
--
2.39.5
On 11/09/26 10:18 AM, Ritesh Harjani (IBM) wrote: > PATCH v3 -> PATCH v4: > ================== > - Rebased on top of Sean's new page allocator patch series v2 [1] > This allowed to drop and patch-2 since it will now come from Sean's > v2. > - Addressed review comments from Sean - squashed patches 6-10 in patch-1 of > this. > - Dropped patch-5 to print vcpu_id when KVM_CREATE_VCPU ioctl fails. > - Added additional patch-3 to this series to allow dirty_log_test to run on all > big-endian machines. > > [1]: https://lore.kernel.org/kvm/20260902164123.2546762-1-seanjc@google.com/ > [v3]: https://lore.kernel.org/linuxppc-dev/2d2c46be7f051c7f1c645afaec67f57067d37a81.1781093720.git.ritesh.list@gmail.com/ > > Testing updates: > ================ > I have done some fair amount of testing of the selftests both on real HW and > using various combinations on qemu (powernv+LE (default), pseries+cap-nested-hv, > pseries+cap-nested-papr, powernv+BE). There were few powerpc kvm kernel fixes > which were identified as part of this work. I will send those patches separately > as those anyway needs to go in separately. > > <pasted snippet of cover letter from previous versions> > ======================================================= > > Hi All, > > This series primarly adds KVM selftests support for powerpc (64-bit, BookS, > radix MMU). > > This patch series is originally Nick's work. I have mainly only rebased it on > the latest upstream tree. Since the rebase required few changes to all the four > patches (Patch 1-4), I have dropped the earlier Acked-by from Michael Ellerman. > > Since the last series was posted three years ago [1], I am resetting the version > to RFC. This rebase was done as part of a larger effort to improve the selftests > infrastructure for Linux on PowerPC tree. Thanks to Harsh and Maddy for their > help on this. > > Nicholas Piggin (1): > KVM: PPC: selftests: add support for powerpc > > Ritesh Harjani (IBM) (2): > KVM: PPC: selftests: powerpc enable kvm_create_max_vcpus test > KVM: selftests: Use LE bitops for dirty bitmaps on all big-endian > hosts > > MAINTAINERS | 2 + > tools/testing/selftests/kvm/Makefile | 2 +- > tools/testing/selftests/kvm/Makefile.kvm | 10 + > tools/testing/selftests/kvm/dirty_log_test.c | 12 +- > .../testing/selftests/kvm/include/kvm_util.h | 9 + > .../selftests/kvm/include/powerpc/hcall.h | 17 + > .../kvm/include/powerpc/kvm_util_arch.h | 22 + > .../selftests/kvm/include/powerpc/ppc_asm.h | 32 ++ > .../selftests/kvm/include/powerpc/processor.h | 39 ++ > .../selftests/kvm/include/powerpc/ucall.h | 21 + > .../selftests/kvm/kvm_create_max_vcpus.c | 8 +- > tools/testing/selftests/kvm/lib/guest_modes.c | 20 +- > tools/testing/selftests/kvm/lib/kvm_util.c | 8 + > .../selftests/kvm/lib/powerpc/handlers.S | 93 ++++ > .../testing/selftests/kvm/lib/powerpc/hcall.c | 45 ++ > .../selftests/kvm/lib/powerpc/processor.c | 512 ++++++++++++++++++ > .../testing/selftests/kvm/lib/powerpc/ucall.c | 22 + > 17 files changed, 862 insertions(+), 12 deletions(-) > create mode 100644 tools/testing/selftests/kvm/include/powerpc/hcall.h > create mode 100644 tools/testing/selftests/kvm/include/powerpc/kvm_util_arch.h > create mode 100644 tools/testing/selftests/kvm/include/powerpc/ppc_asm.h > create mode 100644 tools/testing/selftests/kvm/include/powerpc/processor.h > create mode 100644 tools/testing/selftests/kvm/include/powerpc/ucall.h > create mode 100644 tools/testing/selftests/kvm/lib/powerpc/handlers.S > create mode 100644 tools/testing/selftests/kvm/lib/powerpc/hcall.c > create mode 100644 tools/testing/selftests/kvm/lib/powerpc/processor.c > create mode 100644 tools/testing/selftests/kvm/lib/powerpc/ucall.c > > -- > 2.39.5 > Hi Ritesh, Thanks for working on this enablement. I have tested kvm selftests after applying this patch on top of Sean's patch as mentioned and even I applied this patch for the kvm_create_max_vcpus issue as rc=-56 "https://lore.kernel.org/linuxppc-dev/cover.1789099725.git.ritesh.list@gmail.com/" But still few tests got failed. Providing a summary below: System details where I tested this : PowerVM P11 (ppc64le) KVM enabled lpar! Test Results: ============= PASS: demand_paging_test PASS: dirty_log_test (dirty-log mode, 4K + 64K pages, 32 iterations) PASS: guest_print_test PASS: kvm_binary_stats_test (4/4 subtests) PASS: kvm_page_table_test (4K + 64K pages) PASS: set_memory_region_test PASS: memslot_modification_stress_test (4K + 64K pages) PASS: memslot_perf_test PASS: dirty_log_perf_test (4K + 64K pages) SKIP: irqfd_test - kvm_arch_has_default_irqchip() not yet implemented for PowerPC SKIP: vm_types_test - KVM_CAP_VM_TYPES not supported on PowerPC Failures seen for the following tests FAIL: kvm_create_max_vcpus - RFC patch-3 partially helps: KVM_CAP_MAX_VCPU_ID correctly capped from 16384 to 2048. - But vCPU creation still fails with rc=-44 below the 2048 limit. - dmesg: KVM: Create Guest vcpu hcall failed, rc=-44 for the above test in dmesg I saw the following error everytime I ran this test dmesg -w [ 2640.213798] KVM: Create Guest vcpu hcall failed, rc=-44 [ 2923.048989] KVM: Create Guest hcall failed, rc=-44 [ 3650.642771] KVM: Create Guest vcpu hcall failed, rc=-44 FAIL: hardware_disable_test - KVM_CREATE_VM fails with ENOMEM - dmesg: KVM: Create Guest vcpu hcall failed, rc=-44 - Likely the same underlying hcall issue as kvm_create_max_vcpus. FAIL: access_tracking_perf_test - Too many idle pages (245385 out of 262144) - errno=4 (Interrupted system call) - page_idle tracking may not be fully supported on PowerPC yet. I believe these issues might be real kernel issue. If you plan to send fixed please feel free to add my Reported-by: Reported-by: Anushree Mathur <anushree.mathur@linux.ibm.com> Thank you, Anushree Mathur
Anushree Mathur <anushree.mathur2@ibm.com> writes:
> On 11/09/26 10:18 AM, Ritesh Harjani (IBM) wrote:
>> PATCH v3 -> PATCH v4:
>> ==================
>> - Rebased on top of Sean's new page allocator patch series v2 [1]
>> This allowed to drop and patch-2 since it will now come from Sean's
>> v2.
>> - Addressed review comments from Sean - squashed patches 6-10 in patch-1 of
>> this.
>> - Dropped patch-5 to print vcpu_id when KVM_CREATE_VCPU ioctl fails.
>> - Added additional patch-3 to this series to allow dirty_log_test to run on all
>> big-endian machines.
>>
>> [1]: https://lore.kernel.org/kvm/20260902164123.2546762-1-seanjc@google.com/
>> [v3]: https://lore.kernel.org/linuxppc-dev/2d2c46be7f051c7f1c645afaec67f57067d37a81.1781093720.git.ritesh.list@gmail.com/
>>
>> Testing updates:
>> ================
>> I have done some fair amount of testing of the selftests both on real HW and
>> using various combinations on qemu (powernv+LE (default), pseries+cap-nested-hv,
>> pseries+cap-nested-papr, powernv+BE). There were few powerpc kvm kernel fixes
>> which were identified as part of this work. I will send those patches separately
>> as those anyway needs to go in separately.
>>
>> <pasted snippet of cover letter from previous versions>
>> =======================================================
>>
>> Hi All,
>>
>> This series primarly adds KVM selftests support for powerpc (64-bit, BookS,
>> radix MMU).
>>
>> This patch series is originally Nick's work. I have mainly only rebased it on
>> the latest upstream tree. Since the rebase required few changes to all the four
>> patches (Patch 1-4), I have dropped the earlier Acked-by from Michael Ellerman.
>>
>> Since the last series was posted three years ago [1], I am resetting the version
>> to RFC. This rebase was done as part of a larger effort to improve the selftests
>> infrastructure for Linux on PowerPC tree. Thanks to Harsh and Maddy for their
>> help on this.
>>
>> Nicholas Piggin (1):
>> KVM: PPC: selftests: add support for powerpc
>>
>> Ritesh Harjani (IBM) (2):
>> KVM: PPC: selftests: powerpc enable kvm_create_max_vcpus test
>> KVM: selftests: Use LE bitops for dirty bitmaps on all big-endian
>> hosts
>>
>> MAINTAINERS | 2 +
>> tools/testing/selftests/kvm/Makefile | 2 +-
>> tools/testing/selftests/kvm/Makefile.kvm | 10 +
>> tools/testing/selftests/kvm/dirty_log_test.c | 12 +-
>> .../testing/selftests/kvm/include/kvm_util.h | 9 +
>> .../selftests/kvm/include/powerpc/hcall.h | 17 +
>> .../kvm/include/powerpc/kvm_util_arch.h | 22 +
>> .../selftests/kvm/include/powerpc/ppc_asm.h | 32 ++
>> .../selftests/kvm/include/powerpc/processor.h | 39 ++
>> .../selftests/kvm/include/powerpc/ucall.h | 21 +
>> .../selftests/kvm/kvm_create_max_vcpus.c | 8 +-
>> tools/testing/selftests/kvm/lib/guest_modes.c | 20 +-
>> tools/testing/selftests/kvm/lib/kvm_util.c | 8 +
>> .../selftests/kvm/lib/powerpc/handlers.S | 93 ++++
>> .../testing/selftests/kvm/lib/powerpc/hcall.c | 45 ++
>> .../selftests/kvm/lib/powerpc/processor.c | 512 ++++++++++++++++++
>> .../testing/selftests/kvm/lib/powerpc/ucall.c | 22 +
>> 17 files changed, 862 insertions(+), 12 deletions(-)
>> create mode 100644 tools/testing/selftests/kvm/include/powerpc/hcall.h
>> create mode 100644 tools/testing/selftests/kvm/include/powerpc/kvm_util_arch.h
>> create mode 100644 tools/testing/selftests/kvm/include/powerpc/ppc_asm.h
>> create mode 100644 tools/testing/selftests/kvm/include/powerpc/processor.h
>> create mode 100644 tools/testing/selftests/kvm/include/powerpc/ucall.h
>> create mode 100644 tools/testing/selftests/kvm/lib/powerpc/handlers.S
>> create mode 100644 tools/testing/selftests/kvm/lib/powerpc/hcall.c
>> create mode 100644 tools/testing/selftests/kvm/lib/powerpc/processor.c
>> create mode 100644 tools/testing/selftests/kvm/lib/powerpc/ucall.c
>>
>> --
>> 2.39.5
>>
> Hi Ritesh,
> Thanks for working on this enablement. I have tested kvm selftests after
Thanks for testing this.
> applying this patch on top of Sean's patch as mentioned and even I
> applied this patch for the kvm_create_max_vcpus issue as rc=-56
> "https://lore.kernel.org/linuxppc-dev/cover.1789099725.git.ritesh.list@gmail.com/"
> But still few tests got failed. Providing a summary below:
>
> System details where I tested this : PowerVM P11 (ppc64le) KVM enabled lpar!
>
> Test Results:
> =============
>
> PASS: demand_paging_test
> PASS: dirty_log_test (dirty-log mode, 4K + 64K pages, 32 iterations)
> PASS: guest_print_test
> PASS: kvm_binary_stats_test (4/4 subtests)
> PASS: kvm_page_table_test (4K + 64K pages)
> PASS: set_memory_region_test
> PASS: memslot_modification_stress_test (4K + 64K pages)
> PASS: memslot_perf_test
> PASS: dirty_log_perf_test (4K + 64K pages)
>
> SKIP: irqfd_test
> - kvm_arch_has_default_irqchip() not yet implemented for PowerPC
>
> SKIP: vm_types_test
> - KVM_CAP_VM_TYPES not supported on PowerPC
>
So far so good then.
> Failures seen for the following tests
>
> FAIL: kvm_create_max_vcpus
> - RFC patch-3 partially helps: KVM_CAP_MAX_VCPU_ID correctly
> capped from 16384 to 2048.
> - But vCPU creation still fails with rc=-44 below the 2048 limit.
> - dmesg: KVM: Create Guest vcpu hcall failed, rc=-44
>
> for the above test in dmesg I saw the following error everytime I ran
> this test
>
> dmesg -w
> [ 2640.213798] KVM: Create Guest vcpu hcall failed, rc=-44
> [ 2923.048989] KVM: Create Guest hcall failed, rc=-44
> [ 3650.642771] KVM: Create Guest vcpu hcall failed, rc=-44
>
> FAIL: hardware_disable_test
> - KVM_CREATE_VM fails with ENOMEM
> - dmesg: KVM: Create Guest vcpu hcall failed, rc=-44
> - Likely the same underlying hcall issue as kvm_create_max_vcpus.
>
In both above cases it looks like the hcall failed due to limited
resources. I looked at the spec and it seems, create vm hcall
(H_GUEST_CREATE) or create vcpu hcall (H_GUEST_CREATE_VCPU) can fail
with -44 (H_Not_Enough_Resources) error. This can happen because L0
(Power firmware) in our case can run with a limited/finite memory for
guest management, so if we are running out of space there, then it can
essentially return -44, which the L1 KVM considers as -ENOMEM to the
user.
i.e.
case H_NOT_ENOUGH_RESOURCES:
case H_ABORTED:
return -ENOMEM;
So I am planning to add something like for all arches ...
_weak bool kvm_arch_vm_limited_resources(void)
{
return false;
}
... and for powerpc we will decide if our host is the LPAR which
"mostly" means we will be running kvm on powervm.
(For now I am planning to use this dirty trick to make sure these
testcases are not reported as test failures).
bool kvm_arch_vm_limited_resources(void)
{
return !access("/proc/device-tree/rtas/ibm,hypertas-functions", F_OK);
}
For kvm_create_max_vcpus I will break the loop when ENOMEM occurs and
for hardware_disable_test I will limit the number of iterations to a
very low value for now e.g. NUM_ITERATIONS_LIM=5 (since that test case
does few things asynchronously).
> FAIL: access_tracking_perf_test
> - Too many idle pages (245385 out of 262144)
> - errno=4 (Interrupted system call)
> - page_idle tracking may not be fully supported on PowerPC yet.
>
hmm, looks like there are 2 issues here:
1. one seems to be testcase related: guest 4k pagesize v/s host 64K
pagesize.
2. The issue reported when guest and host pagesize=64K is since we don't
TLB invalidate during Reference bit update in L1 - I guess due to
performance reasons. But for now I will make it warn only like how
x86 does. Will add a todo in my list to revisit this later (I am
currently anyways looking into related area, but I don't want to
block the selftests changes for that).
>
> I believe these issues might be real kernel issue. If you plan to send
> fixed please feel free to add my Reported-by:
>
> Reported-by: Anushree Mathur <anushree.mathur@linux.ibm.com>
>
Sure Thanks!
So mostly these failures were kvm on powervm or nested guest related.
It would be nice if you can also publish the results of running these
tests on PowerNV.
Meanwhile I will soon share a couple of fixes (or maybe v5) which should
fix the reported failures.
-ritesh
On 19/09/26 2:29 PM, Anushree Mathur wrote: > > On 11/09/26 10:18 AM, Ritesh Harjani (IBM) wrote: >> PATCH v3 -> PATCH v4: >> ================== >> - Rebased on top of Sean's new page allocator patch series v2 [1] >> This allowed to drop and patch-2 since it will now come from Sean's >> v2. >> - Addressed review comments from Sean - squashed patches 6-10 in >> patch-1 of >> this. >> - Dropped patch-5 to print vcpu_id when KVM_CREATE_VCPU ioctl fails. >> - Added additional patch-3 to this series to allow dirty_log_test to >> run on all >> big-endian machines. >> >> [1]: >> https://lore.kernel.org/kvm/20260902164123.2546762-1-seanjc@google.com/ >> [v3]: >> https://lore.kernel.org/linuxppc-dev/2d2c46be7f051c7f1c645afaec67f57067d37a81.1781093720.git.ritesh.list@gmail.com/ >> >> Testing updates: >> ================ >> I have done some fair amount of testing of the selftests both on real >> HW and >> using various combinations on qemu (powernv+LE (default), >> pseries+cap-nested-hv, >> pseries+cap-nested-papr, powernv+BE). There were few powerpc kvm >> kernel fixes >> which were identified as part of this work. I will send those patches >> separately >> as those anyway needs to go in separately. >> >> <pasted snippet of cover letter from previous versions> >> ======================================================= >> >> Hi All, >> >> This series primarly adds KVM selftests support for powerpc (64-bit, >> BookS, >> radix MMU). >> >> This patch series is originally Nick's work. I have mainly only >> rebased it on >> the latest upstream tree. Since the rebase required few changes to >> all the four >> patches (Patch 1-4), I have dropped the earlier Acked-by from Michael >> Ellerman. >> >> Since the last series was posted three years ago [1], I am resetting >> the version >> to RFC. This rebase was done as part of a larger effort to improve >> the selftests >> infrastructure for Linux on PowerPC tree. Thanks to Harsh and Maddy >> for their >> help on this. >> >> Nicholas Piggin (1): >> KVM: PPC: selftests: add support for powerpc >> >> Ritesh Harjani (IBM) (2): >> KVM: PPC: selftests: powerpc enable kvm_create_max_vcpus test >> KVM: selftests: Use LE bitops for dirty bitmaps on all big-endian >> hosts >> >> MAINTAINERS | 2 + >> tools/testing/selftests/kvm/Makefile | 2 +- >> tools/testing/selftests/kvm/Makefile.kvm | 10 + >> tools/testing/selftests/kvm/dirty_log_test.c | 12 +- >> .../testing/selftests/kvm/include/kvm_util.h | 9 + >> .../selftests/kvm/include/powerpc/hcall.h | 17 + >> .../kvm/include/powerpc/kvm_util_arch.h | 22 + >> .../selftests/kvm/include/powerpc/ppc_asm.h | 32 ++ >> .../selftests/kvm/include/powerpc/processor.h | 39 ++ >> .../selftests/kvm/include/powerpc/ucall.h | 21 + >> .../selftests/kvm/kvm_create_max_vcpus.c | 8 +- >> tools/testing/selftests/kvm/lib/guest_modes.c | 20 +- >> tools/testing/selftests/kvm/lib/kvm_util.c | 8 + >> .../selftests/kvm/lib/powerpc/handlers.S | 93 ++++ >> .../testing/selftests/kvm/lib/powerpc/hcall.c | 45 ++ >> .../selftests/kvm/lib/powerpc/processor.c | 512 ++++++++++++++++++ >> .../testing/selftests/kvm/lib/powerpc/ucall.c | 22 + >> 17 files changed, 862 insertions(+), 12 deletions(-) >> create mode 100644 tools/testing/selftests/kvm/include/powerpc/hcall.h >> create mode 100644 >> tools/testing/selftests/kvm/include/powerpc/kvm_util_arch.h >> create mode 100644 >> tools/testing/selftests/kvm/include/powerpc/ppc_asm.h >> create mode 100644 >> tools/testing/selftests/kvm/include/powerpc/processor.h >> create mode 100644 tools/testing/selftests/kvm/include/powerpc/ucall.h >> create mode 100644 tools/testing/selftests/kvm/lib/powerpc/handlers.S >> create mode 100644 tools/testing/selftests/kvm/lib/powerpc/hcall.c >> create mode 100644 tools/testing/selftests/kvm/lib/powerpc/processor.c >> create mode 100644 tools/testing/selftests/kvm/lib/powerpc/ucall.c >> >> -- >> 2.39.5 >> > Hi Ritesh, > Thanks for working on this enablement. I have tested kvm selftests > after applying this patch on top of Sean's patch as mentioned and even > I applied this patch for the kvm_create_max_vcpus issue as rc=-56 > "https://lore.kernel.org/linuxppc-dev/cover.1789099725.git.ritesh.list@gmail.com/" > But still few tests got failed. Providing a summary below: > > System details where I tested this : PowerVM P11 (ppc64le) KVM enabled > lpar! > > Test Results: > ============= > > PASS: demand_paging_test > PASS: dirty_log_test (dirty-log mode, 4K + 64K pages, 32 iterations) > PASS: guest_print_test > PASS: kvm_binary_stats_test (4/4 subtests) > PASS: kvm_page_table_test (4K + 64K pages) > PASS: set_memory_region_test > PASS: memslot_modification_stress_test (4K + 64K pages) > PASS: memslot_perf_test > PASS: dirty_log_perf_test (4K + 64K pages) > > SKIP: irqfd_test > - kvm_arch_has_default_irqchip() not yet implemented for PowerPC > > SKIP: vm_types_test > - KVM_CAP_VM_TYPES not supported on PowerPC > > Failures seen for the following tests > > FAIL: kvm_create_max_vcpus > - RFC patch-3 partially helps: KVM_CAP_MAX_VCPU_ID correctly > capped from 16384 to 2048. > - But vCPU creation still fails with rc=-44 below the 2048 limit. > - dmesg: KVM: Create Guest vcpu hcall failed, rc=-44 > > for the above test in dmesg I saw the following error everytime I ran > this test > > dmesg -w > [ 2640.213798] KVM: Create Guest vcpu hcall failed, rc=-44 > [ 2923.048989] KVM: Create Guest hcall failed, rc=-44 > [ 3650.642771] KVM: Create Guest vcpu hcall failed, rc=-44 > > FAIL: hardware_disable_test > - KVM_CREATE_VM fails with ENOMEM > - dmesg: KVM: Create Guest vcpu hcall failed, rc=-44 > - Likely the same underlying hcall issue as kvm_create_max_vcpus. > > FAIL: access_tracking_perf_test > - Too many idle pages (245385 out of 262144) > - errno=4 (Interrupted system call) > - page_idle tracking may not be fully supported on PowerPC yet. > > > I believe these issues might be real kernel issue. If you plan to send > fixed please feel free to add my Reported-by: > > Reported-by: Anushree Mathur <anushree.mathur@linux.ibm.com> > > Thank you, > Anushree Mathur Here are some more detailed logs for the Failed selftests: ./kvm_create_max_vcpus Random seed: 0x62af7ca KVM_CAP_MAX_VCPU_ID: 2048 KVM_CAP_MAX_VCPUS: 2048 Testing creating 2048 vCPUs, with IDs 0...2047. ==== Test Assertion Failure ==== lib/kvm_util.c:1388: vcpu->fd >= 0 pid=3808 tid=3808 errno=12 - Cannot allocate memory 1 0x0000000010008667: __vm_vcpu_add at kvm_util.c:1388 (discriminator 18) 2 0x0000000010004093: test_vcpu_creation at kvm_create_max_vcpus.c:32 3 0x0000000010003c93: main at kvm_create_max_vcpus.c:59 4 0x00007fffae42b4fb: ?? ??:0 5 0x00007fffae42b77b: ?? ??:0 KVM_CREATE_VCPU failed, rc: -1 errno: 12 (Cannot allocate memory) ./hardware_disable_test Random seed: 0x7c401041 ==== Test Assertion Failure ==== lib/kvm_util.c:193: vm->fd >= 0 pid=5544 tid=5544 errno=12 - Cannot allocate memory 1 0x00000000100069cb: vm_open at kvm_util.c:193 (discriminator 3) 2 0x000000001000b95f: ____vm_create at kvm_util.c:404 3 0x000000001000c403: __vm_create at kvm_util.c:513 4 0x0000000010004037: vm_create at kvm_util.h:1126 5 (inlined by) run_test at hardware_disable_test.c:78 6 (inlined by) main at hardware_disable_test.c:148 7 0x00007fff95c2b4fb: ?? ??:0 8 0x00007fff95c2b77b: ?? ??:0 KVM_CREATE_VM failed, rc: -1 errno: 12 (Cannot allocate memory) ./access_tracking_perf_test Random seed: 0x50130229 lru_gen: Could not open /sys/kernel/mm/lru_gen/enabled Using page_idle for aging Testing guest mode: PA-bits:52, VA-bits:52, 4K pages guest physical test memory: [0xfffffbfff0000, 0xfffffffff0000) Populating memory : 0.324930580s Writing to populated memory : 0.007850148s Reading from populated memory : 0.008390886s ==== Test Assertion Failure ==== access_tracking_perf_test.c:164: idle_pages_warn_only pid=5558 tid=5560 errno=4 - Interrupted system call 1 0x0000000010004cdf: too_many_idle_pages at access_tracking_perf_test.c:164 2 (inlined by) pageidle_mark_vcpu_memory_idle at access_tracking_perf_test.c:229 3 (inlined by) vcpu_thread_main at access_tracking_perf_test.c:339 4 0x000000001000f5f7: vcpu_thread_main at memstress.c:277 5 0x00007fff822b8063: ?? ??:0 vCPU0: Too many pages still idle (245400 out of 262144) Thank you, Anushree Mathur
© 2016 - 2026 Red Hat, Inc.