diff --git a/Makefile b/Makefile deleted file mode 100644 index 4fe250b..0000000 --- a/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -CC = gcc -CFLAGS = -Wall -O -DRDMA - -all: qperf - -qperf: qperf.o ip.o ib.o help.o - $(CC) -DRDMA -o $@ $^ -libverbs - -help.c: help.txt - ./mkhelp RDMA - -.PHONY: clean -clean: - rm -f *.o help.c qperf - -.PHONY: install -install: - cp qperf /usr/local/bin diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..0ae8019 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,6 @@ +SUBDIRS = src + +EXTRA_DIST = qperf.spec.in + +dist-hook: qperf.spec + cp qperf.spec $(distdir) diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..7cfb196 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,6 @@ +#!/bin/sh +# +touch AUTHORS NEWS README ChangeLog +aclocal && + automake --add-missing && + autoconf diff --git a/cleanup b/cleanup new file mode 100755 index 0000000..6b67b19 --- /dev/null +++ b/cleanup @@ -0,0 +1,23 @@ +#!/bin/sh +# autotools makes such a mess. +# +make clean +rm -r -f autom4te.cache +rm -f `cat <Makefile -CC = gcc $K_M64 -CFLAGS = -Wall -O $K_DEF_IB - -all: qperf qperf.1 - -qperf.1: help.txt - ./mkman >qperf.1 - -qperf: qperf.o ip.o $K_IB_O help.o - \$(CC) $K_DEF_IB -o \$@ \$^ $K_LIBS - -help.c: help.txt - ./mkhelp $K_IB - -.PHONY: clean -clean: - rm -f *.o help.c qperf qperf.1 - -.PHONY: install -install: - cp qperf /usr/local/bin -EOF diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..aed1c83 --- /dev/null +++ b/configure.in @@ -0,0 +1,10 @@ +AC_INIT(src/qperf.c) + +PACKAGE=qperf +VERSION=0.20.0 + +AM_INIT_AUTOMAKE($PACKAGE, $VERSION) + +AC_PROG_CC + +AC_OUTPUT(Makefile src/Makefile) diff --git a/qperf.spec b/qperf.spec new file mode 100644 index 0000000..389b04c --- /dev/null +++ b/qperf.spec @@ -0,0 +1,38 @@ +Name: qperf +Summary: Measure RMDA and IP performance +Version: 0.2.0 +Release: 1 +License: BSD 3-Clause, GPL v2 +Group: Networking/Diagnostic +Source: http://www.openfabrics.org/downloads/%{name}-%{version}.tar.gz +Url: http://www.openfabrics.org +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: libibverbs-devel + +%description +Measure RDMA and IP performance. + +%prep +%setup -q + +%build +%configure +export CFLAGS="$RPM_OPT_FLAGS" +%{__make} + +%install +install -D -m 0755 src/qperf $RPM_BUILD_ROOT%{_bindir}/qperf +install -D -m 0644 src/qperf.1 $RPM_BUILD_ROOT%{_mandir}/man1/qperf.1 + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(-, root, root) +%doc COPYING +%_bindir/qperf +%_mandir/man1/qperf.1* + +%changelog +* Sat Oct 20 2007 - johann@georgex.org +- Initial package diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..6ea6ea2 --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,16 @@ +bin_PROGRAMS = qperf + +AM_CFLAGS = -Wall -O -DRDMA + +qperf_SOURCES = qperf.c ip.c ib.c help.c qperf.h +qperf_LDADD = -libverbs +man_MANS = qperf.1 + +qperf.1: help.txt + ./mkman >qperf.1 + +help.c: help.txt + ./mkhelp RDMA + +clean-local: + -rm -f qperf.1 diff --git a/src/help.c b/src/help.c new file mode 100644 index 0000000..a8f818e --- /dev/null +++ b/src/help.c @@ -0,0 +1,840 @@ +/* + * This was generated from help.txt. Do not modify directly. + * + * Copyright (c) 2002-2007 Johann George. All rights reserved. + * Copyright (c) 2006-2007 QLogic Corporation. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +char *Usage[] ={ + "main", + "Synopsis\n" + " qperf\n" + " qperf SERVERNODE [OPTIONS] TESTS\n" + "Description\n" + " qperf measures bandwidth and latency between two nodes. It can w" + "ork\n" + " over TCP/IP as well as the RDMA transports. On one of the nodes," + " qperf\n" + " is typically run with no arguments designating it the server node" + ". One\n" + " may then run qperf on a client node to obtain measurements such a" + "s\n" + " bandwidth, latency and cpu utilization.\n" + "More Information\n" + " qperf --help examples Some examples of using qperf\n" + " qperf --help opts Summary of options\n" + " qperf --help options Description of options\n" + " qperf --help tests Short summary and description of test" + "s\n" + " qperf --help TESTNAME More information on test TESTNAME\n", + "author", + "Written by Johann George.\n", + "bugs", + "None of the RDMA tests are available if qperf is compiled without the" + " RDMA\n" + "libraries. The -f and the -Ar options are not yet implemented in mos" + "t of\n" + "the tests.\n", + "examples", + "In these examples, we first run qperf on a node called myserver in se" + "rver\n" + "mode by invoking it with no arguments. In all the subsequent example" + "s, we\n" + "run qperf on another node and connect to the server which we assume h" + "as a\n" + "hostname of myserver.\n" + " * To run a TCP bandwidth and latency test:\n" + " qperf myserver tcp_bw tcp_lat\n" + " * To run a SDP bandwidth test for 10 seconds:\n" + " qperf -t 10 myserver sdp_bw\n" + " * To run a UDP latency test and then cause the server to terminat" + "e:\n" + " qperf myserver udp_lat quit\n" + " * To measure the RDMA UD latency and bandwidth:\n" + " qperf myserver ud_lat ud_bw\n" + " * To measure RDMA UC bi-directional bandwidth:\n" + " qperf myserver rc_bi_bw\n", + "opts", + "--access_recv Mode (-Ar) Access receive data\n" + "--affinity PN (-a) Set processor affinity\n" + " --loc_affinity PN (-la) Set local processor affinity\n" + " --rem_affinity PN (-ra) Set remote processor affinity\n" + "--flip Mode (-f) Flip sender and receiver\n" + "--help Topic (-h) Get more information on a topic\n" + "--host Node (-H) Identify server node\n" + "--id Device:Port (-i) Set IB device and port\n" + " --loc_id Device:Port (-li) Set local IB device and port\n" + " --rem_id Device:Port (-ri) Set remote IB device and port\n" + "--listen_port Port (-lp) Set server listen port\n" + "--msg_size Size (-m) Set message size\n" + "--mtu_size Size (-M) Set MTU size (IB only)\n" + "--no_msgs Count (-n) Send Count messages\n" + "--poll Mode (-P) Set polling mode on/off\n" + " --loc_poll Mode (-lP) Set local polling mode on/off\n" + " --rem_poll Mode (-lP) Set remote polling mode on/off\n" + "--port Port (-p) Set TCP port used for tests\n" + "--precision Digits (-e) Set precision reported\n" + "--rate (-r) Set IB static rate\n" + " --loc_rate (-lr) Set local IB static rate\n" + " --rem_rate (-rr) Set remote IB static rate\n" + "--rd_atomic Count (-R) Set RDMA read/atomic count\n" + " --loc_rd_atomic Count (-lR) Set local RDMA read/atomic count" + "\n" + " --rem_rd_atomic Count (-rR) Set remote RDMA read/atomic count" + "\n" + "--sock_buf_size Size (-S) Set socket buffer size\n" + " --loc_sock_buf_size Size (-lS) Set local socket buffer size\n" + " --rem_sock_buf_size Size (-rS) Set remote socket buffer size\n" + "--time (-t) Set test duration\n" + "--timeout Time (-T) Set timeout\n" + " --loc_timeout Time (-lT) Set local timeout\n" + " --rem_timeout Time (-rT) Set remote timeout\n" + "--unify_nodes (-U) Unify nodes\n" + "--unify_units (-u) Unify units\n" + "--verbose (-v) Verbose; turn on all of -v[cstu]" + "\n" + " --verbose_conf (-vc) Show configuration information\n" + " --verbose_stat (-vs) Show statistical information\n" + " --verbose_time (-vt) Show timing information\n" + " --verbose_used (-vu) Show information on parameters\n" + " --verbose_more (-vv) More verbose; turn on all of -v[C" + "STU]\n" + " --verbose_more_conf (-vC) Show more configuration informati" + "on\n" + " --verbose_more_stat (-vS) Show more statistical information" + "\n" + " --verbose_more_time (-vT) Show more timing information\n" + " --verbose_more_used (-vU) Show more information on paramete" + "rs\n" + "--version (-V) Print out version\n" + "--wait Time (-W) Set time to wait for server\n", + "options", + "--access_recv Mode (-Ar)\n" + " If Mode is non-zero, data is accessed once received. Otherwise" + ", data\n" + " is ignored. By default, Mode is 0.\n" + "--affinity PN (-a)\n" + " Set processor affinity to PN. Processors are numbered sequenti" + "ally\n" + " from 0. If PN is \"any\", any processor is allowed otherwise t" + "he\n" + " processor is limited to the one specified.\n" + " --loc_affinity PN (-la)\n" + " Set local processor affinity to PN.\n" + " --rem_affinity PN (-ra)\n" + " Set remote processor affinity to PN.\n" + "--flip Mode (-f)\n" + " Cause sender and receiver to play opposite roles.\n" + "--help Topic (-h)\n" + " Print out information about Topic. To see the list of topics, " + "type\n" + " qperf --help\n" + "--host Host (-H)\n" + " Run test between the current node and the qperf running on node" + " Host.\n" + " This can also be specified as the first non-option argument.\n" + "--id Device:Port (-i)\n" + " Use InfiniBand Device and Port.\n" + " --loc_id Device:Port (-li)\n" + " Use local InfiniBand Device and Port.\n" + " --rem_id Device:Port (-ri)\n" + " Use remote InfiniBand Device and Port.\n" + "--listen_port Port (-lp)\n" + " Set the port we listen on to ListenPort. This must be set to t" + "he\n" + " same port on both the server and client machines. The default " + "value\n" + " is 19765.\n" + "--msg_size Size (-m)\n" + " Set the message size to Size. The default value varies by test" + ". It\n" + " is assumed that the value is specified in bytes however, a trai" + "ling\n" + " kib or K, mib or M, or gib or G indicates that the size is bein" + "g\n" + " specified in kibibytes, mebibytes or gibibytes respectively whi" + "le a\n" + " trailing kb or k, mb or m, or gb or g indicates kilobytes, mega" + "bytes\n" + " or gigabytes respectively.\n" + "--mtu_size Size (-M)\n" + " Set the MTU size. Only relevant to the RDMA UC/RC tests. Unit" + "s are\n" + " specified in the same manner as the --msg_size option.\n" + "--no_msgs N (-n)\n" + " Set test duration by number of messages sent instead of time.\n" + "--poll Mode (-P)\n" + " Turn polling mode on or off. This is only relevant to the RDMA" + " tests\n" + " and determines whether they poll or wait. If Mode is 0, they w" + "ait;\n" + " otherwise they poll.\n" + " --loc_poll Mode (-lP)\n" + " Locally turn polling mode on or off.\n" + " --rem_poll Mode (-rP)\n" + " Remotely turn polling mode on or off.\n" + "--port Port (-p)\n" + " Use Port to run the socket tests. This is different from\n" + " --listen_port which is used for synchronization. This is only" + "\n" + " relevant for the socket tests and refers to the TCP/UDP/SDP/RDS" + " port\n" + " that the test is run on.\n" + "--precision Digits (-e)\n" + " Set the number of significant digits that are used to report re" + "sults.\n" + "--rate Rate (-r)\n" + " Force InfiniBand static rate. Rate can be one of: 2.5, 5, 10, " + "20,\n" + " 30, 40, 60, 80, 120, 1xSDR (2.5 Gbps), 1xDDR (5 Gbps), 1xQDR (1" + "0\n" + " Gbps), 4xSDR (2.5 Gbps), 4xDDR (5 Gbps), 4xQDR (10 Gbps), 8xSDR" + " (2.5\n" + " Gbps), 8xDDR (5 Gbps), 8xQDR (10 Gbps).\n" + " --loc_rate (-lr)\n" + " Force local InfiniBand static rate\n" + " --rem_rate (-rr)\n" + " Force remote InfiniBand static rate\n" + "--rd_atomic Count (-R)\n" + " Set the number of in-flight operations that can be handled for " + "a RDMA\n" + " read or atomic operation. This is only relevant to the RDMA te" + "sts.\n" + " --loc_rd_atomic Count (-lR)\n" + " Set local read/atomic count.\n" + " --rem_rd_atomic Count (-rR)\n" + " Set remote read/atomic count.\n" + "--sock_buf_size Size (-S)\n" + " Set the socket buffer size. This is only relevant to the socke" + "t\n" + " tests.\n" + " --loc_sock_buf_size Size (-lS)\n" + " Set local socket buffer size.\n" + " --rem_sock_buf_size Size (-rS)\n" + " Set remote socket buffer size.\n" + "--time Time (-t)\n" + " Set test duration to Time. Specified in seconds however a trai" + "ling\n" + " m, h or d indicates that the time is specified in minutes, hour" + "s or\n" + " days respectively.\n" + "--timeout Time (-T)\n" + " Set timeout to Time. This is the timeout used for various thin" + "gs\n" + " such as exchanging messages. The default is 5 seconds.\n" + " --loc_timeout Time (-lT)\n" + " Set local timeout to Time.\n" + " --rem_timeout Time (-rT)\n" + " Set local timeout to Time.\n" + "--unify_nodes (-U)\n" + " Unify the nodes. Describe them in terms of local and remote ra" + "ther\n" + " than send and receive.\n" + "--unify_units (-u)\n" + " Unify the units that results are shown in. Uses the lowest com" + "mon\n" + " denominator. Helpful for scripts.\n" + "--verbose (-v)\n" + " Provide more detailed output. Turns on -vc, -vs, -vt and -vu." + "\n" + " --verbose_conf (-vc)\n" + " Provide information on configuration.\n" + " --verbose_stat (-vs)\n" + " Provide information on statistics.\n" + " --verbose_stat (-vt)\n" + " Provide information on timing.\n" + " --verbose_stat (-vu)\n" + " Provide information on parameters used.\n" + " --verbose_more (-vv)\n" + " Provide even more detailed output. Turns on -vC, -vS, -vT and " + "-vU.\n" + " --verbose_conf (-vC)\n" + " Provide more information on configuration.\n" + " --verbose_stat (-vS)\n" + " Provide more information on statistics.\n" + " --verbose_stat (-vT)\n" + " Provide more information on timing.\n" + " --verbose_stat (-vU)\n" + " Provide more information on parameters used.\n" + "--version (-V)\n" + " The current version of qperf is printed.\n" + "--wait Time (-W)\n" + " If the server is not ready, continue to try connecting for Time" + "\n" + " seconds before giving up.\n", + "tests", + "Miscellaneous\n" + " conf Show configuration\n" + " quit Cause the server to quit\n" + "Socket Based\n" + " tcp_bw TCP streaming one way bandwidth\n" + " tcp_lat TCP one way latency\n" + " udp_bw UDP streaming one way bandwidth\n" + " udp_lat UDP one way latency\n" + " sdp_bw SDP streaming one way bandwidth\n" + " sdp_lat SDP one way latency\n" + " rds_bw RDS streaming one way bandwidth\n" + " rds_lat RDS one way latency\n" + "RDMA Send/Receive\n" + " ud_bw UD streaming one way bandwidth\n" + " ud_bi_bw UD streaming two way bandwidth\n" + " ud_lat UD one way latency\n" + " rc_bw RC streaming one way bandwidth\n" + " rc_bi_bw RC streaming two way bandwidth\n" + " rc_lat RC one way latency\n" + " uc_bw UC streaming one way bandwidth\n" + " uc_bi_bw UC streaming two way bandwidth\n" + " uc_lat UC one way latency\n" + "RDMA\n" + " rc_rdma_read_bw RC RDMA read streaming one way bandwidth" + "\n" + " rc_rdma_read_lat RC RDMA read one way latency\n" + " rc_rdma_write_bw RC RDMA write streaming one way bandwidth" + "\n" + " rc_rdma_write_lat RC RDMA write one way latency\n" + " rc_rdma_write_poll_lat RC RDMA write one way polling latency\n" + " uc_rdma_write_bw UC RDMA write streaming one way bandwidth" + "\n" + " uc_rdma_write_lat UC RDMA write one way latency\n" + " uc_rdma_write_poll_lat UC RDMA write one way polling latency\n" + "InfiniBand Atomics\n" + " rc_compare_swap_mr RC compare and swap messaging rate\n" + " rc_fetch_add_mr RC fetch and add messaging rate\n" + "Verification\n" + " ver_rc_compare_swap verify RC compare and swap\n" + " ver_rc_fetch_add verify RC fetch and add\n", + "conf", + "Purpose\n" + " Show configuration\n" + "Common Options\n" + " None\n" + "Description\n" + " Shows the node name, CPUs and OS of both nodes being used.\n", + "quit", + "Purpose\n" + " Quit\n" + "Common Options\n" + " None\n" + "Description\n" + " Causes the server to quit.\n", + "tcp_bw", + "Purpose\n" + " TCP streaming one way bandwidth\n" + "Common Options\n" + " --affinity PN (-a) set processor affinity\n" + " --msg_size Size (-m) set message size\n" + " --sock_buf_size Size (-S) set socket buffer size\n" + " --time (-t) set test duration\n" + "Other Options\n" + " --listen_port, --port, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client repeatedly sends messages to the server while the serv" + "er\n" + " notes how many were received.\n", + "tcp_lat", + "Purpose\n" + " TCP one way latency\n" + "Common Options\n" + " --affinity PN (-a) set processor affinity\n" + " --msg_size Size (-m) set message size\n" + " --sock_buf_size Size (-S) set socket buffer size\n" + " --time (-t) set test duration\n" + "Other Options\n" + " --listen_port, --port, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " A ping pong latency test where the server and client exchange mes" + "sages\n" + " repeatedly using TCP sockets.\n", + "udp_bw", + "Purpose\n" + " UDP streaming one way bandwidth\n" + "Common Options\n" + " --affinity PN (-a) set processor affinity\n" + " --msg_size Size (-m) set message size\n" + " --sock_buf_size Size (-S) set socket buffer size\n" + " --time (-t) set test duration\n" + "Other Options\n" + " --listen_port, --port, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client repeatedly sends messages to the server while the serv" + "er\n" + " notes how many were received.\n", + "udp_lat", + "Purpose\n" + " UDP one way latency\n" + "Common Options\n" + " --affinity PN (-a) set processor affinity\n" + " --msg_size Size (-m) set message size\n" + " --sock_buf_size Size (-S) set socket buffer size\n" + " --time (-t) set test duration\n" + "Other Options\n" + " --listen_port, --port, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " A ping pong latency test where the server and client exchange mes" + "sages\n" + " repeatedly using UDP sockets.\n", + "sdp_bw", + "Purpose\n" + " SDP streaming one way bandwidth\n" + "Common Options\n" + " --affinity PN (-a) set processor affinity\n" + " --msg_size Size (-m) set message size\n" + " --sock_buf_size Size (-S) set socket buffer size\n" + " --time (-t) set test duration\n" + "Other Options\n" + " --listen_port, --port, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client repeatedly sends messages to the server while the serv" + "er\n" + " notes how many were received.\n", + "sdp_lat", + "Purpose\n" + " SDP one way latency\n" + "Common Options\n" + " --affinity PN (-a) set processor affinity\n" + " --msg_size Size (-m) set message size\n" + " --sock_buf_size Size (-S) set socket buffer size\n" + " --time (-t) set test duration\n" + "Other Options\n" + " --listen_port, --port, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " A ping pong latency test where the server and client exchange mes" + "sages\n" + " repeatedly using SDP sockets.\n", + "rds_bw", + "Purpose\n" + " RDS streaming one way bandwidth\n" + "Common Options\n" + " --affinity PN (-a) set processor affinity\n" + " --msg_size Size (-m) set message size\n" + " --sock_buf_size Size (-S) set socket buffer size\n" + " --time (-t) set test duration\n" + "Other Options\n" + " --listen_port, --port, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client repeatedly sends messages to the server while the serv" + "er\n" + " notes how many were received.\n", + "rds_lat", + "Purpose\n" + " RDS one way latency\n" + "Common Options\n" + " --affinity PN (-a) set processor affinity\n" + " --msg_size Size (-m) set message size\n" + " --sock_buf_size Size (-S) set socket buffer size\n" + " --time (-t) set test duration\n" + "Other Options\n" + " --listen_port, --port, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " A ping pong latency test where the server and client exchange mes" + "sages\n" + " repeatedly using RDS sockets.\n", + "ud_bw", + "Purpose\n" + " UD streaming one way bandwidth\n" + "Common Options\n" + " --access_recv OnOff (-Ar) Access receive data\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client sends messages to the server who notes how many it rec" + "eived.\n" + " The UD Send/Receive mechanism is used.\n", + "ud_bi_bw", + "Purpose\n" + " UD streaming two way bandwidth\n" + "Common Options\n" + " --access_recv OnOff (-Ar) Access receive data\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " Both the client and server exchange messages with each other usin" + "g the\n" + " UD Send/Receive mechanism and note how many were received.\n", + "ud_lat", + "Purpose\n" + " UD one way latency\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " A ping pong latency test where the server and client exchange mes" + "sages\n" + " repeatedly using UD Send/Receive.\n", + "rc_bw", + "Purpose\n" + " RC streaming one way bandwidth\n" + "Common Options\n" + " --access_recv OnOff (-Ar) Access receive data\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client sends messages to the server who notes how many it rec" + "eived.\n" + " The RC Send/Receive mechanism is used.\n", + "rc_bi_bw", + "Purpose\n" + " RC streaming two way bandwidth\n" + "Common Options\n" + " --access_recv OnOff (-Ar) Access receive data\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " Both the client and server exchange messages with each other usin" + "g the\n" + " RC Send/Receive mechanism and note how many were received.\n", + "rc_lat", + "Purpose\n" + " RC one way latency\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " A ping pong latency test where the server and client exchange mes" + "sages\n" + " repeatedly using RC Send/Receive.\n", + "uc_bw", + "Purpose\n" + " UC streaming one way bandwidth\n" + "Common Options\n" + " --access_recv OnOff (-Ar) Access receive data\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client sends messages to the server who notes how many it rec" + "eived.\n" + " The UC Send/Receive mechanism is used.\n", + "uc_bi_bw", + "Purpose\n" + " UC streaming two way bandwidth\n" + "Common Options\n" + " --access_recv OnOff (-Ar) Access receive data\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " Both the client and server exchange messages with each other usin" + "g the\n" + " UC Send/Receive mechanism and note how many were received.\n", + "uc_lat", + "Purpose\n" + " UC one way latency\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " A ping pong latency test where the server and client exchange mes" + "sages\n" + " repeatedly using UC Send/Receive.\n", + "rc_rdma_read_bw", + "Purpose\n" + " RC RDMA read streaming one way bandwidth\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --rd_atomic, --tim" + "eout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client repeatedly performs RC RDMA Read operations and notes " + "how\n" + " many of them complete.\n", + "rc_rdma_read_lat", + "Purpose\n" + " RC RDMA read one way latency\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client repeatedly performs RC RDMA Read operations waiting fo" + "r\n" + " completion before starting the next one.\n", + "rc_rdma_write_bw", + "Purpose\n" + " RC RDMA write streaming one way bandwidth\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client repeatedly performs RC RDMA Write operations and notes" + " how\n" + " many of them complete.\n", + "rc_rdma_write_lat", + "Purpose\n" + " RC RDMA write one way latency\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " A ping pong latency test where the server and client exchange mes" + "sages\n" + " using RC RDMA write operations.\n", + "rc_rdma_write_poll_lat", + "Purpose\n" + " RC RDMA write one way polling latency\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " A ping pong latency test using RC RDMA Write operations. First t" + "he\n" + " client performs an RDMA Write while the server stays in a tight l" + "oop\n" + " waiting for the memory buffer to change. The first and last byte" + "s of\n" + " the memory buffer are tested to ensure that the entire message wa" + "s\n" + " received. This is then repeated with both sides playing opposite" + "\n" + " roles. Since this always polls, the -P (--poll) flag has no effe" + "ct.\n", + "uc_rdma_write_bw", + "Purpose\n" + " UC RDMA write streaming one way bandwidth\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client repeatedly performs UC RDMA Write operations and notes" + " how\n" + " many of them complete.\n", + "uc_rdma_write_lat", + "Purpose\n" + " UC RDMA write one way latency\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " A ping pong latency test where the server and client exchange mes" + "sages\n" + " using UC RDMA write operations.\n", + "uc_rdma_write_poll_lat", + "Purpose\n" + " UC RDMA write one way polling latency\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --msg_size Size (-m) Set message size\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --timeout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " A ping pong latency test using UC RDMA Write operations. First t" + "he\n" + " client performs an RDMA Write while the server stays in a tight l" + "oop\n" + " waiting for the memory buffer to change. The first and last byte" + "s of\n" + " the memory buffer are tested to ensure that the entire message wa" + "s\n" + " received. This is then repeated with both sides playing opposite" + "\n" + " roles. Since this always polls, the -P (--poll) flag has no effe" + "ct.\n", + "rc_compare_swap_mr", + "Purpose\n" + " RC compare and swap messaging rate\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --rd_atomic, --tim" + "eout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client repeatedly performs the RC Atomic Compare and Swap ope" + "ration\n" + " and determines how many of them complete.\n", + "rc_fetch_add_mr", + "Purpose\n" + " RC fetch and add messaging rate\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --rd_atomic, --tim" + "eout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " The client repeatedly performs the RC Atomic Fetch and Add operat" + "ion\n" + " and determines how many of them complete.\n", + "ver_rc_compare_swap", + "Purpose\n" + " Verify RC compare and swap\n" + "Common Options\n" + " --id Device:Port (-i) Set IB device and port\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --rd_atomic, --tim" + "eout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " Test the RC Compare and Swap Atomic operation. The server's memo" + "ry\n" + " location starts with zero and the client successively exchanges, " + "0 for\n" + " 1, 1 for 2, etc. The results are checked for correctness.\n", + "ver_rc_fetch_add", + "Purpose\n" + " Verify RC fetch and add\n" + "Common Options\n" + " --affinity PN (-a) Set processor affinity\n" + " --id Device:Port (-i) Set IB device and port\n" + " --poll OnOff (-P) Set polling mode on/off\n" + " --time (-t) Set test duration\n" + "Other Options\n" + " --affinity, --listen_port, --mtu_size, --rate, --rd_atomic, --tim" + "eout\n" + "Display Options\n" + " --precision, --unify_nodes, --unify_units, --verbose\n" + "Description\n" + " Tests the RC Fetch and Add Atomic operation. The server's memory" + "\n" + " location starts with zero and the client successively adds one. " + "The\n" + " results are checked for correctness.\n", + 0, +}; diff --git a/help.txt b/src/help.txt similarity index 100% rename from help.txt rename to src/help.txt diff --git a/ib.c b/src/ib.c similarity index 100% rename from ib.c rename to src/ib.c diff --git a/ip.c b/src/ip.c similarity index 100% rename from ip.c rename to src/ip.c diff --git a/mkhelp b/src/mkhelp similarity index 100% rename from mkhelp rename to src/mkhelp diff --git a/mkman b/src/mkman similarity index 99% rename from mkman rename to src/mkman index bb3bc36..e745c00 100755 --- a/mkman +++ b/src/mkman @@ -91,7 +91,7 @@ sub do_examples ($$) { printn '.TP'; printn $1; s/^\s+//m; - printn $_; + print $_; } } diff --git a/qperf.c b/src/qperf.c similarity index 99% rename from qperf.c rename to src/qperf.c index 43f4873..307e882 100644 --- a/qperf.c +++ b/src/qperf.c @@ -1,6 +1,6 @@ /* * qperf - main. - * Run performance tests over TCP/IP and RDMA. + * Measure IP and RDMA performance. * * Copyright (c) 2002-2007 Johann George. All rights reserved. * Copyright (c) 2006-2007 QLogic Corporation. All rights reserved. diff --git a/qperf.h b/src/qperf.h similarity index 100% rename from qperf.h rename to src/qperf.h