Re: [PATCH v4 0/3] KVM: selftests: add powerpc support
From: Anushree Mathur
Date: Sat Sep 19 2026 - 05:00:37 EST
On 11/09/26 10:18 AM, Ritesh Harjani (IBM) wrote:
PATCH v3 -> PATCH v4:Hi Ritesh,
==================
- 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@xxxxxxxxxx/
[v3]: https://lore.kernel.org/linuxppc-dev/2d2c46be7f051c7f1c645afaec67f57067d37a81.1781093720.git.ritesh.list@xxxxxxxxx/
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
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@xxxxxxxxx/" 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@xxxxxxxxxxxxx>
Thank you,
Anushree Mathur