diff options
author | Fengguang Wu <fengguang.wu@intel.com> | 2014-02-01 17:15:37 +0800 |
---|---|---|
committer | Fengguang Wu <fengguang.wu@intel.com> | 2014-02-01 17:44:46 +0800 |
commit | 995d38905d3d7f07ebc7502fd590db577671b91b (patch) | |
tree | fd443a396db159ebfcb3a71fa954bd68d1cae332 | |
parent | bd137b8df4a673b7d65b47e8b1b1bbd211f55d87 (diff) | |
download | vm-scalability-995d38905d3d7f07ebc7502fd590db577671b91b.tar.gz |
introduce TMPFS_MNT to avoid pollute /tmp and /dev/shm
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
-rwxr-xr-x | case-000-shm | 6 | ||||
-rwxr-xr-x | case-000-shm-clean | 6 | ||||
-rwxr-xr-x | case-lru-file-readonce | 4 | ||||
-rwxr-xr-x | case-lru-file-readtwice | 6 | ||||
-rwxr-xr-x | hw_vars | 24 | ||||
-rwxr-xr-x | run | 8 | ||||
-rwxr-xr-x | run_cases | 2 |
7 files changed, 37 insertions, 19 deletions
diff --git a/case-000-shm b/case-000-shm index c746cc0..a3a24fd 100755 --- a/case-000-shm +++ b/case-000-shm @@ -4,8 +4,8 @@ source ./hw_vars -create_sparse_file /dev/shm/XXX $shm_size +create_sparse_file $TMPFS_MNT/XXX $shm_size -$USEMEM -f /dev/shm/XXX $((shm_size / 3)) --detach --sleep 100000 --pid-file $PIDFILE +$USEMEM -f $TMPFS_MNT/XXX $((shm_size / 3)) --detach --sleep 100000 --pid-file $PIDFILE -rm /dev/shm/XXX +rm $TMPFS_MNT/XXX diff --git a/case-000-shm-clean b/case-000-shm-clean index a23f60d..d47fd95 100755 --- a/case-000-shm-clean +++ b/case-000-shm-clean @@ -4,8 +4,8 @@ source ./hw_vars -create_sparse_file /dev/shm/XXX $shm_size +create_sparse_file $TMPFS_MNT/XXX $shm_size -$USEMEM -f /dev/shm/XXX $((shm_size / 3)) --readonly --detach --sleep 100000 --pid-file $PIDFILE +$USEMEM -f $TMPFS_MNT/XXX $((shm_size / 3)) --readonly --detach --sleep 100000 --pid-file $PIDFILE -rm /dev/shm/XXX +rm $TMPFS_MNT/XXX diff --git a/case-lru-file-readonce b/case-lru-file-readonce index 4e4dd34..74a0c4b 100755 --- a/case-lru-file-readonce +++ b/case-lru-file-readonce @@ -11,13 +11,13 @@ source ./hw_vars for i in `seq 1 $nr_cpu` do create_sparse_file $SPARSE_FILE-$i $((ROTATE_BYTES / nr_cpu)) - timeout --foreground -s INT ${runtime:-600} dd bs=4k if=$SPARSE_FILE-$i of=/dev/null > /tmp/dd-output-$i 2>&1 & + timeout --foreground -s INT ${runtime:-600} dd bs=4k if=$SPARSE_FILE-$i of=/dev/null > $TMPFS_MNT/dd-output-$i 2>&1 & done wait sleep 1 -for file in /tmp/dd-output-* +for file in $TMPFS_MNT/dd-output-* do [[ -s $file ]] || { echo "dd output file empty: $file" >&2 diff --git a/case-lru-file-readtwice b/case-lru-file-readtwice index 1eb6e5a..ecb1fcb 100755 --- a/case-lru-file-readtwice +++ b/case-lru-file-readtwice @@ -18,14 +18,14 @@ source ./hw_vars for i in `seq 1 $nr_cpu` do create_sparse_file $SPARSE_FILE-$i $((ROTATE_BYTES / nr_cpu)) - timeout --foreground -s INT ${runtime:-600} dd bs=4k if=$SPARSE_FILE-$i of=/dev/null > /tmp/dd-output-1-$i 2>&1 & - timeout --foreground -s INT ${runtime:-600} dd bs=4k if=$SPARSE_FILE-$i of=/dev/null > /tmp/dd-output-2-$i 2>&1 & + timeout --foreground -s INT ${runtime:-600} dd bs=4k if=$SPARSE_FILE-$i of=/dev/null > $TMPFS_MNT/dd-output-1-$i 2>&1 & + timeout --foreground -s INT ${runtime:-600} dd bs=4k if=$SPARSE_FILE-$i of=/dev/null > $TMPFS_MNT/dd-output-2-$i 2>&1 & done wait sleep 1 -for file in /tmp/dd-output-* +for file in $TMPFS_MNT/dd-output-* do [[ -s $file ]] || { echo "dd output file empty: $file" >&2 @@ -4,7 +4,8 @@ USEMEM="$CMD ./usemem --runtime $runtime" -SHM_FILE=/dev/shm/sparse-${0/.*case-/} +TMPFS_MNT=/tmp/vm-scalability-tmp +SHM_FILE=$TMPFS_MNT/sparse-${0/.*case-/} SPARSE_ROOT=/tmp/vm-scalability SPARSE_FILE=$SPARSE_ROOT/sparse-${0/.*case-/} @@ -14,6 +15,18 @@ SPARSE_FILE=$SPARSE_ROOT/sparse-${0/.*case-/} PIDFILE=$SPARSE_ROOT/${0/.*case-/}.pid +mount_tmpfs() +{ + if [[ -d $TMPFS_MNT ]]; then + mountpoint -q $TMPFS_MNT && umount $TMPFS_MNT + else + mkdir $TMPFS_MNT + fi + $CMD mount -t tmpfs -o size=0 vm-scalability-tmp $TMPFS_MNT + + shm_size=$(/usr/bin/stat -f -c "%b*%S" $TMPFS_MNT) + shm_size=$((shm_size)) +} # sparse files won't work as expected on tmpfs/nfs create_sparse_root () { @@ -32,13 +45,18 @@ create_sparse_root () { [[ -d $SPARSE_ROOT ]] || mkdir $SPARSE_ROOT # check if already mounted - if grep -qs "$SPARSE_ROOT" /proc/mounts;then + if mountpoint -q $SPARSE_ROOT; then echo "$SPARSE_ROOT already mounted" else $CMD mount -o loop $SPARSE_ROOT.img $SPARSE_ROOT fi } +remove_tmpfs() +{ + $CMD umount $TMPFS_MNT +} + remove_sparse_root () { $CMD umount $SPARSE_ROOT || { df @@ -83,8 +101,6 @@ while read key val unit; do done < /proc/meminfo mem=$((MemTotal << 10)) -shm_size=$(/usr/bin/stat -f -c "%b*%S" /dev/shm/) -shm_size=$((shm_size)) hugepagesize=$((Hugepagesize << 10)) ROTATE_BYTES=$((1<<42)) @@ -100,8 +100,7 @@ echo $((1<<20)) > /proc/sys/kernel/threads-max echo 1 > /proc/sys/vm/overcommit_memory echo 3 > /proc/sys/vm/drop_caches -mount -o remount,size=0 /dev/shm - +mount_tmpfs create_sparse_root for testcase in $TEST_CASES @@ -117,12 +116,13 @@ do # run again to collect perf stats perf stat -a -e $perf_events -o $OUT_DIR/$testcase/perf-stat ./$testcase - perf record -afg -o /dev/shm/perf.data ./$testcase 2>/dev/null || continue - perf report -g fractal,5 -i /dev/shm/perf.data 2>/dev/null > $OUT_DIR/$testcase/perf-report + perf record -afg -o $TMPFS_MNT/perf.data ./$testcase 2>/dev/null || continue + perf report -g fractal,5 -i $TMPFS_MNT/perf.data 2>/dev/null > $OUT_DIR/$testcase/perf-report done ./elapsed-time $OUT_DIR +remove_tmpfs remove_sparse_root ################################################################################ @@ -17,6 +17,7 @@ reset_stats source ./hw_vars +mount_tmpfs create_sparse_root TEST_CASES=${@:-$(echo case-*)} @@ -29,4 +30,5 @@ do echo 3 > /proc/sys/vm/drop_caches # drop caches after each case is done. done +remove_tmpfs remove_sparse_root |