From 6fdb226c0c56ce9788c06d003f5f9ad15b21eb5b Mon Sep 17 00:00:00 2001
From: zab <zab>
Date: Tue, 10 Feb 2004 22:25:15 +0000
Subject: [PATCH] - record 'readprofile' profiles if they are available -
 record all the test commands that are run

---
 lustre/scripts/bdev-io-survey.sh | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/lustre/scripts/bdev-io-survey.sh b/lustre/scripts/bdev-io-survey.sh
index cea3066b14..d9355a0bfc 100755
--- a/lustre/scripts/bdev-io-survey.sh
+++ b/lustre/scripts/bdev-io-survey.sh
@@ -22,6 +22,9 @@ declare -a cleanup_mounts
 cur_y="0"
 # a global which funcs use to get at the blocks[] array
 last_block=-1
+# prefix to run oprofile or readprofile
+oprofile=""
+readprofile=""
 
 # defaults for some options:
 min_threads=1
@@ -598,11 +601,13 @@ test_one() {
 	done
 
 	$oprofile opcontrol --reset
+	$readprofile -r
 
 	# start all the tests.  each returns a pid to wait on
 	pids=""
 	for i in `seq 0 $last_block`; do
 		local cmd=`${test}_start $threads $iosize $wor $i`
+		echo "$cmd" >> $tmpdir/commands
 		$cmd > $tmpdir/$i 2>&1 &
 		local pid=$!
 		pids="$pids $pid"
@@ -628,11 +633,15 @@ test_one() {
 		pid_has_stopped $pid
 	done
 
+	$readprofile | sort -rn > $tmpdir/readprofile
+
 	$oprofile opcontrol --shutdown
 	$oprofile opreport > $tmpdir/oprofile
 	echo >> $tmpdir/oprofile
 	$oprofile opreport -c -l | head -20 >> $tmpdir/oprofile
+
 	save_output $tmpdir/oprofile $opref.oprofile
+	save_output $tmpdir/readprofile $opref.readprofile
 
 	# collect the results of vmstat and iostat
 	cpu=$(mean_stddev $(awk \
@@ -792,6 +801,18 @@ else
         oprofile=": "
 fi
 
+if which readprofile; then
+	map="/boot/System.map-`uname -r`"
+	if [ -f /proc/profile -a -f "$map" ]; then
+		echo generating profiles with 'readprofile'
+		readprofile="readprofile -m $map"
+	fi
+fi
+if [ -z "$readprofile" ]; then
+	echo not using readprofile
+	readprofile=": "
+fi
+
 [ $min_threads -gt $max_threads ] && \
 	die "min threads $min_threads must be <= min_threads $min_threads"
 
@@ -832,6 +853,8 @@ for t in $run_tests; do
 	test_results="$test_results $t"
 done
 
+save_output $tmpdir/commands commands
+
 [ ! -z "$test_results" ] && (
 	echo
 	echo "T = number of concurrent threads per device"
-- 
GitLab