From 1b53d81215d980dbcb81fe25e83ef23b2a95de1c Mon Sep 17 00:00:00 2001 From: Petr Menšík Date: Feb 17 2023 00:17:43 +0000 Subject: Make ck_sequence use all cores On ppc64le and aarch64 it takes significantly longer time to run ck_sequence test with limited cores. Adds separate variable for this test. Also parametrize check running with variables for easier tunning. --- diff --git a/ck-unit-sequence.patch b/ck-unit-sequence.patch new file mode 100644 index 0000000..a7ae5ff --- /dev/null +++ b/ck-unit-sequence.patch @@ -0,0 +1,38 @@ +From baf41283f37caa9086f55455bd0b1b5b47df384f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= +Date: Fri, 17 Feb 2023 00:32:42 +0100 +Subject: [PATCH] Allow different limit for ck_sequence validation + +This test takes significantly longer when it does not receive all CPUs +on the platform. It takes significantly longer on ppc64le and aarch64 +platform when CORES is less than actually detected. + +Allow overriding just this test by CORES_SEQUENCE variable. +--- + regressions/ck_sequence/validate/Makefile | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/regressions/ck_sequence/validate/Makefile b/regressions/ck_sequence/validate/Makefile +index bc2e5be..2aeb32b 100644 +--- a/regressions/ck_sequence/validate/Makefile ++++ b/regressions/ck_sequence/validate/Makefile +@@ -1,6 +1,7 @@ + .PHONY: check clean distribution + + OBJECTS=ck_sequence ++SEQUENCE_CORES=$(CORES) + + all: $(OBJECTS) + +@@ -8,7 +9,7 @@ ck_sequence: ck_sequence.c ../../../include/ck_sequence.h + $(CC) $(CFLAGS) -o ck_sequence ck_sequence.c + + check: all +- ./ck_sequence $(CORES) 1 ++ ./ck_sequence $(SEQUENCE_CORES) 1 + + clean: + rm -rf *~ *.o $(OBJECTS) *.dSYM *.exe +-- +2.39.1 + diff --git a/ck.spec b/ck.spec index 483d4d7..b9f7055 100644 --- a/ck.spec +++ b/ck.spec @@ -12,7 +12,10 @@ Patch2: ck-register-constraint.patch # disable ck_hclh_test from ck_spinlock temporary solution # github issue: https://github.com/concurrencykit/ck/issues/153 Patch3: ck_disable_ck_hclh_test.patch +# measure unit test times Patch4: ck-unit-time.patch +# specify SEQUENCE_CORES different for one test +Patch5: ck-unit-sequence.patch BuildRequires: gcc BuildRequires: make @@ -62,11 +65,17 @@ chmod 0755 %{buildroot}%{_libdir}/libck.so.* rm %{buildroot}%{_libdir}/libck.a %check +MAX_CORES=4 # 8+ CORES take quite long, limit them to 4 CORES=$(grep '^CORES=' build/regressions.build | cut -d= -f2) -[ "${CORES}" -gt 4 ] && CORES=4 +# ck_sequence tests wants all cores on the system to be quick +SEQUENCE_CORES="$CORES" +TIMEOUT=$((20*60)) +TIMEOUT_KILL=$((TIMEOUT+100)) +[ "${CORES}" -gt "${MAX_CORES}" ] && CORES="${MAX_CORES}" # Protect builders against hard lock -time timeout -k 1300 1200 make check CORES=${CORES} +time timeout -k $TIMEOUT_KILL $TIMEOUT \ + make check CORES=${CORES} SEQUENCE_CORES=${SEQUENCE_CORES} %files %license LICENSE