From cf857cdcac8b3bbe861777e1fb113fdacf255562 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Wed, 13 Apr 2011 16:06:41 +0000 Subject: [PATCH] scripts/blockdev-perftest: works now on RHEL 5 / switched from sync to psync (merged r2394 and 2741 from trunk). git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/2.0.0.x@3381 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scripts/blockdev-perftest | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/scripts/blockdev-perftest b/scripts/blockdev-perftest index 27a3460ae..3d099f493 100755 --- a/scripts/blockdev-perftest +++ b/scripts/blockdev-perftest @@ -73,6 +73,9 @@ drop_caches() { # provided. set_frequency_scaling() { local syscpu=/sys/devices/system/cpu + if [ ! -e $syscpu/cpufreq ]; then + return + fi local governor=$(<$syscpu/cpu0/cpufreq/scaling_governor) local cpuinfo_min_freq=$(<$syscpu/cpu0/cpufreq/cpuinfo_min_freq) local cpuinfo_max_freq=$(<$syscpu/cpu0/cpufreq/cpuinfo_max_freq) @@ -104,7 +107,7 @@ time_write() { else fio_flags="--direct=0 --end_fsync=1" fi - fio --rw=write --filename="${device}" --bs=$1 --size=$(($1*$2)) --ioengine=sync --end_fsync=1 --invalidate=1 ${fio_flags} --name=writeperftest \ + fio --rw=write --filename="${device}" --bs=$1 --size=$(($1*$2)) --ioengine=psync --end_fsync=1 --invalidate=1 ${fio_flags} --name=writeperftest \ | sed -n 's/.*runt= *\([0-9]*\)msec.*/\1/p' \ | awk '{print $1/1000}' else @@ -115,7 +118,7 @@ time_write() { dd_oflags="" fi { dd if=/dev/zero of="${device}" bs=$1 count=$2 ${dd_oflags} 2>&1; sync; } \ - | sed -n -e 's/.* \([0-9.]*\) s,.*/\1/p' | sed 's/^$/0/' + | sed -n -e 's/.* \([0-9.]*\) s[econds]*,.*/\1/p' | sed 's/^$/0/' fi } @@ -126,7 +129,7 @@ time_read() { else fio_flags="--direct=0" fi - fio --rw=read --filename="${device}" --bs=$1 --size=$(($1*$2)) --ioengine=sync --end_fsync=1 --invalidate=1 ${fio_flags} --name=readperftest \ + fio --rw=read --filename="${device}" --bs=$1 --size=$(($1*$2)) --ioengine=psync --end_fsync=1 --invalidate=1 ${fio_flags} --name=readperftest \ | sed -n 's/.*runt= *\([0-9]*\)msec.*/\1/p' \ | awk '{print $1/1000}' else @@ -137,7 +140,7 @@ time_read() { dd_iflags="" fi dd if="${device}" of=/dev/null bs=$1 count=$2 ${dd_iflags} 2>&1 \ - | sed -n -e 's/.* \([0-9.]*\) s,.*/\1/p' | sed 's/^$/0/' + | sed -n -e 's/.* \([0-9.]*\) s[econds]*,.*/\1/p' | sed 's/^$/0/' fi } @@ -230,13 +233,15 @@ if ! can_drop_cache; then fi # Disable frequency scaling -if [ -w /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then - frequency_scaling_params="$(set_frequency_scaling)" -else - echo "" - echo "WARNING: insufficient privileges to disable CPU frequency scaling" - echo "-- results will be unreliable." - echo "" +if [ -e /sys/devices/system/cpu/cpu0/cpufreq ]; then + if [ -w /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then + frequency_scaling_params="$(set_frequency_scaling)" + else + echo "" + echo "WARNING: insufficient privileges to disable CPU frequency scaling" + echo "-- results will be unreliable." + echo "" + fi fi # Header, line 1