[ewg] [PATCH] update perftest README
Oren Meron
orenmeron at dev.mellanox.co.il
Tue Feb 19 07:46:57 PST 2008
Update README
Signed-off-by: Oren Meron <orenmeron at dev.mellanox.co.il>
--- a/README
+++ b/README
@@ -1,37 +1,52 @@
-This directory includes gen2 uverbs micro-benchmarks.
+ Open Fabrics Enterprise Distribution (OFED)
+ Performance Tests README for OFED 1.2
+
+ February 2008
-The tests are intended as:
- 1) simple, efficient usage examples.
- Please see the COPYING file if you intend to copy it literally.
- 2) a useful benchmark
- e.g. for HW or SW tuning and/or functional testing.
- Please post results/observations to the openib-general mailing
- list. See http://openib.org/mailman/listinfo/openib-general
- and http://www.openib.org "Contact Us" link for contact details.
+===============================================================================
+Table of Contents
+===============================================================================
+1. Overview
+2. Notes on Testing Methodology
+3. Test Descriptions
+4. Running Tests
-Testing methodology
--------------------
+===============================================================================
+1. Overview
+===============================================================================
+This is a collection of tests written over uverbs intended for use as a
+performance micro-benchmark. As an example, the tests can be used for
+HW or SW tuning and/or functional testing.
-- uses CPU cycle counter to get time stamps without context switch.
- Some CPU architectures do NOT have such capability. e.g. Intel 80486
- or older PPC.
+Please post results/observations to the openib-general mailing list.
+See "Contact Us" at http://openib.org/mailman/listinfo/openib-general and
+http://www.openib.org.
-- measures round-trip time but reports half of that as one-way latency.
- ie. May not be sufficiently accurate for asymmetrical configurations.
+
+===============================================================================
+2. Notes on Testing Methodology
+===============================================================================
+- The benchmark used the CPU cycle counter to get time stamps without context
+ switch. Some CPU architectures (e.g., Intel's 80486 or older PPC) do NOT
+ have such capability.
+
+- The benchmark measures round-trip time but reports half of that as one-way
+ latency. This means that it may not be sufficiently accurate for asymmetrical
+ configurations.
- Min/Median/Max result is reported.
The median (vs average) is less sensitive to extreme scores.
- Typically the "Max" value is the first value measured.
+ Typically, the "Max" value is the first value measured.
-- larger samples only marginally help. The default (1000) is pretty good.
+- Larger samples help marginally only. The default (1000) is pretty good.
Note that an array of cycles_t (typically unsigned long) is allocated
once to collect samples and again to store the difference between them.
- Really big sample sizes (e.g. 1 million) might expose other problems
+ Really big sample sizes (e.g., 1 million) might expose other problems
with the program.
-- "-H" option will dump the histogram for additional statistical analysis.
+- The "-H" option will dump the histogram for additional statistical analysis.
See xgraph, ygraph, r-base (http://www.r-project.org/), pspp, or other
statistical math programs.
@@ -39,79 +54,68 @@ Architectures tested: i686, x86_64, ia64
-Test Descriptions
------------------
+===============================================================================
+4. Test Descriptions
+===============================================================================
-rdma_lat.c - latency test with RDMA write transactions
-rdma_bw.c - streaming BW test with RDMA write transactions
+rdma_lat.c latency test with RDMA write transactions
+rdma_bw.c streaming BW test with RDMA write transactions
The following tests are mainly useful for HW/SW benchmarking.
They are not intended as actual usage examples.
------------------
-
-send_lat.c - latency test with send transactions
-send_bw.c - BW test with send transactions
-write_lat.c - latency test with RDMA write transactions
-write_bw.c - BW test with RDMA write transactions
-read_lat.c - latency test with RDMA read transactions
-read_bw.c - BW test with RDMA read transactions
-
-Test's executable name starts with the general prefix ib_ (e.g. ib_write_lat).
-Build Tests
------------
+send_lat.c latency test with send transactions
+send_bw.c BW test with send transactions
+write_lat.c latency test with RDMA write transactions
+write_bw.c BW test with RDMA write transactions
+read_lat.c latency test with RDMA read transactions
+read_bw.c BW test with RDMA read transactions
-"make" to build all tests
+The executable name of each test starts with the general prefix "ib_",
+e.g., ib_write_lat.
- Debian: build-dep on linux-kernel-headers (for asm/timex.h file)
- build-dep on libibverbs-dev
- depends on libibverbs1
-
-
-Run Tests
----------
+Running Tests
+-------------
Prerequisites:
kernel 2.6
ib_uverbs (kernel module) matches libibverbs
- ("match" means binary compatible, but ideally same SVN rev)
- Debian: dpkg -i libibverbs1_0.1.0-1_ia64.deb
+ ("match" means binary compatible, but ideally of the same SVN rev)
Server: ./<test name> <options>
Client: ./<test name> <options> <server IP address>
- o IMPORTANT: The SAME OPTIONS must be passed to both server and client.
- o "--help" will list the available <options>.
- o <server address> is IPv4 or IPv6 address.
- You can use the IPoIB address if you have IPoIB configured.
-
-Common Options to all tests:
- -p, --port=<port> listen on/connect to port <port> (default 18515)
- -m, --mtu=<mtu> mtu size (default 1024)
- -d, --ib-dev=<dev> use IB device <dev> (default first device found)
- -i, --ib-port=<port> use port <port> of IB device (default 1)
- -s, --size=<size> size of message to exchange (default 1)
- -a, --all Run sizes from 2 till 2^23
- -t, --tx-depth=<dep> size of tx queue (default 50)
- -n, --iters=<iters> number of exchanges (at least 100, default 1000)
- -C, --report-cycles report times in cpu cycle units (default microseconds)
- -H, --report-histogram print out all results (default print summary only)
- -U, --report-unsorted (implies -H) print out unsorted results (default sorted)
+ o <server address> is IPv4 or IPv6 address. You can use the IPoIB
+ address if IPoIB is configured.
+ o --help lists the available <options>
+
+ *** IMPORTANT NOTE: The SAME OPTIONS must be passed to both server and client.
+
+
+Common Options to tests:
+ -p, --port=<port> listen on/connect to port <port> (default: 18515)
+ -m, --mtu=<mtu> mtu size (default: 1024)
+ -d, --ib-dev=<dev> use IB device <dev> (default: first device found)
+ -i, --ib-port=<port> use port <port> of IB device (default: 1)
+ -s, --size=<size> size of message to exchange (default: 1)
+ -a, --all run sizes from 2 till 2^23
+ -t, --tx-depth=<dep> size of tx queue (default: 50)
+ -g, --mcg send messages to multicast group 0xc001 (only available in send-UD)
+ -n, --iters=<iters> number of exchanges (at least 100, default: 1000)
+ -C, --report-cycles report times in cpu cycle units (default: microseconds)
+ -H, --report-histogram print out all results (default: print summary only)
+ -U, --report-unsorted (implies -H) print out unsorted results (default: sorted)
-V, --version display version number
-I, --inline_size=<size> max size of message to be sent in inline mode (default 400)
+ .-N, --no peak-bw cancel peak-bw calculation (default: peak-bw. only available in write_bw)
-You need to be running a Subnet Manager on the switch or one of the nodes
-in your fabric. To use the opensm tool for this purpose, run
- modprobe ib_umad
- opensm &
-on one of the nodes
-
-First load ib_uverbs on both client and server with something like:
- modprobe ib_uverbs
+ *** IMPORTANT NOTE: You need to be running a Subnet Manager on the switch or
+ on one of the nodes in your fabric.
-Then (e.g.) "ib_rdma_lat -C" on the server side.
-Lastly "ib_rdma_lat -C 10.0.1.31" on the client.
+Example:
+Run "ib_rdma_lat -C" on the server side.
+Then run "ib_rdma_lat -C <server IP address>" on the client.
ib_rdma_lat will exit on both server and client after printing results.
More information about the ewg
mailing list