Default to terse version 3
[fio.git] / ioengines.c
index 4c609f2b88ae4c537dc90489241808acd711fa1f..b43374e7afebb03a63d059fd5f09a36d582e67ba 100644 (file)
@@ -208,6 +208,16 @@ int td_io_getevents(struct thread_data *td, unsigned int min, unsigned int max,
 {
        int r = 0;
 
+       /*
+        * For ioengine=rdma one side operation RDMA_WRITE or RDMA_READ,
+        * server side gets a message from the client
+        * side that the task is finished, and
+        * td->done is set to 1 after td_io_commit(). In this case,
+        * there is no need to reap complete event in server side.
+        */
+       if (td->done)
+               return 0;
+
        if (min > 0 && td->io_ops->commit) {
                r = td->io_ops->commit(td);
                if (r < 0)
@@ -278,11 +288,12 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u)
         */
        if (io_u->error == EINVAL && td->io_issues[io_u->ddir & 1] == 1 &&
            td->o.odirect) {
+
                log_info("fio: first direct IO errored. File system may not "
                         "support direct IO, or iomem_align= is bad.\n");
        }
 
-       if (!td->io_ops->commit) {
+       if (!td->io_ops->commit || ddir_trim(io_u->ddir)) {
                io_u_mark_submit(td, 1);
                io_u_mark_complete(td, 1);
        }
@@ -291,8 +302,7 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u)
                if (ddir_rw(io_u->ddir)) {
                        io_u_mark_depth(td, 1);
                        td->ts.total_io_u[io_u->ddir]++;
-               } else if (io_u->ddir == DDIR_TRIM)
-                       td->ts.total_io_u[2]++;
+               }
        } else if (ret == FIO_Q_QUEUED) {
                int r;