Skip to contentSkip to conversation

fabrics: add option to override drivers queue depth

PATCH New Johannes Thumshirn 3 participants 4 messages May 10, 2017 – May 11, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fabrics: add option to override drivers queue depth

Currently it is not possible to override the fabrics drivers default queue depth with the nvme userspace utility, but only when manually writing the parameters to the /dev/nvme-fabrics character device.

Add an option to override the drivers default queue depth for NVMe over fabrics.

Signed-off-by Johannes Thumshirn <jthumshirn at suse.de>
---
 Documentation/nvme-connect.txt |  6 ++++++
 fabrics.c                      | 11 +++++++++++
 2 files changed, 17 insertions(+)
Documentation/nvme-connect.txt +6 -0
index 38fae39..a746a3a 100644
@@ -16,6 +16,7 @@ SYNOPSIS
 		[--host-traddr=<traddr>   | -w <traddr>]
 		[--hostnqn=<hostnqn>      | -q <hostnqn>]
 		[--nr-io-queues=<#>       | -i <#>]
+		[--queue-size=<#>         | -Q <#>]
 		[--keep-alive-tmo=<#>     | -k <#>]
 		[--reconnect-delay=<#>    | -c <#>]
 
@@ -73,6 +74,11 @@ OPTIONS
 --nr-io-queues=<#>::
 	Overrides the default number of I/O queues create by the driver.
 
+-Q <#>::
+--queue-size=<#>::
+	Overrides the default number of elements in the I/O queues created
+	by the driver.
+
 -k <#>::
 --keep-alive-tmo=<#>::
 	Overrides the default keep alive timeout (in seconds).
fabrics.c +11 -0
index 6648bae..a826ecc 100644
@@ -52,6 +52,7 @@ static struct config {
 	char *host_traddr;
 	char *hostnqn;
 	char *nr_io_queues;
+	char *queue_size;
 	char *keep_alive_tmo;
 	char *reconnect_delay;
 	char *raw;
@@ -524,6 +525,15 @@ static int build_options(char *argstr, int max_len)
 		max_len -= len;
 	}
 
+	if (cfg.queue_size) {
+		len = snprintf(argstr, max_len, ",queue_size=%s",
+				cfg.queue_size);
+		if (len < 0)
+			return -EINVAL;
+		argstr += len;
+		max_len -= len;
+	}
+
 	if (cfg.keep_alive_tmo) {
 		len = snprintf(argstr, max_len, ",keep_alive_tmo=%s", cfg.keep_alive_tmo);
 		if (len < 0)
@@ -805,6 +815,7 @@ int connect(const char *desc, int argc, char **argv)
 		{"host-traddr",     'w', "LIST", CFG_STRING, &cfg.host_traddr,     required_argument, "host traddr (e.g. FC WWN's)" },
 		{"hostnqn",         'q', "LIST", CFG_STRING, &cfg.hostnqn,         required_argument, "user-defined hostnqn" },
 		{"nr-io-queues",    'i', "LIST", CFG_STRING, &cfg.nr_io_queues,    required_argument, "number of io queues to use (default is core count)" },
+		{"queue-size",      'Q', "LIST", CFG_STRING, &cfg.queue_size,      required_argument, "number of io queue elements to use (default 128)" },
 		{"keep-alive-tmo",  'k', "LIST", CFG_STRING, &cfg.keep_alive_tmo,  required_argument, "keep alive timeout period in seconds" },
 		{"reconnect-delay", 'c', "LIST", CFG_STRING, &cfg.reconnect_delay, required_argument, "reconnect timeout period in seconds" },
 		{NULL},
Signature · 1 line
1.8.5.6
#1 lore raw

PATCH 1/1 fabrics: add option to override drivers queue depth

Quoted 6 lines · Johannes Thumshirn

Currently it is not possible to override the fabrics drivers default queue depth with the nvme userspace utility, but only when manually writing the parameters to the /dev/nvme-fabrics character device.

Add an option to override the drivers default queue depth for NVMe over fabrics.

Looks fine, but we should probably also add this to connect-all.

#2 lore raw

PATCH 1/1 fabrics: add option to override drivers queue depth

Quoted 9 lines · Christoph Hellwig
Quoted 6 lines · Johannes Thumshirn

Currently it is not possible to override the fabrics drivers default queue depth with the nvme userspace utility, but only when manually writing the parameters to the /dev/nvme-fabrics character device.

Add an option to override the drivers default queue depth for NVMe over fabrics.

Looks fine, but we should probably also add this to connect-all.

Agreed. I applied the one as-is, and will apply the connect-all update when that's posted.

#3 lore raw

PATCH 1/1 fabrics: add option to override drivers queue depth

Quoted 2 lines · Keith Busch

Agreed. I applied the one as-is, and will apply the connect-all update when that's posted.

OK, I'll send a connect-all version as well.

Thanks,
Johannes

Signature · 6 lines
Johannes Thumshirn                                          Storage
jthumshirn at suse.de                                +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N?rnberg
GF: Felix Imend?rffer, Jane Smithard, Graham Norton
HRB 21284 (AG N?rnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850