DF-2918 / race.sh
#!/bin/sh # DF-2918 race driver - runs ON THE GUEST as root. # # MODE=control : mounters + readers only, NO kldloop (module stays loaded). # MODE=race : everything, kldloop churns fuse.ko. # # usage: MODE=race sh /root/race.sh [n_mounters] [duration_sec] N=${1:-16} DUR=${2:-600} MODE=${MODE:-race} rm -f /root/race.log /tmp/mloop.* /tmp/kld.out /tmp/sloop.* pids="" i=0 while [ $i -lt $N ]; do /root/mountloop /home/poc/mnt fuse > /tmp/mloop.$i 2>&1 & pids="$pids $!" i=$((i+1)) done su -m poc -c /home/poc/sysctlloop > /tmp/sloop.0 2>&1 & pids="$pids $!" su -m poc -c /home/poc/sysctlloop > /tmp/sloop.1 2>&1 & pids="$pids $!" if [ "$MODE" = race ]; then /root/kldloop ${GAP:-10000} > /tmp/kld.out 2>&1 & kpid=$! else kpid=0 fi echo "mode=$MODE mounters+readers:$pids kldloop:$kpid started $(date)" > /root/race.log sleep $DUR kill $pids $kpid 2>/dev/null sleep 1 echo "=== survived $DUR seconds ===" >> /root/race.log i=0 while [ $i -lt $N ]; do echo "-- mloop.$i:" >> /root/race.log tail -1 /tmp/mloop.$i >> /root/race.log 2>/dev/null i=$((i+1)) done echo "-- sloop.0:" >> /root/race.log tail -1 /tmp/sloop.0 >> /root/race.log 2>/dev/null if [ "$MODE" = race ]; then echo "-- kldloop:" >> /root/race.log grep -vc "Exec format" /tmp/kld.out >> /root/race.log 2>/dev/null tail -2 /tmp/kld.out >> /root/race.log 2>/dev/null fi echo done >> /root/race.log |