#!/bin/sh
function usage {
echo "Usage"
echo "$0 [-l] [-h] <#-of-users> nodename [test match pattern]"
echo "-l : disable libinfo L1 cache"
echo "-h : Help. This option displays information on how to run the script. "
echo "[test match pattern] : This option runs only the test that is specified"
echo
echo "You must have set up users, groups, and SACLs with od_account_create"
echo "with the same number of user accounts."
echo "Supply a pattern to match to run a subset of tests"
exit 1
}
L1CACHE="1"
while getopts "lh" OPT_LIST
do
case $OPT_LIST in
l) L1CACHE="0";; h) usage;;
*) usage;;
esac
done
shift `expr $OPTIND - 1`
if [ $ usage
fi
tattle="./tattle"
bench_version=0.4.0
libmicro_version=`$tattle -V`
case $libmicro_version in
$bench_version)
;;
*)
echo "ERROR: libMicro version doesn't match 'bench' script version"
exit 1
esac
TMPROOT=/private/tmp/libmicro.$$
VARROOT=/private/var/tmp/libmicro.$$
mkdir -p $TMPROOT
mkdir -p $VARROOT
trap "rm -rf $TMPROOT $VARROOT && exit" 0 2
TFILE=$TMPROOT/data
IFILE=$TMPROOT/ifile
TDIR1=$TMPROOT/0/1/2/3/4/5/6/7/8/9
TDIR2=$TMPROOT/1/2/3/4/5/6/7/8/9/0
VFILE=$VARROOT/data
VDIR1=$VARROOT/0/1/2/3/4/5/6/7/8/9
VDIR2=$VARROOT/1/2/3/4/5/6/7/8/9/0
OPTS="-E -C 200 -L -S -W"
dd if=/dev/zero of=$TFILE bs=1024k count=10 2>/dev/null
dd if=/dev/zero of=$VFILE bs=1024k count=10 2>/dev/null
mkdir -p $TDIR1 $TDIR2
mkdir -p $VDIR1 $VDIR2
touch $IFILE
/usr/bin/touch /private/var/tmp/lmbench
hostname=`uname -n`
if [ -f /usr/sbin/psrinfo ]; then
p_count=`psrinfo|wc -l`
p_mhz=`psrinfo -v | awk '/operates/{print $6 "MHz"; exit }'`
p_type=`psrinfo -vp 2>/dev/null | awk '{if (NR == 3) {print $0; exit}}'`
p_ipaddr=`getent hosts $hostname | awk '{print $1}'`
fi
if [ -f /proc/cpuinfo ]; then
p_count=`egrep processor /proc/cpuinfo | wc -l`
p_mhz=`awk -F: '/cpu MHz/{printf("%5.0f00Mhz\n",$2/100); exit}' /proc/cpuinfo`
p_type=`awk -F: '/model name/{print $2; exit}' /proc/cpuinfo`
p_ipaddr=`getent hosts $hostname | awk '{print $1}'`
else
p_count=`sysctl -n hw.physicalcpu`
p_mhz=`sysctl -n hw.cpufrequency`
p_type=`sysctl -n hw.model`
if [ -x /usr/sbin/system_profiler ]; then
p_mhz=`system_profiler -xml -detailLevel mini SPHardwareDataType | \
grep -A1 current_processor_speed | grep string | \
sed -E 's/<string>(.+)<\/string>/\1/' | sed 's- --g'`
p_type=`system_profiler -xml -detailLevel mini SPHardwareDataType | \
grep -A1 cpu_type | grep string | \
sed -E 's/<string>(.+)<\/string>/\1/' | sed 's- --g'`
fi
p_ipaddr=`ipconfig getpacket en0 | grep yiaddr | tr "= " "\n" | grep [0-9]`
if [ ! $p_ipaddr ]; then
p_ipaddr=`ipconfig getpacket en1 | grep yiaddr | tr "= " "\n" | grep [0-9]`
elif [ ! $p_ipaddr ]; then
p_ipaddr="unknown"
fi
fi
printf "\n\n!Libmicro_#: %30s\n" $libmicro_version
printf "!Options: %30s\n" "$OPTS"
printf "!Machine_name: %30s\n" "$hostname"
printf "!OS_name: %30s\n" `uname -s`
printf "!OS_release: %30s\n" `sw_vers -productVersion`
printf "!OS_build: %30.18s\n" "`sw_vers -buildVersion`"
printf "!Processor: %30s\n" `arch`
printf "!#CPUs: %30s\n" $p_count
printf "!CPU_MHz: %30s\n" "$p_mhz"
printf "!CPU_NAME: %30s\n" "$p_type"
printf "!IP_address: %30s\n" "$p_ipaddr"
printf "!Run_by: %30s\n" $LOGNAME
printf "!Date: %30s\n" "`date '+%D %R'`"
printf "!Compiler: %30s\n" `$tattle -c`
printf "!Compiler Ver.:%30s\n" "`$tattle -v`"
printf "!sizeof(long): %30s\n" `$tattle -s`
printf "!extra_CFLAGS: %30s\n" "`$tattle -f`"
printf "!TimerRes: %30s\n\n\n" "`$tattle -r`"
bin_dir="$TMPROOT/bin"
mkdir -p $bin_dir
cp bin-*/exec_bin $bin_dir/$A
cp ./apple/bin-*/posix_spawn_bin $bin_dir/$A
newline=0
NUSERS=$1
NODENAME=$2
UID_BASE=5000
UID_END=`expr $UID_BASE + $NUSERS - 1`
USER_PREFIX=od_test_
GID_ALL_USERS=1211
GID_NO_USERS=1212
GROUP_BASE=od_test_group
HOST_BASE=sfs0
HOST_RANGE=1-8
while read A B
do
case $A in
\ echo "$A $B"
newline=1
continue
;;
"")
if [ $newline -eq 1 ]
then
newline=0
echo
echo
fi
continue
;;
*$3*)
;;
*)
continue
;;
esac
if [ ! -f $bin_dir/$A ]
then
cp bin-*/$A $bin_dir/$A
fi
echo
(cd $TMPROOT && eval "bin/$A $B")
echo
echo
done <<.
mbr_check_service_membership $OPTS -N "mbr_check_service_membership" -s libMicro -u ${USER_PREFIX} -r ${NUSERS}
mbr_check_service_membership $OPTS -N "mbr_check_service_membership_t2" -T 2 -s libMicro -u ${USER_PREFIX} -r ${NUSERS}
mbr_check_service_membership $OPTS -N "mbr_check_service_membership_t4" -T 4 -s libMicro -u ${USER_PREFIX} -r ${NUSERS}
mbr_check_service_membership $OPTS -N "mbr_check_service_membership_p2" -P 2 -s libMicro -u ${USER_PREFIX} -r ${NUSERS}
mbr_check_service_membership $OPTS -N "mbr_check_service_membership_p4" -P 4 -s libMicro -u ${USER_PREFIX} -r ${NUSERS}
getpwnam $OPTS -N "getpwnam" -l ${L1CACHE} -r ${NUSERS} -u ${USER_PREFIX}
getpwnam $OPTS -N "getpwnam_t2" -T 2 -l ${L1CACHE} -r ${NUSERS} -u ${USER_PREFIX}
getpwnam $OPTS -N "getpwnam_p2" -P 2 -l ${L1CACHE} -r ${NUSERS} -u ${USER_PREFIX}
mbr_check_membership $OPTS -N "mbr_check_membership" -u ${UID_BASE}-${UID_END} -g ${GID_ALL_USERS}-${GID_NO_USERS}
mbr_check_membership $OPTS -N "mbr_check_membership_t2" -u ${UID_BASE}-${UID_END} -g ${GID_ALL_USERS}-${GID_NO_USERS} -T 2
mbr_check_membership $OPTS -N "mbr_check_membership_t4" -u ${UID_BASE}-${UID_END} -g ${GID_ALL_USERS}-${GID_NO_USERS} -T 4
mbr_check_membership $OPTS -N "mbr_check_membership_p2" -u ${UID_BASE}-${UID_END} -g ${GID_ALL_USERS}-${GID_NO_USERS} -P 2
mbr_check_membership $OPTS -N "mbr_check_membership_p4" -u ${UID_BASE}-${UID_END} -g ${GID_ALL_USERS}-${GID_NO_USERS} -P 4
getpwuid $OPTS -N "getpwuid" -l ${L1CACHE} -u ${UID_BASE}-${UID_END}
getpwuid $OPTS -N "getpwuid_t2" -l ${L1CACHE} -u ${UID_BASE}-${UID_END} -T 2
getpwuid $OPTS -N "getpwuid_t4" -l ${L1CACHE} -u ${UID_BASE}-${UID_END} -T 4
getpwuid $OPTS -N "getpwuid_p2" -l ${L1CACHE} -u ${UID_BASE}-${UID_END} -P 2
getpwuid $OPTS -N "getpwuid_p4" -l ${L1CACHE} -u ${UID_BASE}-${UID_END} -P 4
getgrgid $OPTS -N "getgrgid" -l ${L1CACHE} -g ${GID_ALL_USERS}-${GID_NO_USERS}
getgrgid $OPTS -N "getgrgid_t2" -l ${L1CACHE} -g ${GID_ALL_USERS}-${GID_NO_USERS} -T 2
getgrgid $OPTS -N "getgrgid_t4" -l ${L1CACHE} -g ${GID_ALL_USERS}-${GID_NO_USERS} -T 4
getgrgid $OPTS -N "getgrgid_p2" -l ${L1CACHE} -g ${GID_ALL_USERS}-${GID_NO_USERS} -P 2
getgrgid $OPTS -N "getgrgid_p4" -l ${L1CACHE} -g ${GID_ALL_USERS}-${GID_NO_USERS} -P 4
getpwent $OPTS -N "getpwent" -l ${L1CACHE}
getpwent $OPTS -N "getpwent_t2" -l ${L1CACHE} -T 2
getpwent $OPTS -N "getpwent_t4" -l ${L1CACHE} -T 4
getpwent $OPTS -N "getpwent_p2" -l ${L1CACHE} -P 2
getpwent $OPTS -N "getpwent_p4" -l ${L1CACHE} -P 4
getgrent $OPTS -N "getgrent" -l ${L1CACHE}
getgrent $OPTS -N "getgrent_t2" -l ${L1CACHE} -T 2
getgrent $OPTS -N "getgrent_t4" -l ${L1CACHE} -T 4
getgrent $OPTS -N "getgrent_p2" -l ${L1CACHE} -P 2
getgrent $OPTS -N "getgrent_p4" -l ${L1CACHE} -P 4
getaddrinfo_port $OPTS -N "getaddrinfo_port" -l ${L1CACHE}
getaddrinfo_port $OPTS -N "getaddrinfo_port_t2" -l ${L1CACHE} -T 2
getaddrinfo_port $OPTS -N "getaddrinfo_port_t4" -l ${L1CACHE} -T 4
getaddrinfo_port $OPTS -N "getaddrinfo_port_p2" -l ${L1CACHE} -P 2
getaddrinfo_port $OPTS -N "getaddrinfo_port_p4" -l ${L1CACHE} -P 4
getgrnam $OPTS -N "getgrnam" -l ${L1CACHE} -g ${GROUP_BASE} -r 2
getgrnam $OPTS -N "getgrnam_t2" -l ${L1CACHE} -T 2 -g ${GROUP_BASE} -r 2
getgrnam $OPTS -N "getgrnam_t4" -l ${L1CACHE} -T 4 -g ${GROUP_BASE} -r 2
getgrnam $OPTS -N "getgrnam_p2" -l ${L1CACHE} -P 2 -g ${GROUP_BASE} -r 2
getgrnam $OPTS -N "getgrnam_p4" -l ${L1CACHE} -P 4 -g ${GROUP_BASE} -r 2
od_query_create_with_node $OPTS -N "ODQueryCreateWithNode_cache_${NUSERS}u" -c 50 -r ${NUSERS} -t u -B 50 -n ${NODENAME}
od_query_create_with_node $OPTS -N "ODQueryCreateWithNode_cache_${NUSERS}u_t2" -T 2 -c 50 -r ${NUSERS} -t u -B 50 -n ${NODENAME}
od_query_create_with_node $OPTS -N "ODQueryCreateWithNode_cache_${NUSERS}u_t4" -T 4 -c 50 -r ${NUSERS} -t u -B 50 -n ${NODENAME}
od_query_create_with_node $OPTS -N "ODQueryCreateWithNode_cache_${NUSERS}u_p2" -P 2 -c 50 -r ${NUSERS} -t u -B 50 -n ${NODENAME}
od_query_create_with_node $OPTS -N "ODQueryCreateWithNode_cache_${NUSERS}u_p4" -P 4 -c 50 -r ${NUSERS} -t u -B 50 -n ${NODENAME}
.