brintos

brintos / linux-shallow public Read only

0
0
Text · 2.2 KiB · 8d31426 Raw
132 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.0+ or MIT3 4NR_CPUS=`grep '^processor' /proc/cpuinfo | wc -l`5 6EXTRA_ARGS=${@}7 8OLDIFS="$IFS"9IFS=$'\n'10TEST_LIST=(11	"-T s"12	"-T l"13	"-T b"14	"-T b -M"15	"-T m"16	"-T m -M"17	"-T i"18	"-T r"19)20 21TEST_NAME=(22	"spinlock"23	"list"24	"buffer"25	"buffer with barrier"26	"memcpy"27	"memcpy with barrier"28	"increment"29	"membarrier"30)31IFS="$OLDIFS"32 33REPS=100034SLOW_REPS=10035NR_THREADS=$((6*${NR_CPUS}))36 37function do_tests()38{39	local i=040	while [ "$i" -lt "${#TEST_LIST[@]}" ]; do41		echo "Running test ${TEST_NAME[$i]}"42		./param_test ${TEST_LIST[$i]} -r ${REPS} -t ${NR_THREADS} ${@} ${EXTRA_ARGS} || exit 143		echo "Running compare-twice test ${TEST_NAME[$i]}"44		./param_test_compare_twice ${TEST_LIST[$i]} -r ${REPS} -t ${NR_THREADS} ${@} ${EXTRA_ARGS} || exit 145 46		echo "Running mm_cid test ${TEST_NAME[$i]}"47		./param_test_mm_cid ${TEST_LIST[$i]} -r ${REPS} -t ${NR_THREADS} ${@} ${EXTRA_ARGS} || exit 148		echo "Running mm_cid compare-twice test ${TEST_NAME[$i]}"49		./param_test_mm_cid_compare_twice ${TEST_LIST[$i]} -r ${REPS} -t ${NR_THREADS} ${@} ${EXTRA_ARGS} || exit 150		let "i++"51	done52}53 54echo "Default parameters"55do_tests56 57echo "Loop injection: 10000 loops"58 59OLDIFS="$IFS"60IFS=$'\n'61INJECT_LIST=(62	"1"63	"2"64	"3"65	"4"66	"5"67	"6"68	"7"69	"8"70	"9"71)72IFS="$OLDIFS"73 74NR_LOOPS=1000075 76i=077while [ "$i" -lt "${#INJECT_LIST[@]}" ]; do78	echo "Injecting at <${INJECT_LIST[$i]}>"79	do_tests -${INJECT_LIST[i]} ${NR_LOOPS}80	let "i++"81done82NR_LOOPS=83 84function inject_blocking()85{86	OLDIFS="$IFS"87	IFS=$'\n'88	INJECT_LIST=(89		"7"90		"8"91		"9"92	)93	IFS="$OLDIFS"94 95	NR_LOOPS=-196 97	i=098	while [ "$i" -lt "${#INJECT_LIST[@]}" ]; do99		echo "Injecting at <${INJECT_LIST[$i]}>"100		do_tests -${INJECT_LIST[i]} -1 ${@}101		let "i++"102	done103	NR_LOOPS=104}105 106echo "Yield injection (25%)"107inject_blocking -m 4 -y108 109echo "Yield injection (50%)"110inject_blocking -m 2 -y111 112echo "Yield injection (100%)"113inject_blocking -m 1 -y114 115echo "Kill injection (25%)"116inject_blocking -m 4 -k117 118echo "Kill injection (50%)"119inject_blocking -m 2 -k120 121echo "Kill injection (100%)"122inject_blocking -m 1 -k123 124echo "Sleep injection (1ms, 25%)"125inject_blocking -m 4 -s 1126 127echo "Sleep injection (1ms, 50%)"128inject_blocking -m 2 -s 1129 130echo "Sleep injection (1ms, 100%)"131inject_blocking -m 1 -s 1132