fix: io_uring sqpoll issue_time empty when kernel not yet read sq
[fio.git] / engines / xnvme.c
index ee6b67c1223075a9001ca1209da0e5b420758345..bb92a121dc7f6fdaf248a8b35ac0a7251b859eb4 100644 (file)
@@ -75,9 +75,11 @@ struct xnvme_fioe_options {
        unsigned int xnvme_dev_nsid;
        unsigned int xnvme_iovec;
        char *xnvme_be;
+       char *xnvme_mem;
        char *xnvme_async;
        char *xnvme_sync;
        char *xnvme_admin;
+       char *xnvme_dev_subnqn;
 };
 
 static struct fio_option options[] = {
@@ -108,6 +110,15 @@ static struct fio_option options[] = {
                .category = FIO_OPT_C_ENGINE,
                .group = FIO_OPT_G_XNVME,
        },
+       {
+               .name = "xnvme_mem",
+               .lname = "xNVMe Memory Backend",
+               .type = FIO_OPT_STR_STORE,
+               .off1 = offsetof(struct xnvme_fioe_options, xnvme_mem),
+               .help = "Select xNVMe memory backend",
+               .category = FIO_OPT_C_ENGINE,
+               .group = FIO_OPT_G_XNVME,
+       },
        {
                .name = "xnvme_async",
                .lname = "xNVMe Asynchronous command-interface",
@@ -145,6 +156,15 @@ static struct fio_option options[] = {
                .category = FIO_OPT_C_ENGINE,
                .group = FIO_OPT_G_XNVME,
        },
+       {
+               .name = "xnvme_dev_subnqn",
+               .lname = "Subsystem nqn for Fabrics",
+               .type = FIO_OPT_STR_STORE,
+               .off1 = offsetof(struct xnvme_fioe_options, xnvme_dev_subnqn),
+               .help = "Subsystem NQN for Fabrics",
+               .category = FIO_OPT_C_ENGINE,
+               .group = FIO_OPT_G_XNVME,
+       },
        {
                .name = "xnvme_iovec",
                .lname = "Vectored IOs",
@@ -181,7 +201,9 @@ static struct xnvme_opts xnvme_opts_from_fioe(struct thread_data *td)
        struct xnvme_opts opts = xnvme_opts_default();
 
        opts.nsid = o->xnvme_dev_nsid;
+       opts.subnqn = o->xnvme_dev_subnqn;
        opts.be = o->xnvme_be;
+       opts.mem = o->xnvme_mem;
        opts.async = o->xnvme_async;
        opts.sync = o->xnvme_sync;
        opts.admin = o->xnvme_admin;