CMTIME(1) | librdmacm | CMTIME(1) |
cmtime - RDMA CM connection steps timing test.
cmtime [-s server_address] [-b bind_address] [-c connections] [-p port_number] [-q base_qpn] [-r retries] [-t timeout_ms]
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.
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.
rdma_cm(7)
2017-04-28 | librdmacm |