rdma ioengine improvement
authorYufei Ren <renyufei83@gmail.com>
Tue, 23 Oct 2012 01:29:38 +0000 (21:29 -0400)
committerJens Axboe <axboe@kernel.dk>
Wed, 24 Oct 2012 06:31:55 +0000 (08:31 +0200)
commit7d7803fa331bec4b53edf7bfa3c70ccd7f2920d9
treec2ef82eedfb7589d1a28c8e433014abee2668382
parent40059399870da25608a6c0014d37c014550821ff
rdma ioengine improvement

1) Use fio shipped reentrant and thread-safe rand to replace buggy rand().
2) Add a pause time period before client start committing IOs.
In SEND/RECV test, it's a good practice to setup the iodepth of
of the RECV side deeper than that of the SEND side to
avoid RNR (receiver not ready) error. The
SEND side may send so many unsolicited message before
RECV side commits sufficient recv buffers into recv queue.
This may lead to RNR error. Here, SEND side pauses for a while
during which RECV side commits sufficient recv buffers.
3) Fix server thread hanging bug.
For RDMA WRITE/READ test, No IO bytes are accumulated in server side
during test. Server thread indicates its task completion by changing
its state into `done' as an alternitive. Add `td->done' checking in
do_io().
4) Some comments revision.
export EXTFLAGS and EXTLIBS with '+=".
explanation on exchanging steps of RDMA ioengine control messages.

All these changes are tested in 40Gbps RoCE and 56Gbps InfiniBand testbeds.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
backend.c
engines/rdma.c