Provided by: lmbench-doc_3.0-a9-1.1_all bug


       bw_tcp - time data movement through TCP/IP sockets


       bw_tcp  [ -m <message size> ] [ -M <total bytes> ] [ -P <parallelism> ] [ -W <warmups> ] [
       -N <repetitions> ] server
       bw_tcp -s
       bw_tcp -S <server>


       bw_tcp is a client/server program that moves data over a TCP/IP socket.  Nothing  is  done
       with the data on either side; total bytes of data is moved in message size chunks.

       bw_tcp  has three forms of usage: as a server (-s), as a client (bw_tcp localhost), and as
       a shutdown (bw_tcp -S localhost).

       The default amount of data is 10MB.  The client form may specify  a  different  amount  of
       data.   Specifications may end with ``k'' or ``m'' to mean kilobytes (* 1024) or megabytes
       (* 1024 * 1024).


       Output format is Socket bandwidth using localhost: 2.32 MB/sec


       This benchmark can move up to six times the requested memory per process when run  through
       the  loopback  device.   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).


       Funding  for  the  development  of  this  tool  was  provided by Sun Microsystems Computer
       Corporation and Silicon Graphics, Inc.




       Carl Staelin and Larry McVoy

       Comments, suggestions, and bug reports are always welcome.

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