]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: selftests: Don't fall over in mmu_stress_test when only one CPU is present
authorBrendan Jackman <jackmanb@google.com>
Tue, 7 Oct 2025 19:12:31 +0000 (19:12 +0000)
committerSean Christopherson <seanjc@google.com>
Mon, 20 Oct 2025 15:55:23 +0000 (08:55 -0700)
Running mmu_stress_test on a system with only one CPU is not a recipe for
success. However, there's no clear-cut reason why it absolutely
shouldn't work, so the test shouldn't completely reject such a platform.

At present, the *3/4 calculation will return zero on these platforms and
the test fails. So, instead just skip that calculation.

Suggested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Brendan Jackman <jackmanb@google.com>
Link: https://lore.kernel.org/r/20251007-b4-kvm-mmu-stresstest-1proc-v1-1-8c95aa0e30b6@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
tools/testing/selftests/kvm/mmu_stress_test.c

index 37b7e65245331fe50aa469d55fb1cf877d7d712f..c799e0d0694f88fb2d0d68410bcfb6896ea555c0 100644 (file)
@@ -263,8 +263,10 @@ static void calc_default_nr_vcpus(void)
        TEST_ASSERT(!r, "sched_getaffinity failed, errno = %d (%s)",
                    errno, strerror(errno));
 
-       nr_vcpus = CPU_COUNT(&possible_mask) * 3/4;
+       nr_vcpus = CPU_COUNT(&possible_mask);
        TEST_ASSERT(nr_vcpus > 0, "Uh, no CPUs?");
+       if (nr_vcpus >= 2)
+               nr_vcpus = nr_vcpus * 3/4;
 }
 
 int main(int argc, char *argv[])