engines: pvsync2 libaio io_uring: add support for RWF_NOWAIT
[fio.git] / engines / sync.c
index 65fd210cf108293e84f45057726c30e81881a751..339ba9997010ac4290ac9a5699ba26f7d4926710 100644 (file)
@@ -40,6 +40,7 @@ struct psyncv2_options {
        unsigned int hipri;
        unsigned int hipri_percentage;
        unsigned int uncached;
+       unsigned int nowait;
 };
 
 static struct fio_option options[] = {
@@ -73,6 +74,15 @@ static struct fio_option options[] = {
                .category = FIO_OPT_C_ENGINE,
                .group  = FIO_OPT_G_INVALID,
        },
+       {
+               .name   = "nowait",
+               .lname  = "RWF_NOWAIT",
+               .type   = FIO_OPT_BOOL,
+               .off1   = offsetof(struct psyncv2_options, nowait),
+               .help   = "Set RWF_NOWAIT for pwritev2/preadv2",
+               .category = FIO_OPT_C_ENGINE,
+               .group  = FIO_OPT_G_INVALID,
+       },
        {
                .name   = NULL,
        },
@@ -164,6 +174,8 @@ static enum fio_q_status fio_pvsyncio2_queue(struct thread_data *td,
                flags |= RWF_HIPRI;
        if (!td->o.odirect && o->uncached)
                flags |= RWF_UNCACHED;
+       if (o->nowait)
+               flags |= RWF_NOWAIT;
 
        iov->iov_base = io_u->xfer_buf;
        iov->iov_len = io_u->xfer_buflen;