You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.4 KiB
71 lines
1.4 KiB
#!/bin/bash
|
|
|
|
MNT=/mnt/f2fs
|
|
DEV=/dev/sdb1
|
|
USER_DIR=/home/zeus
|
|
F2FS_DIR=$USER_DIR/f2fs_test
|
|
|
|
check_stop() {
|
|
stop=`cat /tmp/stop`
|
|
if [ $stop -eq 1 ]; then
|
|
exit
|
|
fi
|
|
}
|
|
|
|
case $1 in
|
|
start)
|
|
echo 0 > /tmp/stop
|
|
umount /mnt/*
|
|
echo 3 > /proc/sys/vm/drop_caches
|
|
echo 8 > /proc/sys/kernel/printk
|
|
|
|
date >> $USER_DIR/por_result
|
|
sync
|
|
|
|
insmod $F2FS_DIR/src/fs/f2fs/f2fs.ko || exit
|
|
|
|
echo Start checking F2FS without fsync
|
|
check_stop
|
|
fsck.f2fs $DEV -d 0 || exit
|
|
mount -t f2fs -o disable_roll_forward $DEV $MNT || exit
|
|
umount $MNT
|
|
echo 3 > /proc/sys/vm/drop_caches
|
|
|
|
echo Start checking F2FS with fsync
|
|
check_stop
|
|
fsck.f2fs $DEV -d 0 || exit
|
|
mount -t f2fs $DEV $MNT || exit
|
|
umount $MNT
|
|
|
|
check_stop
|
|
fsck.f2fs $DEV -d 0 || exit
|
|
mount -t f2fs $DEV $MNT || exit
|
|
|
|
count=`cat $USER_DIR/por_time`
|
|
if [ $count -eq 20 ]; then
|
|
echo Start rm all
|
|
time rm -rf $MNT/* || exit
|
|
echo 0 > $USER_DIR/por_time
|
|
sync
|
|
else
|
|
echo $((count+1)) > $USER_DIR/por_time
|
|
fi
|
|
echo 8 > /proc/sys/kernel/printk
|
|
echo Start fsstress
|
|
date
|
|
$F2FS_DIR/stress_test/fsstress/fsstress -z -f link=0 -f mkdir=3 -f mknod=3 -f rmdir=2 -f symlink=3 -f truncate=4 -f write=10 -f creat=10 -f unlink=5 -f rename=5 -f fsync=10 -p 10 -n 10000 -l 0 -d $MNT &
|
|
RANDOM=`date '+%s'`
|
|
rand=$[($RANDOM % 540) + 60]
|
|
echo Start sleep: $rand seconds
|
|
sleep $rand
|
|
|
|
echo Reboot now
|
|
check_stop
|
|
echo b > /proc/sysrq-trigger
|
|
;;
|
|
stop)
|
|
killall -9 fsstress
|
|
echo 1 > /tmp/stop
|
|
;;
|
|
esac
|