]> git.saurik.com Git - apple/xnu.git/blame - tools/tests/libMicro/bench.sh
xnu-4570.20.62.tar.gz
[apple/xnu.git] / tools / tests / libMicro / bench.sh
CommitLineData
b0d623f7
A
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
6d2010ae
A
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
b0d623f7
A
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`"
6d2010ae 159printf "!Kernel: %30.50s\n" "`uname -v|cut -d ' ' -f 11`"
b0d623f7
A
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#
3e170ce0
A
183# Everything below the while loop is input for the while loop if
184# you have any tests which can't run in the while loop, put
b0d623f7
A
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
3e170ce0
A
191 # we skip anything which fails to match *$1* (useful if
192 # we only want to test one case, but a nasty hack)
b0d623f7
A
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*)
6d2010ae
A
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
b0d623f7 224 ;;
6d2010ae
A
225
226 *)
227 if [ $lmbench -ne 1 ]
228 then
229 continue
230 fi
b0d623f7
A
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.