1#!/bin/sh 2# 3# 4# CDDL HEADER START 5# 6# The contents of this file are subject to the terms 7# of the Common Development and Distribution License 8# (the "License"). You may not use this file except 9# in compliance with the License. 10# 11# You can obtain a copy of the license at 12# src/OPENSOLARIS.LICENSE 13# or http://www.opensolaris.org/os/licensing. 14# See the License for the specific language governing 15# permissions and limitations under the License. 16# 17# When distributing Covered Code, include this CDDL 18# HEADER in each file and include the License file at 19# usr/src/OPENSOLARIS.LICENSE. If applicable, 20# add the following below this CDDL HEADER, with the 21# fields enclosed by brackets "[]" replaced with your 22# own identifying information: Portions Copyright [yyyy] 23# [name of copyright owner] 24# 25# CDDL HEADER END 26# 27 28# 29# Copyright 2007 Sun Microsystems, Inc. All rights reserved. 30# Use is subject to license terms. 31# 32 33 34# usage function - defines all the options that can be given to this script. 35function usage { 36 echo "Usage" 37 echo "$0 [-l] [-h] [name of test]" 38 echo "-l : This option runs the lmbench tests along with the default libmicro tests." 39 echo "-h : Help. This option displays information on how to run the script. " 40 echo "[name of test] : This option runs only the test that is specified" 41 echo "" 42 echo "Examples" 43 echo "$0 : This is the defualt execution. This will run only the default libmicro tests." 44 echo "$0 -l : This will run the lmbench tests too " 45 echo "$0 getppid : This will run only the getppid tests" 46 exit 47 48} 49 50if [ $# -eq 1 ] 51then 52 lmbench=2 # to check if only a single test is to be run. e.g, ./bench.sh getppid 53else 54 lmbench=0 # to run the default libMicro tests, without the lmbench tests. 55fi 56 57while getopts "lh" OPT_LIST 58do 59 case $OPT_LIST in 60 l) lmbench=1;; # to run the libmicro tests including the lmbench tests. 61 h) usage;; 62 *) usage;; 63 esac 64done 65 66 67 68tattle="./tattle" 69 70bench_version=0.4.0 71libmicro_version=`$tattle -V` 72 73case $libmicro_version in 74$bench_version) 75 ;; 76*) 77 echo "ERROR: libMicro version doesn't match 'bench' script version" 78 exit 1 79esac 80 81TMPROOT=/private/tmp/libmicro.$$ 82VARROOT=/private/var/tmp/libmicro.$$ 83mkdir -p $TMPROOT 84mkdir -p $VARROOT 85trap "rm -rf $TMPROOT $VARROOT && exit" 0 2 86 87TFILE=$TMPROOT/data 88IFILE=$TMPROOT/ifile 89TDIR1=$TMPROOT/0/1/2/3/4/5/6/7/8/9 90TDIR2=$TMPROOT/1/2/3/4/5/6/7/8/9/0 91VFILE=$VARROOT/data 92VDIR1=$VARROOT/0/1/2/3/4/5/6/7/8/9 93VDIR2=$VARROOT/1/2/3/4/5/6/7/8/9/0 94 95 96OPTS="-E -C 200 -L -S -W" 97 98dd if=/dev/zero of=$TFILE bs=1024k count=10 2>/dev/null 99dd if=/dev/zero of=$VFILE bs=1024k count=10 2>/dev/null 100mkdir -p $TDIR1 $TDIR2 101mkdir -p $VDIR1 $VDIR2 102 103touch $IFILE 104/usr/bin/touch /private/var/tmp/lmbench 105 106 107# produce benchmark header for easier comparisons 108 109hostname=`uname -n` 110 111if [ -f /usr/sbin/psrinfo ]; then 112 p_count=`psrinfo|wc -l` 113 p_mhz=`psrinfo -v | awk '/operates/{print $6 "MHz"; exit }'` 114 p_type=`psrinfo -vp 2>/dev/null | awk '{if (NR == 3) {print $0; exit}}'` 115 p_ipaddr=`getent hosts $hostname | awk '{print $1}'` 116fi 117 118if [ -f /proc/cpuinfo ]; then 119 p_count=`egrep processor /proc/cpuinfo | wc -l` 120 p_mhz=`awk -F: '/cpu MHz/{printf("%5.0f00Mhz\n",$2/100); exit}' /proc/cpuinfo` 121 p_type=`awk -F: '/model name/{print $2; exit}' /proc/cpuinfo` 122 p_ipaddr=`getent hosts $hostname | awk '{print $1}'` 123else 124## Mac OS X specific stuff 125# first, get ugly output, in case pretty output isn't available 126# 127 p_count=`sysctl -n hw.physicalcpu` 128 p_mhz=`sysctl -n hw.cpufrequency` 129 p_type=`sysctl -n hw.model` 130 131if [ -x /usr/sbin/system_profiler ]; then 132 # <rdar://4655981> requires this hunk of work-around 133 # grep the XML for the characteristic we need. The key appears twice, so grep for the useful key (with 'string') 134 # use sed to strip off the <string></string> and the tabs in front of the string. So much work for so little result. 135 # 136 p_mhz=`system_profiler -xml -detailLevel mini SPHardwareDataType | \ 137 grep -A1 current_processor_speed | grep string | \ 138 sed -E 's/<string>(.+)<\/string>/\1/' | sed 's- --g'` 139 p_type=`system_profiler -xml -detailLevel mini SPHardwareDataType | \ 140 grep -A1 cpu_type | grep string | \ 141 sed -E 's/<string>(.+)<\/string>/\1/' | sed 's- --g'` 142fi 143 144# look for en0 (usually ethernet) if that isn't there try en1 (usually wireless) else give up 145 p_ipaddr=`ipconfig getpacket en0 | grep yiaddr | tr "= " "\n" | grep [0-9]` 146 if [ ! $p_ipaddr ]; then 147 p_ipaddr=`ipconfig getpacket en1 | grep yiaddr | tr "= " "\n" | grep [0-9]` 148 elif [ ! $p_ipaddr ]; then 149 p_ipaddr="unknown" 150 fi 151fi 152 153printf "\n\n!Libmicro_#: %30s\n" $libmicro_version 154printf "!Options: %30s\n" "$OPTS" 155printf "!Machine_name: %30s\n" "$hostname" 156printf "!OS_name: %30s\n" `uname -s` 157printf "!OS_release: %30s\n" `sw_vers -productVersion` 158printf "!OS_build: %30.18s\n" "`sw_vers -buildVersion`" 159printf "!Kernel: %30.50s\n" "`uname -v|cut -d ' ' -f 11`" 160printf "!Processor: %30s\n" `arch` 161printf "!#CPUs: %30s\n" $p_count 162printf "!CPU_MHz: %30s\n" "$p_mhz" 163printf "!CPU_NAME: %30s\n" "$p_type" 164printf "!IP_address: %30s\n" "$p_ipaddr" 165printf "!Run_by: %30s\n" $LOGNAME 166printf "!Date: %30s\n" "`date '+%D %R'`" 167printf "!Compiler: %30s\n" `$tattle -c` 168printf "!Compiler Ver.:%30s\n" "`$tattle -v`" 169printf "!sizeof(long): %30s\n" `$tattle -s` 170printf "!extra_CFLAGS: %30s\n" "`$tattle -f`" 171printf "!TimerRes: %30s\n\n\n" "`$tattle -r`" 172 173bin_dir="$TMPROOT/bin" 174 175mkdir -p $bin_dir 176cp bin-*/exec_bin $bin_dir/$A 177 178cp ./apple/bin-*/posix_spawn_bin $bin_dir/$A 179 180newline=0 181 182# 183# Everything below the while loop is input for the while loop 184# if you have any tests which can't run in the while loop, put 185# them above this comment 186# 187while read A B 188do 189 # $A contains the command, $B contains the arguments 190 # we echo blank lines and comments 191 # we skip anything which fails to match *$1* (useful 192 # if we only want to test one case, but a nasty hack) 193 194 case $A in 195 \#*) 196 echo "$A $B" 197 newline=1 198 continue 199 ;; 200 201 "") 202 if [ $newline -eq 1 ] 203 then 204 newline=0 205 echo 206 echo 207 fi 208 209 continue 210 ;; 211 212 *$1*) 213 # Default execution without the lmbench tests. 214 # checks if there is no argument passed by the user. 215 if [ $lmbench -eq 0 ] 216 then 217 string=lmbench 218 if [ "${A:0:7}" == "$string" ] 219 then 220 continue 221 fi 222 fi 223 224 ;; 225 226 *) 227 if [ $lmbench -ne 1 ] 228 then 229 continue 230 fi 231 ;; 232 esac 233 234 if [ ! -f $bin_dir/$A ] 235 then 236 cp bin-*/$A $bin_dir/$A 237 fi 238 239 echo 240 241 (cd $TMPROOT && eval "bin/$A $B") 242 243 echo 244 echo 245done <<. 246 247# 248# Obligatory null system call: use very short time 249# for default since SuSe implements this "syscall" in userland 250# 251 252getpid $OPTS -N "getpid" -I 5 253getppid $OPTS -N "getppid" -I 5 254 255getenv $OPTS -N "getenv" -s 100 -I 100 256getenv $OPTS -N "getenvT2" -s 100 -I 100 -T 2 257 258gettimeofday $OPTS -N "gettimeofday" 259 260log $OPTS -N "log" -I 20 -B 300000 261exp $OPTS -N "exp" -I 20 -B 100000 262lrand48 $OPTS -N "lrand48" 263 264memset $OPTS -N "memset_10" -s 10 -I 10 265memset $OPTS -N "memset_256" -s 256 -I 20 266memset $OPTS -N "memset_256_u" -s 256 -a 1 -I 20 267memset $OPTS -N "memset_1k" -s 1k -I 100 -B 2000 268memset $OPTS -N "memset_4k" -s 4k -I 250 -B 500 269memset $OPTS -N "memset_4k_uc" -s 4k -u -I 400 270 271memset $OPTS -N "memset_10k" -s 10k -I 600 -B 500 272memset $OPTS -N "memset_1m" -s 1m -I 200000 273memset $OPTS -N "memset_10m" -s 10m -I 2000000 274memset $OPTS -N "memsetP2_10m" -s 10m -P 2 -I 2000000 275 276memrand $OPTS -N "memrand" -s 40m -B 10000 277 278# This is an elided test and is not ported yet. 279# Check Makefile.darwin for list of elided tests 280# cachetocache $OPTS -N "cachetocache" -s 100k -T 2 -I 200 281 282isatty $OPTS -N "isatty_yes" 283isatty $OPTS -N "isatty_no" -f $IFILE 284 285malloc $OPTS -N "malloc_10" -s 10 -g 10 -I 50 286malloc $OPTS -N "malloc_100" -s 100 -g 10 -I 50 287malloc $OPTS -N "malloc_1k" -s 1k -g 10 -I 50 288malloc $OPTS -N "malloc_10k" -s 10k -g 10 -I 50 289malloc $OPTS -N "malloc_100k" -s 100k -g 10 -I 2000 290 291malloc $OPTS -N "mallocT2_10" -s 10 -g 10 -T 2 -I 200 292malloc $OPTS -N "mallocT2_100" -s 100 -g 10 -T 2 -I 200 293malloc $OPTS -N "mallocT2_1k" -s 1k -g 10 -T 2 -I 200 294malloc $OPTS -N "mallocT2_10k" -s 10k -g 10 -T 2 -I 200 295malloc $OPTS -N "mallocT2_100k" -s 100k -g 10 -T 2 -I 10000 296 297close $OPTS -N "close_bad" -B 96 -b 298close $OPTS -N "close_tmp" -B 64 -f $TFILE 299close $OPTS -N "close_usr" -B 64 -f $VFILE 300close $OPTS -N "close_zero" -B 64 -f /dev/zero 301close_tcp $OPTS -N "close_tcp" -B 32 302 303memcpy $OPTS -N "memcpy_10" -s 10 -I 10 304memcpy $OPTS -N "memcpy_1k" -s 1k -I 50 305memcpy $OPTS -N "memcpy_10k" -s 10k -I 800 306memcpy $OPTS -N "memcpy_1m" -s 1m -I 500000 307memcpy $OPTS -N "memcpy_10m" -s 10m -I 5000000 308 309strcpy $OPTS -N "strcpy_10" -s 10 -I 5 310strcpy $OPTS -N "strcpy_1k" -s 1k -I 100 311 312strlen $OPTS -N "strlen_10" -s 10 -I 5 313strlen $OPTS -N "strlen_1k" -s 1k -I 100 314 315strchr $OPTS -N "strchr_10" -s 10 -I 5 316strchr $OPTS -N "strchr_1k" -s 1k -I 200 317strcmp $OPTS -N "strcmp_10" -s 10 -I 10 318strcmp $OPTS -N "strcmp_1k" -s 1k -I 200 319 320strcasecmp $OPTS -N "scasecmp_10" -s 10 -I 50 -B 2000 321strcasecmp $OPTS -N "scasecmp_1k" -s 1k -I 20000 -B 100 322 323strtol $OPTS -N "strtol" -I 20 324 325# This is an elided test and is not ported yet. 326# Check Makefile.darwin for list of elided tests 327# getcontext $OPTS -N "getcontext" -I 100 328 329# This is an elided test and is not ported yet. 330# Check Makefile.darwin for list of elided tests 331# setcontext $OPTS -N "setcontext" -I 100 332 333mutex $OPTS -N "mutex_st" -I 10 334mutex $OPTS -N "mutex_mt" -t -I 10 335mutex $OPTS -N "mutex_T2" -T 2 -I 100 336 337longjmp $OPTS -N "longjmp" -I 10 338siglongjmp $OPTS -N "siglongjmp" -I 20 339 340getrusage $OPTS -N "getrusage" -I 200 341 342times $OPTS -N "times" -I 200 343time $OPTS -N "time" -I 50 344localtime_r $OPTS -N "localtime_r" -I 200 345strftime $OPTS -N "strftime" -I 10000 -B 100 346 347mktime $OPTS -N "mktime" -I 500 348mktime $OPTS -N "mktimeT2" -T 2 -I 1000 349 350cascade_mutex $OPTS -N "c_mutex_1" -I 50 351cascade_mutex $OPTS -N "c_mutex_10" -T 10 -I 5000 352cascade_mutex $OPTS -N "c_mutex_200" -T 200 -I 2000000 353 354cascade_cond $OPTS -N "c_cond_1" -I 100 355cascade_cond $OPTS -N "c_cond_10" -T 10 -I 3000 356cascade_cond $OPTS -N "c_cond_200" -T 200 -I 2000000 357 358cascade_lockf $OPTS -N "c_lockf_1" -I 1000 359cascade_lockf $OPTS -N "c_lockf_10" -P 10 -I 50000 360cascade_lockf $OPTS -N "c_lockf_200" -P 200 -I 5000000 361 362cascade_flock $OPTS -N "c_flock" -I 1000 363cascade_flock $OPTS -N "c_flock_10" -P 10 -I 50000 364cascade_flock $OPTS -N "c_flock_200" -P 200 -I 5000000 365 366cascade_fcntl $OPTS -N "c_fcntl_1" -I 2000 367cascade_fcntl $OPTS -N "c_fcntl_10" -P 10 -I 20000 368cascade_fcntl $OPTS -N "c_fcntl_200" -P 200 -I 5000000 369 370file_lock $OPTS -N "file_lock" -I 1000 371 372getsockname $OPTS -N "getsockname" -I 100 373getpeername $OPTS -N "getpeername" -I 100 374 375chdir $OPTS -N "chdir_tmp" -I 2000 $TDIR1 $TDIR2 376chdir $OPTS -N "chdir_usr" -I 2000 $VDIR1 $VDIR2 377 378chdir $OPTS -N "chgetwd_tmp" -I 3000 -g $TDIR1 $TDIR2 379chdir $OPTS -N "chgetwd_usr" -I 3000 -g $VDIR1 $VDIR2 380 381realpath $OPTS -N "realpath_tmp" -I 3000 -f $TDIR1 382realpath $OPTS -N "realpath_usr" -I 3000 -f $VDIR1 383 384stat $OPTS -N "stat_tmp" -I 1000 -f $TFILE 385stat $OPTS -N "stat_usr" -I 1000 -f $VFILE 386 387lmbench_stat $OPTS -N "lmbench_stat_tmp" -I 1000 -f $TFILE 388lmbench_stat $OPTS -N "lmbench_stat_usr" -I 10000 -B 100 -f /private/var/tmp/lmbench 389 390# 391# lmbench uses a touched empty file in /private/var/tmp 392# libMicro uses a 1M file in a directory off /private/var/tmp 393# performance difference is ~ 0.2 usecs/call 394# 395# why? - walking the dir tree, empty file vs. non-empty file, non-empty dir 396# in the case of libMicro, etc., etc. 397# 398 399lmbench_stat $OPTS -N "lmbench_stat_usr - Default" -I 10000 -B 100 -f /private/var/tmp/lmbench 400 401lmbench_fstat $OPTS -N "lmbench_fstat_tmp" -I 1000 -f $TFILE 402lmbench_fstat $OPTS -N "lmbench_fstat_usr" -I 10000 -B 100 -f /private/var/tmp/lmbench 403 404# see stat test to understand why we are using /private/var/tmp/lmbench 405 406lmbench_fstat $OPTS -N "lmbench_fstat_usr - Default" -I 10000 -B 100 -f /private/var/tmp/lmbench 407 408lmbench_openclose $OPTS -N "lmbench_openclose - Default" -I 10000 -B 100 -f /private/var/tmp/lmbench 409 410lmbench_select_file $OPTS -N "lmbench_select_file_10" -n 10 -B 100 411lmbench_select_file $OPTS -N "lmbench_select_file_100" -n 100 -B 100 412lmbench_select_file $OPTS -N "lmbench_select_file_250" -n 250 -B 100 413lmbench_select_file $OPTS -N "lmbench_select_file_500" -n 500 -B 100 414 415lmbench_select_tcp $OPTS -N "lmbench_select_tcp_10" -n 10 -B 100 416lmbench_select_tcp $OPTS -N "lmbench_select_tcp_100" -n 100 -B 100 417lmbench_select_tcp $OPTS -N "lmbench_select_tcp_250" -n 250 -B 100 418lmbench_select_tcp $OPTS -N "lmbench_select_tcp_500" -n 500 -B 100 419 420fcntl $OPTS -N "fcntl_tmp" -I 100 -f $TFILE 421fcntl $OPTS -N "fcntl_usr" -I 100 -f $VFILE 422fcntl_ndelay $OPTS -N "fcntl_ndelay" -I 100 423 424lseek $OPTS -N "lseek_t8k" -s 8k -I 50 -f $TFILE 425lseek $OPTS -N "lseek_u8k" -s 8k -I 50 -f $VFILE 426 427open $OPTS -N "open_tmp" -B 256 -f $TFILE 428open $OPTS -N "open_usr" -B 256 -f $VFILE 429open $OPTS -N "open_zero" -B 256 -f /dev/zero 430 431dup $OPTS -N "dup" -B 512 432 433socket $OPTS -N "socket_u" -B 256 434socket $OPTS -N "socket_i" -B 256 -f PF_INET 435 436socketpair $OPTS -N "socketpair" -B 256 437 438setsockopt $OPTS -N "setsockopt" -I 200 439 440bind $OPTS -N "bind" -B 100 441 442listen $OPTS -N "listen" -B 100 443 444#connection $OPTS -N "connection" -B 256 445 446poll $OPTS -N "poll_10" -n 10 -I 500 447poll $OPTS -N "poll_100" -n 100 -I 1000 448poll $OPTS -N "poll_1000" -n 1000 -I 5000 449 450poll $OPTS -N "poll_w10" -n 10 -I 500 -w 1 451poll $OPTS -N "poll_w100" -n 100 -I 2000 -w 10 452poll $OPTS -N "poll_w1000" -n 1000 -I 40000 -w 100 453 454select $OPTS -N "select_10" -n 10 -I 500 455select $OPTS -N "select_100" -n 100 -I 1000 456select $OPTS -N "select_1000" -n 1000 -I 5000 457 458select $OPTS -N "select_w10" -n 10 -I 500 -w 1 459select $OPTS -N "select_w100" -n 100 -I 2000 -w 10 460select $OPTS -N "select_w1000" -n 1000 -I 40000 -w 100 461 462semop $OPTS -N "semop" -I 200 463 464sigaction $OPTS -N "sigaction" -I 100 465signal $OPTS -N "signal" -I 1000 466sigprocmask $OPTS -N "sigprocmask" -I 200 467 468lmbench_lat_sig_install $OPTS -N "lmbench_siginstall" 469# sigcatch and sigsend need to be evaluated together 470# lmbench framework will allow multiple measurements within the same 471# benchmark test which allow them to factor out the cost of sending 472# a signal from catching one 473# 474# for our purposes sigcatch results - sigsend results yield 475# lmbench sig handler overhead measurements 476lmbench_lat_sig_catch $OPTS -N "lmbench_sigcatch" 477lmbench_lat_sig_send $OPTS -N "lmbench_sigsend" 478 479 480pthread_create $OPTS -N "pthread_8" -B 8 481pthread_create $OPTS -N "pthread_32" -B 32 482pthread_create $OPTS -N "pthread_128" -B 128 483pthread_create $OPTS -N "pthread_512" -B 512 484 485fork $OPTS -N "fork_10" -B 10 486fork $OPTS -N "fork_100" -B 100 -C 100 487 488#fork $OPTS -N "fork_1000" -B 1000 -C 50 489 490exit $OPTS -N "exit_10" -B 10 491exit $OPTS -N "exit_100" -B 100 492 493#exit $OPTS -N "exit_1000" -B 1000 -C 50 494 495exit $OPTS -N "exit_10_nolibc" -e -B 10 496 497exec $OPTS -N "exec" -B 10 498 499posix_spawn $OPTS -N "posix_spawn" -B 10 500 501system $OPTS -N "system" -I 1000000 502 503recurse $OPTS -N "recurse" -B 512 504 505read $OPTS -N "read_t1k" -s 1k -B 50 -f $TFILE 506read $OPTS -N "read_t10k" -s 10k -B 16 -f $TFILE 507read $OPTS -N "read_t100k" -s 100k -B 4 -f $TFILE 508 509read $OPTS -N "read_u1k" -s 1k -B 50 -f $VFILE 510read $OPTS -N "read_u10k" -s 10k -B 16 -f $VFILE 511read $OPTS -N "read_u100k" -s 100k -B 4 -f $VFILE 512 513read $OPTS -N "read_z1k" -s 1k -B 100 -f /dev/zero 514read $OPTS -N "read_z10k" -s 10k -B 30 -f /dev/zero 515read $OPTS -N "read_z100k" -s 100k -B 4 -f /dev/zero 516read $OPTS -N "read_zw100k" -s 100k -B 4 -w -f /dev/zero 517 518lmbench_read $OPTS -N "read_t1b" -s 1 -B 50 -f $TFILE 519lmbench_read $OPTS -N "read_t1k" -s 1k -B 50 -f $TFILE 520lmbench_read $OPTS -N "read_t10k" -s 10k -B 16 -f $TFILE 521lmbench_read $OPTS -N "read_t100k" -s 100k -B 4 -f $TFILE 522 523lmbench_read $OPTS -N "read_u1b" -s 1 -B 50 -f $VFILE 524lmbench_read $OPTS -N "read_u1k" -s 1k -B 50 -f $VFILE 525lmbench_read $OPTS -N "read_u10k" -s 10k -B 16 -f $VFILE 526lmbench_read $OPTS -N "read_u100k" -s 100k -B 4 -f $VFILE 527 528lmbench_read $OPTS -N "read_z1b - Default" -s 1 -B 100 -f /dev/zero 529lmbench_read $OPTS -N "read_z1k" -s 1k -B 100 -f /dev/zero 530lmbench_read $OPTS -N "read_z10k" -s 10k -B 30 -f /dev/zero 531lmbench_read $OPTS -N "read_z100k" -s 100k -B 4 -f /dev/zero 532lmbench_read $OPTS -N "read_zw100k" -s 100k -B 4 -w -f /dev/zero 533 534write $OPTS -N "write_t1k" -s 1k -B 50 -f $TFILE 535write $OPTS -N "write_t10k" -s 10k -B 25 -f $TFILE 536write $OPTS -N "write_t100k" -s 100k -B 4 -f $TFILE 537 538write $OPTS -N "write_u1k" -s 1k -B 50 -f $VFILE 539write $OPTS -N "write_u10k" -s 10k -B 25 -f $VFILE 540write $OPTS -N "write_u100k" -s 100k -B 4 -f $VFILE 541 542write $OPTS -N "write_n1k" -s 1k -I 100 -B 0 -f /dev/null 543write $OPTS -N "write_n10k" -s 10k -I 100 -B 0 -f /dev/null 544write $OPTS -N "write_n100k" -s 100k -I 100 -B 0 -f /dev/null 545 546lmbench_write $OPTS -N "lmbench_write_t1b" -s 1 -B 50 -f $TFILE 547lmbench_write $OPTS -N "lmbench_write_t1k" -s 1k -B 50 -f $TFILE 548lmbench_write $OPTS -N "lmbench_write_t10k" -s 10k -B 25 -f $TFILE 549lmbench_write $OPTS -N "lmbench_write_t100k" -s 100k -B 4 -f $TFILE 550 551lmbench_write $OPTS -N "lmbench_write_u1b" -s 1 -B 50 -f $VFILE 552lmbench_write $OPTS -N "lmbench_write_u1k" -s 1k -B 50 -f $VFILE 553lmbench_write $OPTS -N "lmbench_write_u10k" -s 10k -B 25 -f $VFILE 554lmbench_write $OPTS -N "lmbench_write_u100k" -s 100k -B 4 -f $VFILE 555 556lmbench_write $OPTS -N "lmbench_write_n1b - Default" -s 1 -I 100 -B 0 -f /dev/null 557lmbench_write $OPTS -N "lmbench_write_n1k" -s 1k -I 100 -B 0 -f /dev/null 558lmbench_write $OPTS -N "lmbench_write_n10k" -s 10k -I 100 -B 0 -f /dev/null 559lmbench_write $OPTS -N "lmbench_write_n100k" -s 100k -I 100 -B 0 -f /dev/null 560 561writev $OPTS -N "writev_t1k" -s 1k -B 20 -f $TFILE 562writev $OPTS -N "writev_t10k" -s 10k -B 4 -f $TFILE 563writev $OPTS -N "writev_t100k" -s 100k -f $TFILE 564 565writev $OPTS -N "writev_u1k" -s 1k -B 20 -f $VFILE 566writev $OPTS -N "writev_u10k" -s 10k -B 4 -f $VFILE 567writev $OPTS -N "writev_u100k" -s 100k -f $VFILE 568 569writev $OPTS -N "writev_n1k" -s 1k -I 100 -B 0 -f /dev/null 570writev $OPTS -N "writev_n10k" -s 10k -I 100 -B 0 -f /dev/null 571writev $OPTS -N "writev_n100k" -s 100k -I 100 -B 0 -f /dev/null 572 573pread $OPTS -N "pread_t1k" -s 1k -I 300 -f $TFILE 574pread $OPTS -N "pread_t10k" -s 10k -I 1000 -f $TFILE 575pread $OPTS -N "pread_t100k" -s 100k -I 10000 -f $TFILE 576 577pread $OPTS -N "pread_u1k" -s 1k -I 300 -f $VFILE 578pread $OPTS -N "pread_u10k" -s 10k -I 1000 -f $VFILE 579pread $OPTS -N "pread_u100k" -s 100k -I 10000 -f $VFILE 580 581pread $OPTS -N "pread_z1k" -s 1k -I 300 -f /dev/zero 582pread $OPTS -N "pread_z10k" -s 10k -I 1000 -f /dev/zero 583pread $OPTS -N "pread_z100k" -s 100k -I 2000 -f /dev/zero 584pread $OPTS -N "pread_zw100k" -s 100k -w -I 10000 -f /dev/zero 585 586pwrite $OPTS -N "pwrite_t1k" -s 1k -I 500 -f $TFILE 587pwrite $OPTS -N "pwrite_t10k" -s 10k -I 1000 -f $TFILE 588pwrite $OPTS -N "pwrite_t100k" -s 100k -I 10000 -f $TFILE 589 590pwrite $OPTS -N "pwrite_u1k" -s 1k -I 500 -f $VFILE 591pwrite $OPTS -N "pwrite_u10k" -s 10k -I 1000 -f $VFILE 592pwrite $OPTS -N "pwrite_u100k" -s 100k -I 20000 -f $VFILE 593 594pwrite $OPTS -N "pwrite_n1k" -s 1k -I 100 -f /dev/null 595pwrite $OPTS -N "pwrite_n10k" -s 10k -I 100 -f /dev/null 596pwrite $OPTS -N "pwrite_n100k" -s 100k -I 100 -f /dev/null 597 598mmap $OPTS -N "mmap_z8k" -l 8k -I 1000 -B 50 -f /dev/zero 599mmap $OPTS -N "mmap_z128k" -l 128k -I 2000 -B 100 -f /dev/zero 600mmap $OPTS -N "mmap_t8k" -l 8k -I 1000 -f $TFILE 601mmap $OPTS -N "mmap_t128k" -l 128k -I 1000 -f $TFILE 602mmap $OPTS -N "mmap_u8k" -l 8k -I 1000 -f $VFILE 603mmap $OPTS -N "mmap_u128k" -l 128k -I 1000 -f $VFILE 604mmap $OPTS -N "mmap_a8k" -l 8k -I 200 -f MAP_ANON 605mmap $OPTS -N "mmap_a128k" -l 128k -I 200 -f MAP_ANON 606 607 608mmap $OPTS -N "mmap_rz8k" -l 8k -I 2000 -r -f /dev/zero 609mmap $OPTS -N "mmap_rz128k" -l 128k -I 2000 -r -f /dev/zero 610mmap $OPTS -N "mmap_rt8k" -l 8k -I 2000 -r -f $TFILE 611mmap $OPTS -N "mmap_rt128k" -l 128k -I 20000 -r -f $TFILE 612mmap $OPTS -N "mmap_ru8k" -l 8k -I 2000 -r -f $VFILE 613mmap $OPTS -N "mmap_ru128k" -l 128k -I 20000 -r -f $VFILE 614mmap $OPTS -N "mmap_ra8k" -l 8k -I 2000 -r -f MAP_ANON 615mmap $OPTS -N "mmap_ra128k" -l 128k -I 20000 -r -f MAP_ANON 616 617mmap $OPTS -N "mmap_wz8k" -l 8k -I 5000 -w -B 50 -f /dev/zero 618mmap $OPTS -N "mmap_wz128k" -l 128k -I 50000 -w -B 50 -f /dev/zero 619mmap $OPTS -N "mmap_wt8k" -l 8k -I 5000 -w -f $TFILE 620mmap $OPTS -N "mmap_wt128k" -l 128k -I 50000 -w -f $TFILE 621mmap $OPTS -N "mmap_wu8k" -l 8k -I 5000 -w -f $VFILE 622mmap $OPTS -N "mmap_wu128k" -l 128k -I 500000 -w -f $VFILE 623mmap $OPTS -N "mmap_wa8k" -l 8k -I 3000 -w -f MAP_ANON 624mmap $OPTS -N "mmap_wa128k" -l 128k -I 50000 -w -f MAP_ANON 625 626munmap $OPTS -N "unmap_z8k" -l 8k -I 500 -f /dev/zero 627munmap $OPTS -N "unmap_z128k" -l 128k -I 500 -B 100 -f /dev/zero 628munmap $OPTS -N "unmap_t8k" -l 8k -I 500 -f $TFILE 629munmap $OPTS -N "unmap_t128k" -l 128k -I 500 -f $TFILE 630munmap $OPTS -N "unmap_u8k" -l 8k -I 500 -f $VFILE 631munmap $OPTS -N "unmap_u128k" -l 128k -I 500 -f $VFILE 632munmap $OPTS -N "unmap_a8k" -l 8k -I 500 -f MAP_ANON 633munmap $OPTS -N "unmap_a128k" -l 128k -I 500 -f MAP_ANON 634 635munmap $OPTS -N "unmap_rz8k" -l 8k -I 1000 -r -f /dev/zero 636munmap $OPTS -N "unmap_rz128k" -l 128k -I 2000 -r -B 100 -f /dev/zero 637munmap $OPTS -N "unmap_rt8k" -l 8k -I 1000 -r -f $TFILE 638munmap $OPTS -N "unmap_rt128k" -l 128k -I 3000 -r -f $TFILE 639munmap $OPTS -N "unmap_ru8k" -l 8k -I 1000 -r -f $VFILE 640munmap $OPTS -N "unmap_ru128k" -l 128k -I 3000 -r -f $VFILE 641munmap $OPTS -N "unmap_ra8k" -l 8k -I 1000 -r -f MAP_ANON 642munmap $OPTS -N "unmap_ra128k" -l 128k -I 2000 -r -f MAP_ANON 643 644connection $OPTS -N "conn_connect" -B 256 -c 645 646munmap $OPTS -N "unmap_wz8k" -l 8k -I 1000 -w -f /dev/zero 647munmap $OPTS -N "unmap_wz128k" -l 128k -I 8000 -w -B 100 -f /dev/zero 648munmap $OPTS -N "unmap_wt8k" -l 8k -I 1000 -w -f $TFILE 649munmap $OPTS -N "unmap_wt128k" -l 128k -I 10000 -w -f $TFILE 650munmap $OPTS -N "unmap_wu8k" -l 8k -I 1000 -w -f $VFILE 651munmap $OPTS -N "unmap_wu128k" -l 128k -I 50000 -w -B 10 -f $VFILE 652munmap $OPTS -N "unmap_wa8k" -l 8k -I 1000 -w -f MAP_ANON 653munmap $OPTS -N "unmap_wa128k" -l 128k -I 10000 -w -f MAP_ANON 654 655 656mprotect $OPTS -N "mprot_z8k" -l 8k -I 300 -f /dev/zero 657mprotect $OPTS -N "mprot_z128k" -l 128k -I 500 -f /dev/zero 658mprotect $OPTS -N "mprot_wz8k" -l 8k -I 500 -w -f /dev/zero 659mprotect $OPTS -N "mprot_wz128k" -l 128k -I 1000 -w -f /dev/zero 660mprotect $OPTS -N "mprot_twz8k" -l 8k -I 1000 -w -t -f /dev/zero 661mprotect $OPTS -N "mprot_tw128k" -l 128k -I 2000 -w -t -f /dev/zero 662mprotect $OPTS -N "mprot_tw4m" -l 4m -w -t -B 1 -f /dev/zero 663 664pipe $OPTS -N "pipe_pst1" -s 1 -I 1000 -x pipe -m st 665pipe $OPTS -N "pipe_pmt1" -s 1 -I 8000 -x pipe -m mt 666pipe $OPTS -N "pipe_pmp1" -s 1 -I 8000 -x pipe -m mp 667pipe $OPTS -N "pipe_pst4k" -s 4k -I 1000 -x pipe -m st 668pipe $OPTS -N "pipe_pmt4k" -s 4k -I 8000 -x pipe -m mt 669pipe $OPTS -N "pipe_pmp4k" -s 4k -I 8000 -x pipe -m mp 670 671pipe $OPTS -N "pipe_sst1" -s 1 -I 1000 -x sock -m st 672pipe $OPTS -N "pipe_smt1" -s 1 -I 8000 -x sock -m mt 673pipe $OPTS -N "pipe_smp1" -s 1 -I 8000 -x sock -m mp 674pipe $OPTS -N "pipe_sst4k" -s 4k -I 1000 -x sock -m st 675pipe $OPTS -N "pipe_smt4k" -s 4k -I 8000 -x sock -m mt 676pipe $OPTS -N "pipe_smp4k" -s 4k -I 8000 -x sock -m mp 677 678pipe $OPTS -N "pipe_tst1" -s 1 -I 1000 -x tcp -m st 679pipe $OPTS -N "pipe_tmt1" -s 1 -I 8000 -x tcp -m mt 680pipe $OPTS -N "pipe_tmp1" -s 1 -I 8000 -x tcp -m mp 681pipe $OPTS -N "pipe_tst4k" -s 4k -I 1000 -x tcp -m st 682pipe $OPTS -N "pipe_tmt4k" -s 4k -I 8000 -x tcp -m mt 683pipe $OPTS -N "pipe_tmp4k" -s 4k -I 8000 -x tcp -m mp 684 685#connection $OPTS -N "conn_accept" -B 256 -a 686 687lmbench_bw_unix -B 11 -L -W 688 689lmbench_bw_mem $OPTS -N lmbench_bcopy_512 -s 512 -x bcopy 690lmbench_bw_mem $OPTS -N lmbench_bcopy_1k -s 1k -x bcopy 691lmbench_bw_mem $OPTS -N lmbench_bcopy_2k -s 2k -x bcopy 692lmbench_bw_mem $OPTS -N lmbench_bcopy_4k -s 4k -x bcopy 693lmbench_bw_mem $OPTS -N lmbench_bcopy_8k -s 8k -x bcopy 694lmbench_bw_mem $OPTS -N lmbench_bcopy_16k -s 16k -x bcopy 695lmbench_bw_mem $OPTS -N lmbench_bcopy_32k -s 32k -x bcopy 696lmbench_bw_mem $OPTS -N lmbench_bcopy_64k -s 64k -x bcopy 697lmbench_bw_mem $OPTS -N lmbench_bcopy_128k -s 128k -x bcopy 698lmbench_bw_mem $OPTS -N lmbench_bcopy_256k -s 256k -x bcopy 699lmbench_bw_mem $OPTS -N lmbench_bcopy_512k -s 512k -x bcopy 700lmbench_bw_mem $OPTS -N lmbench_bcopy_1m -s 1m -x bcopy 701lmbench_bw_mem $OPTS -N lmbench_bzero_512 -s 512 -x bzero 702lmbench_bw_mem $OPTS -N lmbench_bzero_1k -s 1k -x bzero 703lmbench_bw_mem $OPTS -N lmbench_bzero_2k -s 2k -x bzero 704lmbench_bw_mem $OPTS -N lmbench_bzero_4k -s 4k -x bzero 705lmbench_bw_mem $OPTS -N lmbench_bzero_8k -s 8k -x bzero 706lmbench_bw_mem $OPTS -N lmbench_bzero_16k -s 16k -x bzero 707lmbench_bw_mem $OPTS -N lmbench_bzero_32k -s 32k -x bzero 708lmbench_bw_mem $OPTS -N lmbench_bzero_64k -s 64k -x bzero 709lmbench_bw_mem $OPTS -N lmbench_bzero_128k -s 128k -x bzero 710lmbench_bw_mem $OPTS -N lmbench_bzero_256k -s 256k -x bzero 711lmbench_bw_mem $OPTS -N lmbench_bzero_512k -s 512k -x bzero 712lmbench_bw_mem $OPTS -N lmbench_bzero_1m -s 1m -x bzero 713lmbench_bw_mem $OPTS -N lmbench_bzero_512 -s 512 -x fcp 714lmbench_bw_mem $OPTS -N lmbench_bzero_1k -s 1k -x fcp 715lmbench_bw_mem $OPTS -N lmbench_bzero_2k -s 2k -x fcp 716lmbench_bw_mem $OPTS -N lmbench_bzero_4k -s 4k -x fcp 717lmbench_bw_mem $OPTS -N lmbench_bzero_8k -s 8k -x fcp 718lmbench_bw_mem $OPTS -N lmbench_bzero_16k -s 16k -x fcp 719lmbench_bw_mem $OPTS -N lmbench_bzero_32k -s 32k -x fcp 720lmbench_bw_mem $OPTS -N lmbench_bzero_64k -s 64k -x fcp 721lmbench_bw_mem $OPTS -N lmbench_bzero_128k -s 128k -x fcp 722lmbench_bw_mem $OPTS -N lmbench_bzero_256k -s 256k -x fcp 723lmbench_bw_mem $OPTS -N lmbench_bzero_512k -s 512k -x fcp 724lmbench_bw_mem $OPTS -N lmbench_bzero_1m -s 1m -x fcp 725lmbench_bw_mem $OPTS -N lmbench_cp_512 -s 512 -x cp 726lmbench_bw_mem $OPTS -N lmbench_cp_1k -s 1k -x cp 727lmbench_bw_mem $OPTS -N lmbench_cp_2k -s 2k -x cp 728lmbench_bw_mem $OPTS -N lmbench_cp_4k -s 4k -x cp 729lmbench_bw_mem $OPTS -N lmbench_cp_8k -s 8k -x cp 730lmbench_bw_mem $OPTS -N lmbench_cp_16k -s 16k -x cp 731lmbench_bw_mem $OPTS -N lmbench_cp_32k -s 32k -x cp 732lmbench_bw_mem $OPTS -N lmbench_cp_64k -s 64k -x cp 733lmbench_bw_mem $OPTS -N lmbench_cp_128k -s 128k -x cp 734lmbench_bw_mem $OPTS -N lmbench_cp_256k -s 256k -x cp 735lmbench_bw_mem $OPTS -N lmbench_cp_512k -s 512k -x cp 736lmbench_bw_mem $OPTS -N lmbench_cp_1m -s 1m -x cp 737lmbench_bw_mem $OPTS -N lmbench_frd_512 -s 512 -x frd 738lmbench_bw_mem $OPTS -N lmbench_frd_1k -s 1k -x frd 739lmbench_bw_mem $OPTS -N lmbench_frd_2k -s 2k -x frd 740lmbench_bw_mem $OPTS -N lmbench_frd_4k -s 4k -x frd 741lmbench_bw_mem $OPTS -N lmbench_frd_8k -s 8k -x frd 742lmbench_bw_mem $OPTS -N lmbench_frd_16k -s 16k -x frd 743lmbench_bw_mem $OPTS -N lmbench_frd_32k -s 32k -x frd 744lmbench_bw_mem $OPTS -N lmbench_frd_64k -s 64k -x frd 745lmbench_bw_mem $OPTS -N lmbench_frd_128k -s 128k -x frd 746lmbench_bw_mem $OPTS -N lmbench_frd_256k -s 256k -x frd 747lmbench_bw_mem $OPTS -N lmbench_frd_512k -s 512k -x frd 748lmbench_bw_mem $OPTS -N lmbench_frd_1m -s 1m -x frd 749lmbench_bw_mem $OPTS -N lmbench_rd_512 -s 512 -x rd 750lmbench_bw_mem $OPTS -N lmbench_rd_1k -s 1k -x rd 751lmbench_bw_mem $OPTS -N lmbench_rd_2k -s 2k -x rd 752lmbench_bw_mem $OPTS -N lmbench_rd_4k -s 4k -x rd 753lmbench_bw_mem $OPTS -N lmbench_rd_8k -s 8k -x rd 754lmbench_bw_mem $OPTS -N lmbench_rd_16k -s 16k -x rd 755lmbench_bw_mem $OPTS -N lmbench_rd_32k -s 32k -x rd 756lmbench_bw_mem $OPTS -N lmbench_rd_64k -s 64k -x rd 757lmbench_bw_mem $OPTS -N lmbench_rd_128k -s 128k -x rd 758lmbench_bw_mem $OPTS -N lmbench_rd_256k -s 256k -x rd 759lmbench_bw_mem $OPTS -N lmbench_rd_512k -s 512k -x rd 760lmbench_bw_mem $OPTS -N lmbench_rd_1m -s 1m -x rd 761lmbench_bw_mem $OPTS -N lmbench_fwr_512 -s 512 -x fwr 762lmbench_bw_mem $OPTS -N lmbench_fwr_1k -s 1k -x fwr 763lmbench_bw_mem $OPTS -N lmbench_fwr_2k -s 2k -x fwr 764lmbench_bw_mem $OPTS -N lmbench_fwr_4k -s 4k -x fwr 765lmbench_bw_mem $OPTS -N lmbench_fwr_8k -s 8k -x fwr 766lmbench_bw_mem $OPTS -N lmbench_fwr_16k -s 16k -x fwr 767lmbench_bw_mem $OPTS -N lmbench_fwr_32k -s 32k -x fwr 768lmbench_bw_mem $OPTS -N lmbench_fwr_64k -s 64k -x fwr 769lmbench_bw_mem $OPTS -N lmbench_fwr_128k -s 128k -x fwr 770lmbench_bw_mem $OPTS -N lmbench_fwr_256k -s 256k -x fwr 771lmbench_bw_mem $OPTS -N lmbench_fwr_512k -s 512k -x fwr 772lmbench_bw_mem $OPTS -N lmbench_fwr_1m -s 1m -x fwr 773lmbench_bw_mem $OPTS -N lmbench_wr_512 -s 512 -x wr 774lmbench_bw_mem $OPTS -N lmbench_wr_1k -s 1k -x wr 775lmbench_bw_mem $OPTS -N lmbench_wr_2k -s 2k -x wr 776lmbench_bw_mem $OPTS -N lmbench_wr_4k -s 4k -x wr 777lmbench_bw_mem $OPTS -N lmbench_wr_8k -s 8k -x wr 778lmbench_bw_mem $OPTS -N lmbench_wr_16k -s 16k -x wr 779lmbench_bw_mem $OPTS -N lmbench_wr_32k -s 32k -x wr 780lmbench_bw_mem $OPTS -N lmbench_wr_64k -s 64k -x wr 781lmbench_bw_mem $OPTS -N lmbench_wr_128k -s 128k -x wr 782lmbench_bw_mem $OPTS -N lmbench_wr_256k -s 256k -x wr 783lmbench_bw_mem $OPTS -N lmbench_wr_512k -s 512k -x wr 784lmbench_bw_mem $OPTS -N lmbench_wr_1m -s 1m -x wr 785lmbench_bw_mem $OPTS -N lmbench_rdwr_512 -s 512 -x rdwr 786lmbench_bw_mem $OPTS -N lmbench_rdwr_1k -s 1k -x rdwr 787lmbench_bw_mem $OPTS -N lmbench_rdwr_2k -s 2k -x rdwr 788lmbench_bw_mem $OPTS -N lmbench_rdwr_4k -s 4k -x rdwr 789lmbench_bw_mem $OPTS -N lmbench_rdwr_8k -s 8k -x rdwr 790lmbench_bw_mem $OPTS -N lmbench_rdwr_16k -s 16k -x rdwr 791lmbench_bw_mem $OPTS -N lmbench_rdwr_32k -s 32k -x rdwr 792lmbench_bw_mem $OPTS -N lmbench_rdwr_64k -s 64k -x rdwr 793lmbench_bw_mem $OPTS -N lmbench_rdwr_128k -s 128k -x rdwr 794lmbench_bw_mem $OPTS -N lmbench_rdwr_256k -s 256k -x rdwr 795lmbench_bw_mem $OPTS -N lmbench_rdwr_512k -s 512k -x rdwr 796lmbench_bw_mem $OPTS -N lmbench_rdwr_1m -s 1m -x rdwr 797 798lmbench_bw_mmap_rd $OPTS -N bw_mmap_rd_512 -s 512 -f $TFILE 799lmbench_bw_mmap_rd $OPTS -N bw_mmap_rd_1k -s 1k -f $TFILE 800lmbench_bw_mmap_rd $OPTS -N bw_mmap_rd_2k -s 2k -f $TFILE 801lmbench_bw_mmap_rd $OPTS -N bw_mmap_rd_4k -s 4k -f $TFILE 802lmbench_bw_mmap_rd $OPTS -N bw_mmap_rd_8k -s 8k -f $TFILE 803lmbench_bw_mmap_rd $OPTS -N bw_mmap_rd_16k -s 16k -f $TFILE 804lmbench_bw_mmap_rd $OPTS -N bw_mmap_rd_32k -s 32k -f $TFILE 805lmbench_bw_mmap_rd $OPTS -N bw_mmap_rd_64k -s 64k -f $TFILE 806lmbench_bw_mmap_rd $OPTS -N bw_mmap_rd_128k -s 128k -f $TFILE 807lmbench_bw_mmap_rd $OPTS -N bw_mmap_rd_256k -s 256k -f $TFILE 808lmbench_bw_mmap_rd $OPTS -N bw_mmap_rd_512k -s 512k -f $TFILE 809lmbench_bw_mmap_rd $OPTS -N bw_mmap_rd_1m -s 1m -f $TFILE 810 811. 812