Running this 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 <[email protected]>
Signed-off-by: Brendan Jackman <[email protected]>
---
 tools/testing/selftests/kvm/mmu_stress_test.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/kvm/mmu_stress_test.c 
b/tools/testing/selftests/kvm/mmu_stress_test.c
index 
6a437d2be9fa444b34c2a73308a9d1c7ff3cc4f5..b5bd6fbad32a9ad5247a52ecf811b29293763e2e
 100644
--- a/tools/testing/selftests/kvm/mmu_stress_test.c
+++ b/tools/testing/selftests/kvm/mmu_stress_test.c
@@ -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[])

---
base-commit: 6b36119b94d0b2bb8cea9d512017efafd461d6ac
change-id: 20251007-b4-kvm-mmu-stresstest-1proc-e6157c13787a

Best regards,
-- 
Brendan Jackman <[email protected]>


Reply via email to