From f80aadcdd08e594e5758acc9ec5d7ef71725ac77 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Mon, 5 Oct 2015 17:41:59 -0400 Subject: [PATCH] Fix: regtest outputs valid TAP protocol Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- tests/benchmark/common.sh | 14 ++++++ tests/benchmark/run-urcu-tests.sh | 71 +++++++++++++++++++++++++------ 2 files changed, 72 insertions(+), 13 deletions(-) diff --git a/tests/benchmark/common.sh b/tests/benchmark/common.sh index 9eb03f8..1f5f07f 100755 --- a/tests/benchmark/common.sh +++ b/tests/benchmark/common.sh @@ -10,3 +10,17 @@ else test_time_bin="" fi +function cleanup() +{ + if [ x"$tmpfile" != x"" ]; then + rm -f $tmpfile + fi +} + +function xseq () { + i=$1 + while [[ "$i" -le "$2" ]]; do + echo "$i" + i=$(expr $i + 1) + done +} diff --git a/tests/benchmark/run-urcu-tests.sh b/tests/benchmark/run-urcu-tests.sh index 7a09742..1df988a 100755 --- a/tests/benchmark/run-urcu-tests.sh +++ b/tests/benchmark/run-urcu-tests.sh @@ -1,13 +1,15 @@ #!/bin/bash -source ../utils/tap.sh +#first parameter: seconds per test +DURATION=$1 -NUM_TESTS=103 +if [ "x$DURATION" = "x" ]; then + echo "usage: $0 [DURATION]" + exit 1 +fi -plan_tests ${NUM_TESTS} - -#run all tests -diag "Executing URCU tests" +. ../utils/tap.sh +. ./common.sh NUM_CPUS="1" for i in nproc gnproc; do @@ -24,8 +26,20 @@ if [[ ${NUM_CPUS} -lt 4 ]]; then NUM_CPUS=4 # Floor at 4 due to following assumptions. fi -#first parameter: seconds per test -DURATION=$1 +# batch: 19 * 1 = 19 +# fraction: 15 * 29 = +# scalabilit NUM_CPUS * 15 +# reader 15 * 23 = +NUM_TESTS=$(( 19 + 435 + ( ${NUM_CPUS} * 15 ) + 345 )) + +plan_tests ${NUM_TESTS} + +#run all tests +diag "Executing URCU tests" + +tmpfile= +trap cleanup SIGINT SIGTERM EXIT +tmpfile=$(mktemp) #extra options, e.g. for setting affinity on even CPUs : #EXTRA_OPTS=$(for a in $(seq 0 2 127); do echo -n "-a ${a} "; done) @@ -51,13 +65,26 @@ diag "Executing batch RCU test" BATCH_ARRAY="1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144" +BATCH_TEST_ARRAY="test_urcu_gc" + NR_WRITERS=$((${NUM_CPUS} / 2)) NR_READERS=$((${NUM_CPUS} - ${NR_WRITERS})) for BATCH_SIZE in ${BATCH_ARRAY}; do - okx ./runtests-batch.sh ${NR_READERS} ${NR_WRITERS} ${DURATION} -d 0 -b ${BATCH_SIZE} ${EXTRA_OPTS} + for TEST in ${BATCH_TEST_ARRAY}; do + okx $test_time_bin ./${TEST} ${NR_READERS} ${NR_WRITERS} ${DURATION} \ + -d 0 -b ${BATCH_SIZE} ${EXTRA_OPTS} 2>${tmpfile} + cat $tmpfile | while read line; do + echo "# $line" + done + done done +TEST_ARRAY="test_urcu_gc test_urcu_signal_gc test_urcu_mb_gc test_urcu_qsbr_gc + test_urcu_lgc test_urcu_signal_lgc test_urcu_mb_lgc test_urcu_qsbr_lgc + test_urcu test_urcu_signal test_urcu_mb test_urcu_qsbr + test_rwlock test_perthreadlock test_mutex" + #setting gc each 32768. ** UPDATE FOR YOUR ARCHITECTURE BASED ON TEST ABOVE ** EXTRA_OPTS="${EXTRA_OPTS} -b 32768" @@ -70,7 +97,13 @@ NR_WRITERS=$((${NUM_CPUS} / 2)) NR_READERS=$((${NUM_CPUS} - ${NR_WRITERS})) for WDELAY in ${WDELAY_ARRAY}; do - okx ./runtests.sh ${NR_READERS} ${NR_WRITERS} ${DURATION} -d ${WDELAY} ${EXTRA_OPTS} + for TEST in ${TEST_ARRAY}; do + okx $test_time_bin ./${TEST} ${NR_READERS} ${NR_WRITERS} ${DURATION} \ + -d ${WDELAY} ${EXTRA_OPTS} 2>$tmpfile + cat $tmpfile | while read line; do + echo "# $line" + done + done done #Test scalability : @@ -82,8 +115,14 @@ diag "Executing scalability test" NR_WRITERS=0 -for NR_READERS in $(seq 1 ${NUM_CPUS}); do - okx ./runtests.sh ${NR_READERS} ${NR_WRITERS} ${DURATION} ${EXTRA_OPTS} +for NR_READERS in $(xseq 1 ${NUM_CPUS}); do + for TEST in ${TEST_ARRAY}; do + okx $test_time_bin ./${TEST} ${NR_READERS} ${NR_WRITERS} ${DURATION} \ + ${EXTRA_OPTS} 2>$tmpfile + cat $tmpfile | while read line; do + echo "# $line" + done + done done @@ -100,5 +139,11 @@ NR_WRITERS=0 READERCSLEN_ARRAY="0 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152" for READERCSLEN in ${READERCSLEN_ARRAY}; do - okx ./runtests.sh ${NR_READERS} ${NR_WRITERS} ${DURATION} ${EXTRA_OPTS} -c ${READERCSLEN} + for TEST in ${TEST_ARRAY}; do + okx $test_time_bin ./${TEST} ${NR_READERS} ${NR_WRITERS} ${DURATION} \ + -c ${READERCSLEN} ${EXTRA_OPTS} 2>$tmpfile + cat $tmpfile | while read line; do + echo "# $line" + done + done done -- 2.34.1