248 lines
5.6 KiB
Bash
Executable File
248 lines
5.6 KiB
Bash
Executable File
#!/usr/bin/bash
|
|
|
|
. ${HOME}/.mck_test_config
|
|
|
|
testname=$1
|
|
bootopt="-m 256M"
|
|
mcexecopt=""
|
|
testopt=""
|
|
kill="n"
|
|
dryrun="n"
|
|
sleepopt="0.4"
|
|
sudo=
|
|
|
|
echo Executing ${testname}
|
|
|
|
case ${testname} in
|
|
011 | 012)
|
|
printf "*** Enable debug messages in rusage.h, memory.c, fileobj.c, shmobj.c, process.c by defining DEBUG macro, e.g. #define RUSAGE_DEBUG and then recompile IHK/McKernel.\n"
|
|
printf "*** Install xpmem by git-clone https://github.com/hjelmn/xpmem.\n"
|
|
;;
|
|
100 | 101 | 102 | 103)
|
|
printf "*** Refer to rusage100.patch to add syscall #900 by editing syscall_list.h and syscall.c and recompile IHK/McKernel.\n"
|
|
;;
|
|
200)
|
|
printf "*** Apply rusage200.patch to enable syscall #900"
|
|
printf "which reports rusage values.\n"
|
|
;;
|
|
*)
|
|
printf "*** Enable debug messages in rusage.h, memory.c, fileobj.c, shmobj.c, process.c by defining DEBUG macro, e.g. #define RUSAGE_DEBUG and then recompile IHK/McKernel.\n"
|
|
;;
|
|
esac
|
|
|
|
read -p "*** Hit return when ready!" key
|
|
|
|
case ${testname} in
|
|
005)
|
|
ssh wallaby -c '(cd ${HOME}/project/src/rusage/verbs; make rdma_wr)'
|
|
bn_mck=verbs/rdma_wr
|
|
;;
|
|
019)
|
|
#ssh wallaby -c '(cd ${HOME}/project/src/rusage/npb/NPB3.3.1-MZ/NPB3.3-MZ-MPI; make bt-mz CLASS=S NPROCS=2)'
|
|
bn_mck=npb/NPB3.3.1-MZ/NPB3.3-MZ-MPI/bin/bt-mz.S.2
|
|
perl -e 'print "wallaby14\nwallaby15\n"' > ./hostfile
|
|
;;
|
|
021)
|
|
if ! grep /var/log/local6 /etc/rsyslog.conf &>/dev/null; then
|
|
echo "Insert a line of local6.* /var/log/local6 into /etc/rsyslog.conf"
|
|
exit 255
|
|
fi
|
|
ssh wallaby bash -c '(cd ${HOME}/project/src/rusage/npb/NPB3.3.1-MZ/NPB3.3-MZ-MPI; make bt-mz CLASS=S NPROCS=4)'
|
|
bn_mck=npb/NPB3.3.1-MZ/NPB3.3-MZ-MPI/bin/bt-mz.S.4
|
|
perl -e 'print "polaris:2\nkochab:2\n"' > ./hostfile
|
|
;;
|
|
200)
|
|
bn_mck=${testname}_mck
|
|
bn_lin=${testname}_lin
|
|
make clean > /dev/null 2> /dev/null
|
|
make $bn_mck $bn_lin
|
|
;;
|
|
*)
|
|
bn_mck=${testname}_mck
|
|
make clean > /dev/null 2> /dev/null
|
|
make $bn_mck
|
|
esac
|
|
|
|
pid=`pidof mcexec`
|
|
if [ "${pid}" != "" ]; then
|
|
kill -9 ${pid} > /dev/null 2> /dev/null
|
|
fi
|
|
|
|
case ${testname} in
|
|
000)
|
|
testopt="0"
|
|
;;
|
|
010)
|
|
testopt="1"
|
|
;;
|
|
020)
|
|
bootopt="-m 256M@0,1G@0"
|
|
testopt="2"
|
|
kill="y"
|
|
;;
|
|
030)
|
|
testopt="3"
|
|
;;
|
|
001)
|
|
cp $bn_mck ./file
|
|
kill="n"
|
|
;;
|
|
002)
|
|
mcexecopt="--mpol-shm-premap"
|
|
;;
|
|
003)
|
|
;;
|
|
004)
|
|
cp $bn_mck ./file
|
|
;;
|
|
005)
|
|
echo ssh wallaby15 ${HOME}/project/src/verbs/rdma_wr -p 10000&
|
|
read -p "Run rdma_wr on wallaby15 and enter the port number." port
|
|
testopt="-s wallaby15 -p ${port}"
|
|
;;
|
|
006)
|
|
mcexecopt="--mpol-shm-premap"
|
|
;;
|
|
007)
|
|
;;
|
|
008)
|
|
cp $bn_mck ./file
|
|
;;
|
|
009)
|
|
;;
|
|
011)
|
|
sudo insmod /home/takagi/usr/lib/module/xpmem.ko
|
|
sudo chmod og+rw /dev/xpmem
|
|
dryrun="n"
|
|
kill="n"
|
|
sleepopt="5"
|
|
;;
|
|
012)
|
|
sudo insmod /home/takagi/usr/lib/module/xpmem.ko
|
|
sudo chmod og+rw /dev/xpmem
|
|
dryrun="n"
|
|
kill="n"
|
|
sleepopt="5"
|
|
;;
|
|
013 | 014 | 015 | 017)
|
|
cp $bn_mck ./file
|
|
;;
|
|
016)
|
|
;;
|
|
018)
|
|
;;
|
|
019 | 021)
|
|
bootopt="-k 1 -m 256M"
|
|
;;
|
|
100)
|
|
;;
|
|
101)
|
|
;;
|
|
102)
|
|
cp $bn_lin ./file
|
|
;;
|
|
103)
|
|
bootopt="-m 256M@1"
|
|
;;
|
|
200)
|
|
bootopt="-c 1,2,3 -m 256M"
|
|
;;
|
|
300)
|
|
bootopt="-c 1,2,3 -m 256M"
|
|
sudo="sudo"
|
|
;;
|
|
*)
|
|
echo Unknown test case
|
|
exit 255
|
|
esac
|
|
|
|
if [ ${dryrun} == "y" ]; then
|
|
exit
|
|
fi
|
|
|
|
case ${testname} in
|
|
019 | 021)
|
|
sudo rm /var/log/local6
|
|
sudo touch /var/log/local6
|
|
sudo chmod 600 /var/log/local6
|
|
sudo systemctl restart rsyslog
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
case ${testname} in
|
|
019 | 021)
|
|
echo sudo ssh wallaby15 ${MCK_DIR}/sbin/mcstop+release.sh &&
|
|
echo sudo ssh wallaby15 ${MCK_DIR}/sbin/mcreboot.sh
|
|
read -p "Boot mckernel on wallaby15." ans
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
sudo ${MCK_DIR}/sbin/mcstop+release.sh &&
|
|
sudo ${MCK_DIR}/sbin/mcreboot.sh ${bootopt}
|
|
|
|
if [ ${kill} == "y" ]; then
|
|
${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn} ${testopt} &
|
|
sleep ${sleepopt}
|
|
sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg > ./${testname}.log
|
|
pid=`pidof mcexec`
|
|
if [ "${pid}" != "" ]; then
|
|
kill -9 ${pid} > /dev/null 2> /dev/null
|
|
fi
|
|
else
|
|
case ${testname} in
|
|
005)
|
|
${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn_mck} ${testopt}
|
|
#read -p "Run rdma_wr." ans
|
|
sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg > ./${testname}.log
|
|
;;
|
|
019 | 021)
|
|
echo OMP_NUM_THREADS=2 mpiexec -machinefile ./hostfile ${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn_mck} ${testopt}
|
|
read -p "Run ${bn_mck} and hit return." ans
|
|
sleep 1.5
|
|
sudo cat /var/log/local6 > ./${testname}.log
|
|
;;
|
|
100 | 101 | 102 | 103)
|
|
${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn_mck} ${testopt} > ./${testname}.log
|
|
echo "================================================" >> ./${testname}.log
|
|
sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg >> ./${testname}.log
|
|
;;
|
|
200)
|
|
${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn_mck}
|
|
${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn_lin}
|
|
sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg > ./${testname}.log
|
|
grep user ./${testname}.log
|
|
;;
|
|
*)
|
|
${sudo} ${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn_mck} ${testopt}
|
|
sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg > ./${testname}.log
|
|
esac
|
|
fi
|
|
|
|
|
|
case ${testname} in
|
|
011 | 012)
|
|
sudo rmmod xpmem
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
case ${testname} in
|
|
100 | 101 | 102 | 103)
|
|
printf "*** Check the ihk_os_getrusage() result (the first part of ${testname}.log) matches with the syscall #900 result (the second part) \n"
|
|
;;
|
|
200)
|
|
printf "*** It behaves as expected when there's no [NG] and "
|
|
printf "\"All tests finished\" is shown\n"
|
|
;;
|
|
*)
|
|
printf "*** ./match.pl ${testname}.log (kmsg) to confirm all adds have the matching subs.\n"
|
|
printf "*** Look at ${testname}.log (kmsg) to confirm memory_stat_*[*] returned to zero when the last thread exits.\n"
|
|
;;
|
|
esac
|
|
|
|
sudo ${MCK_DIR}/sbin/mcstop+release.sh
|