[kvm-unit-tests PATCH v4 4/8] s390x: uv-host: Add cpu number check to test_init

Janosch Frank
2023-06-22T07:53:16Z

We should only run a test that needs more than one cpu if a sufficient
number of cpus are available.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
---
s390x/uv-host.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/s390x/uv-host.c b/s390x/uv-host.c
index 08ef266a..c04cdd73 100644
--- a/s390x/uv-host.c
+++ b/s390x/uv-host.c
@@ -550,11 +550,15 @@ static void test_init(void)
"storage below 2GB");
uvcb_init.stor_origin = tmp;

- smp_cpu_setup(1, PSW_WITH_CUR_MASK(cpu_loop));
- rc = uv_call(0, (uint64_t)&uvcb_init);
- report(rc == 1 && uvcb_init.header.rc == 0x102,
- "too many running cpus");
- smp_cpu_stop(1);
+ if (smp_query_num_cpus() > 1) {
+ smp_cpu_setup(1, PSW_WITH_CUR_MASK(cpu_loop));
+ rc = uv_call(0, (uint64_t)&uvcb_init);
+ report(rc == 1 && uvcb_init.header.rc == 0x102,
+ "too many running cpus");
+ smp_cpu_stop(1);
+ } else {
+ report_skip("Not enough cpus for 0x102 test");
+ }

rc = uv_call(0, (uint64_t)&uvcb_init);
report(rc == 0 && uvcb_init.header.rc == UVC_RC_EXECUTED, "successful");
--
2.34.1