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