]> git.saurik.com Git - apple/xnu.git/blame - tools/tests/libMicro/coreos_bench.sh
xnu-2050.7.9.tar.gz
[apple/xnu.git] / tools / tests / libMicro / coreos_bench.sh
CommitLineData
6d2010ae
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
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
6d2010ae
A
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
316670eb 632
6d2010ae
A
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
316670eb 640
6d2010ae
A
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
316670eb 648
6d2010ae
A
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
316670eb 656
6d2010ae
A
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
316670eb 666
6d2010ae
A
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
6d2010ae
A
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.