logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

bw_pipe - time data movement through pipes

Acknowledgement

       Funding for the development of this tool was provided by Sun Microsystems Computer Corporation.

Author

       Carl Staelin and Larry McVoy

       Comments, suggestions, and bug reports are always welcome.

(c)1994 Larry McVoy                                  $Date$                                           BW_PIPE(8)

Description

bw_pipe creates a Unix pipe between two processes and moves totalbytes through the pipe in messagesize
       chunks  (note that pipes are typically sized smaller than that).  The default totalbytes is 10MB and the
       default messagesize is 64KB.

Memory Utilization

       This benchmark can move up to six times the requested memory per process.  There are two  processes,  the
       sender  and  the  receiver.   Most  Unix systems implement the read/write system calls as a bcopy from/to
       kernel space to/from user space.  Bcopy will use 2-3 times as much memory bandwidth: there  is  one  read
       from the source and a write to the destionation.  The write usually results in a cache line read and then
       a  write  back  of the cache line at some later point.  Memory utilization might be reduced by 1/3 if the
       processor architecture implemented "load cache line" and "store cache  line"  instructions  (as  well  as
       getcachelinesize).

Name

       bw_pipe - time data movement through pipes

Output

       Output format is "Pipebandwidth:%0.2fMB/sec\n",megabytes_per_second, i.e.,

       Pipebandwidth:4.87MB/sec

See Also

lmbench(8).

Synopsis

bw_pipe  [  -m<messagesize>  ]  [  -M<totalbytes>  ]  [  -P<parallelism> ] [ -W<warmups> ] [ -N<repetitions> ]

See Also