cmtime(1) — Linux manual page
CMTIME(1) librdmacm CMTIME(1)
NAME
cmtime - RDMA CM connection steps timing test.
SYNOPSIS
cmtime [-s server_address] [-b bind_address]
[-c connections] [-p port_number]
[-q base_qpn]
[-r retries] [-t timeout_ms]
DESCRIPTION
Determines min, max, and average times for various "steps" in
RDMA CM connection setup and teardown between a client and server
application.
"Steps" that are timed are: create ID, bind address, resolve
address, resolve route, create QP, modify QP to INIT, modify QP
to RTR, modify QP to RTS, CM connect, client establish,
disconnect, destroy QP, and destroy ID.
Many operations are asynchronous, allowing progress on multiple
connections simultanesously. The 'sum' output adds the time that
all connections took for a given step. The average 'us/conn' is
the sum divided by the number of connections. This is useful to
identify steps which take a significant amount of time. The min
and max values are the smallest and largest times that any single
connection took to complete a given step.
The 'total' and 'avg/iter' times measure the time to complete a
given step for all connections. These two values take into
account asynchronous operations. For steps which are serial, the
total and sum values will be roughly the same. For asynchronous
steps, the total may be significantly lower than the sum, as
multiple connections will be in progress simultanesously. The
avg/iter is the total time divided by the number of connections.
In many cases, times may not be available or only available on
the client. Is such situations, the output will show 0.
OPTIONS
-s server_address
The network name or IP address of the server system
listening for connections. The used name or address must
route over an RDMA device. This option must be specified
by the client.
-b bind_address
The local network address to bind to.
-c connections
The number of connections to establish between the client
and server. (default 100)
-p port_number
The server's port number.
-q base_qpn
The first QP number to use when creating connections
without allocating hardware QPs. The test will use the
values between base_qpn and base_qpn plus connections when
connecting. (default 1000)
-n num_threads
Sets the number of threads to spawn used to process
connection events and hardware operations. (default 1)
-m mimic_qp_delay_us
"Simulates" QP creation and modify calls by replacing them
with a simple sleep function instead. This allows testing
the CM at larger scale than would be practical, or even
possible given system configuration settings, if HW
resources needed to be allocated.
-r retries
Number of retries when resolving address or route.
(default 2)
-S Run connection rate test using sockets. This provides a
baseline comparison of RDMA connections versus TCP
connections. Sockets are set to blocking mode.
-t timeout_ms
Timeout in millseconds (ms) when resolving address or
route. (default 2000 - 2 seconds)
NOTES
Basic usage is to start cmtime on a server system, then run
cmtime -s server_name on a client system.
Because this test maps RDMA resources to userspace, users must
ensure that they have available system resources and permissions.
See the libibverbs README file for additional details.
SEE ALSO
rdma_cm(7)
COLOPHON
This page is part of the rdma-core (RDMA Core Userspace Libraries
and Daemons) project. Information about the project can be found
at ⟨https://github.com/linux-rdma/rdma-core⟩. If you have a bug
report for this manual page, send it to
linux-rdma@vger.kernel.org. This page was obtained from the
project's upstream Git repository
⟨https://github.com/linux-rdma/rdma-core.git⟩ on 2024-06-14. (At
that time, the date of the most recent commit that was found in
the repository was 2024-06-10.) If you discover any rendering
problems in this HTML version of the page, or you believe there
is a better or more up-to-date source for the page, or you have
corrections or improvements to the information in this COLOPHON
(which is not part of the original manual page), send a mail to
man-pages@man7.org