Add logging for queue submit and complet counts
[fio.git] / engines / sync.c
index 505381d4ca942b932d7171393a2dc8f51c558726..e966846cd34c3d560b3c03e2177e42d1a65cb0dc 100644 (file)
@@ -30,8 +30,6 @@ static int fio_syncio_prep(struct thread_data *td, struct io_u *io_u)
 
        if (io_u->ddir == DDIR_SYNC)
                return 0;
-       if (io_u->offset == f->last_completed_pos)
-               return 0;
 
        if (lseek(f->fd, io_u->offset, SEEK_SET) == -1) {
                td_verror(td, errno, "lseek");
@@ -157,6 +155,11 @@ static int fio_vsyncio_queue(struct thread_data *td, struct io_u *io_u)
                 */
                if (sd->queued)
                        return FIO_Q_BUSY;
+               if (io_u->ddir == DDIR_SYNC) {
+                       int ret = fsync(io_u->file->fd);
+
+                       return fio_io_end(td, io_u, ret);
+               }
 
                sd->queued = 0;
                sd->queued_bytes = 0;
@@ -227,6 +230,7 @@ static int fio_vsyncio_commit(struct thread_data *td)
        if (!sd->queued)
                return 0;
 
+       io_u_mark_submit(td, sd->queued);
        f = sd->last_file;
 
        if (lseek(f->fd, sd->io_us[0]->offset, SEEK_SET) == -1) {