aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFengguang Wu <fengguang.wu@intel.com>2014-02-01 17:15:37 +0800
committerFengguang Wu <fengguang.wu@intel.com>2014-02-01 17:44:46 +0800
commit995d38905d3d7f07ebc7502fd590db577671b91b (patch)
treefd443a396db159ebfcb3a71fa954bd68d1cae332
parentbd137b8df4a673b7d65b47e8b1b1bbd211f55d87 (diff)
downloadvm-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-xcase-000-shm6
-rwxr-xr-xcase-000-shm-clean6
-rwxr-xr-xcase-lru-file-readonce4
-rwxr-xr-xcase-lru-file-readtwice6
-rwxr-xr-xhw_vars24
-rwxr-xr-xrun8
-rwxr-xr-xrun_cases2
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
diff --git a/hw_vars b/hw_vars
index 9708511..8ca6177 100755
--- a/hw_vars
+++ b/hw_vars
@@ -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))
diff --git a/run b/run
index e1aeab5..0b25d1d 100755
--- a/run
+++ b/run
@@ -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
################################################################################
diff --git a/run_cases b/run_cases
index 716779d..67ce630 100755
--- a/run_cases
+++ b/run_cases
@@ -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