/*
- * rdma engine
+ * RDMA I/O engine
*
- * RDMA IO engine using OFED library.
- * Support both RDMA memory semantic and channel semantic
- * in InfiniBand, RoCE and iWarp environment.
+ * RDMA I/O engine based on the IB verbs and RDMA/CM user space libraries.
+ * Supports both RDMA memory semantics and channel semantics
+ * for the InfiniBand, RoCE and iWARP protocols.
*
- * This is currently disabled. To enable it, execute:
+ * This I/O engine is disabled by default. To enable it, execute:
*
* $ export EXTFLAGS="-DFIO_HAVE_RDMA"
* $ export EXTLIBS="-libverbs -lrdmacm"
*
- * before running make. You'll need the OFED as well:
+ * before running make. You will need the Linux RDMA software as well, either
+ * from your Linux distributor or directly from openfabrics.org:
*
* http://www.openfabrics.org/downloads/OFED/
*
}
}
if (i == rd->io_u_flight_nr)
- log_err("fio: recv wr %ld not found\n",
+ log_err("fio: recv wr %" PRId64 " not found\n",
wc.wr_id);
else {
/* put the last one into middle of the list */
}
}
if (i == rd->io_u_flight_nr)
- log_err("fio: send wr %ld not found\n",
+ log_err("fio: send wr %" PRId64 " not found\n",
wc.wr_id);
else {
/* put the last one into middle of the list */
{
struct rdmaio_data *rd = td->io_ops->data;
struct ibv_send_wr *bad_wr;
+#if 0
enum ibv_wc_opcode comp_opcode;
comp_opcode = IBV_WC_RDMA_WRITE;
+#endif
int i, index;
struct rdma_io_u_data *r_io_u_d;
rdma_poll_wait(td, IBV_WC_RECV);
dprint(FD_IO, "fio: recv FINISH message\n");
- exit(0);
+ td->done = 1;
+ return 0;
}
return i;
/* soft limit */
if ((rl.rlim_cur != RLIM_INFINITY)
&& (rl.rlim_cur < td->orig_buffer_size)) {
- log_err("fio: soft RLIMIT_MEMLOCK is: %ld\n", rl.rlim_cur);
- log_err("fio: total block size is: %ld\n",
+ log_err("fio: soft RLIMIT_MEMLOCK is: %" PRId64 "\n",
+ rl.rlim_cur);
+ log_err("fio: total block size is: %zd\n",
td->orig_buffer_size);
/* try to set larger RLIMIT_MEMLOCK */
rl.rlim_cur = rl.rlim_max;