]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
fabrics: pass in number of polling queues
authorSagi Grimberg <sagi@grimberg.me>
Thu, 13 Dec 2018 06:10:52 +0000 (22:10 -0800)
committerKeith Busch <keith.busch@intel.com>
Wed, 2 Jan 2019 15:45:04 +0000 (08:45 -0700)
nr_poll_queues specifies the number of additional queues that will
be connected for hosting polling latency critical I/O.

Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Documentation/nvme-connect.txt
fabrics.c

index d4a0e6678475b5d88595b0d567360ec9aee207fe..5412472dbd35895c012a2318b0acd1b6c1066276 100644 (file)
@@ -17,6 +17,7 @@ SYNOPSIS
                [--hostnqn=<hostnqn>      | -q <hostnqn>]
                [--nr-io-queues=<#>       | -i <#>]
                [--nr-write-queues=<#>    | -W <#>]
+               [--nr-poll-queues=<#>     | -P <#>]
                [--queue-size=<#>         | -Q <#>]
                [--keep-alive-tmo=<#>     | -k <#>]
                [--reconnect-delay=<#>    | -c <#>]
@@ -80,6 +81,10 @@ OPTIONS
 --nr-write-queues=<#>::
        Adds additional queues that will be used for write I/O.
 
+-P <#>::
+--nr-poll-queues=<#>::
+       Adds additional queues that will be used for polling latency sensitive I/O.
+
 -Q <#>::
 --queue-size=<#>::
        Overrides the default number of elements in the I/O queues created
index c1f0198ed07b8334ce1a6db6c207b148531e3dfd..46edacab110fca9a2a7823352d469dc21e78d7cb 100644 (file)
--- a/fabrics.c
+++ b/fabrics.c
@@ -54,6 +54,7 @@ static struct config {
        char *hostid;
        int  nr_io_queues;
        int  nr_write_queues;
+       int  nr_poll_queues;
        int  queue_size;
        int  keep_alive_tmo;
        int  reconnect_delay;
@@ -610,6 +611,8 @@ static int build_options(char *argstr, int max_len)
                                cfg.nr_io_queues) ||
            add_int_argument(&argstr, &max_len, "nr_write_queues",
                                cfg.nr_write_queues) ||
+           add_int_argument(&argstr, &max_len, "nr_poll_queues",
+                               cfg.nr_poll_queues) ||
            add_int_argument(&argstr, &max_len, "queue_size", cfg.queue_size) ||
            add_int_argument(&argstr, &max_len, "keep_alive_tmo",
                                cfg.keep_alive_tmo) ||
@@ -690,6 +693,13 @@ retry:
                p += len;
        }
 
+       if (cfg.nr_poll_queues) {
+               len = sprintf(p, ",nr_poll_queues=%d", cfg.nr_poll_queues);
+               if (len < 0)
+                       return -EINVAL;
+               p += len;
+       }
+
        if (cfg.host_traddr) {
                len = sprintf(p, ",host_traddr=%s", cfg.host_traddr);
                if (len < 0)