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