Port: Add Solaris getcpu support
[urcu.git] / tests / benchmark / run-urcu-tests.sh
CommitLineData
ad460058
MD
1#!/bin/bash
2
3source ../utils/tap.sh
4
5NUM_TESTS=103
6
7plan_tests ${NUM_TESTS}
9e31d0f0
MD
8
9#run all tests
ad460058 10diag "Executing URCU tests"
9e31d0f0
MD
11
12#set to number of active CPUS
ad460058
MD
13NUM_CPUS=$(nproc)
14if [[ ${NUM_CPUS} -lt 4 ]]; then
15 NUM_CPUS=4 # Floor at 4 due to following assumptions.
16fi
17
18#first parameter: seconds per test
19DURATION=$1
9e31d0f0
MD
20
21#extra options, e.g. for setting affinity on even CPUs :
e4ca4127 22#EXTRA_OPTS=$(for a in $(seq 0 2 127); do echo -n "-a ${a} "; done)
9e31d0f0 23
ec3aaabb 24#ppc64 striding, use with NUM_CPUS=8
25
26#stride 1
27#EXTRA_OPTS=$(for a in $(seq 0 2 15); do echo -n "-a ${a} "; done)
28#stride 2
29#EXTRA_OPTS=$(for a in $(seq 0 4 31); do echo -n "-a ${a} "; done)
30#stride 4
31#EXTRA_OPTS=$(for a in $(seq 0 8 63); do echo -n "-a ${a} "; done)
32#stride 8
33#EXTRA_OPTS=$(for a in $(seq 0 16 127); do echo -n "-a ${a} "; done)
9e31d0f0
MD
34
35#Vary update fraction
36#x: vary update fraction from 0 to 0.0001
37 #fix number of readers and reader C.S. length, vary delay between updates
38#y: ops/s
39
a813abf8 40
ad460058 41diag "Executing batch RCU test"
a813abf8 42
bb9a66cb
MD
43BATCH_ARRAY="1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536
44 131072 262144"
a813abf8
MD
45NR_WRITERS=$((${NUM_CPUS} / 2))
46
a813abf8
MD
47NR_READERS=$((${NUM_CPUS} - ${NR_WRITERS}))
48for BATCH_SIZE in ${BATCH_ARRAY}; do
ad460058 49 okx ./runtests-batch.sh ${NR_READERS} ${NR_WRITERS} ${DURATION} -d 0 -b ${BATCH_SIZE} ${EXTRA_OPTS}
a813abf8
MD
50done
51
a74e263c 52#setting gc each 32768. ** UPDATE FOR YOUR ARCHITECTURE BASED ON TEST ABOVE **
31bb09e2 53EXTRA_OPTS="${EXTRA_OPTS} -b 32768"
a813abf8 54
ad460058 55diag "Executing update fraction test"
9e31d0f0 56
9e31d0f0 57WDELAY_ARRAY="0 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768
d109adc2
MD
58 65536 131072 262144 524288 1048576 2097152 4194304 8388608
59 16777216 33554432 67108864 134217728"
d42a8f3e 60NR_WRITERS=$((${NUM_CPUS} / 2))
9e31d0f0 61
bb84bcef 62NR_READERS=$((${NUM_CPUS} - ${NR_WRITERS}))
d42a8f3e 63for WDELAY in ${WDELAY_ARRAY}; do
ad460058 64 okx ./runtests.sh ${NR_READERS} ${NR_WRITERS} ${DURATION} -d ${WDELAY} ${EXTRA_OPTS}
d42a8f3e 65done
9e31d0f0 66
9e31d0f0
MD
67#Test scalability :
68# x: vary number of readers from 0 to num cpus
69# y: ops/s
70# 0 writer.
71
ad460058 72diag "Executing scalability test"
9e31d0f0
MD
73
74NR_WRITERS=0
9e31d0f0
MD
75
76for NR_READERS in $(seq 1 ${NUM_CPUS}); do
ad460058 77 okx ./runtests.sh ${NR_READERS} ${NR_WRITERS} ${DURATION} ${EXTRA_OPTS}
9e31d0f0
MD
78done
79
80
81# x: Vary reader C.S. length from 0 to 100 us
82# y: ops/s
83# 8 readers
84# 0 writers
85
ad460058 86diag "Executing reader C.S. length test"
9e31d0f0 87
2b1e60a4 88NR_READERS=${NUM_CPUS}
9e31d0f0 89NR_WRITERS=0
9e31d0f0 90#in loops.
637dc445 91READERCSLEN_ARRAY="0 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152"
9e31d0f0 92
9e31d0f0 93for READERCSLEN in ${READERCSLEN_ARRAY}; do
ad460058 94 okx ./runtests.sh ${NR_READERS} ${NR_WRITERS} ${DURATION} ${EXTRA_OPTS} -c ${READERCSLEN}
9e31d0f0 95done
This page took 0.038167 seconds and 4 git commands to generate.