* [PATCH] nvme-cli: nvmf-autoconnect: udev-rule: add a file for new arrays
@ 2025-08-15 20:21 Xose Vazquez Perez
2025-08-16 17:15 ` Xose Vazquez Perez
0 siblings, 1 reply; 2+ messages in thread
From: Xose Vazquez Perez @ 2025-08-15 20:21 UTC (permalink / raw)
Cc: Xose Vazquez Perez, Wayne Berthiaume, Vasuki Manikarnike,
Martin George, NetApp RDAC team, Zou Ming, Li Xiaokeng,
Randy Jennings, Thomas Song, Jyoti Rani, Brian Bunker,
Uday Shankar, Chaitanya Kulkarni, Sagi Grimberg, Keith Busch,
Christoph Hellwig, Marco Patalano, Ewan D. Milne, John Meneghini,
Simon Schricker, Daniel Wagner, Daniel Wagner, Hannes Reinecke,
Martin Wilck, Benjamin Marzinski, NVME-ML, SCSI-ML, DM_DEVEL-ML
One file per vendor, or device, is a bit excessive for two-four rules.
If possible, select round-robin (>=5.1), or queue-depth (>=6.11).
round-robin is a basic selector, and only works well under ideal conditions.
A nvme benchmark, round-robin vs queue-depth, shows how bad it is:
https://marc.info/?l=linux-kernel&m=171931850925572
https://marc.info/?l=linux-kernel&m=171931852025575
https://github.com/johnmeneghini/iopolicy/?tab=readme-ov-file#sample-data
https://people.redhat.com/jmeneghi/ALPSS_2023/NVMe_QD_Multipathing.pdf
And it is unnecessary to set ctrl_loss_tmo to -1 for NVMe/TCP devices,
because it is the default.
Cc: Wayne Berthiaume <Wayne.Berthiaume@dell.com>
Cc: Vasuki Manikarnike <vasuki.manikarnike@hpe.com>
Cc: Martin George <marting@netapp.com>
Cc: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com>
Cc: Zou Ming <zouming.zouming@huawei.com>
Cc: Li Xiaokeng <lixiaokeng@huawei.com>
Cc: Randy Jennings <randyj@purestorage.com>
Cc: Thomas Song <tsong@purestorage.com>
Cc: Jyoti Rani <jrani@purestorage.com>
Cc: Brian Bunker <brian@purestorage.com>
Cc: Uday Shankar <ushankar@purestorage.com>
Cc: Chaitanya Kulkarni <kch@nvidia.com>
Cc: Sagi Grimberg <sagi@grimberg.me>
Cc: Keith Busch <kbusch@kernel.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Marco Patalano <mpatalan@redhat.com>
Cc: Ewan D. Milne <emilne@redhat.com>
Cc: John Meneghini <jmeneghi@redhat.com>
Cc: Simon Schricker <sschricker@suse.de>
Cc: Daniel Wagner <dwagner@suse.de>
Cc: Daniel Wagner <wagi@monom.org>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Martin Wilck <mwilck@suse.com>
Cc: Benjamin Marzinski <bmarzins@redhat.com>
Cc: NVME-ML <linux-nvme@lists.infradead.org>
Cc: SCSI-ML <linux-scsi@vger.kernel.org>
Cc: DM_DEVEL-ML <dm-devel@lists.linux.dev>
Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
---
Maybe these rules should be merged into this new file. ???
71-nvmf-hpe.rules.in
71-nvmf-netapp.rules.in
71-nvmf-vastdata.rules.in
---
.../80-nvmf-storage_arrays.rules.in | 33 +++++++++++++++++++
1 file changed, 33 insertions(+)
create mode 100644 nvmf-autoconnect/udev-rules/80-nvmf-storage_arrays.rules.in
diff --git a/nvmf-autoconnect/udev-rules/80-nvmf-storage_arrays.rules.in b/nvmf-autoconnect/udev-rules/80-nvmf-storage_arrays.rules.in
new file mode 100644
index 00000000..a2c952a5
--- /dev/null
+++ b/nvmf-autoconnect/udev-rules/80-nvmf-storage_arrays.rules.in
@@ -0,0 +1,33 @@
+##### Storage arrays
+
+#### Set iopolicy for NVMe-oF
+### iopolicy: numa, round-robin (>=5.1), or queue-depth (>=6.11)
+
+## Dell EMC
+# PowerMax
+ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{iopolicy}="round-robin", ATTR{model}=="EMC PowerMax"
+ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{iopolicy}="queue-depth", ATTR{model}=="EMC PowerMax"
+# PowerStore
+ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{iopolicy}="round-robin", ATTR{model}=="dellemc-powerstore"
+ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{iopolicy}="queue-depth", ATTR{model}=="dellemc-powerstore"
+
+## Huawei
+# OceanStor
+ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{iopolicy}="round-robin", ATTR{model}=="Huawei-XSG1"
+ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{iopolicy}="queue-depth", ATTR{model}=="Huawei-XSG1"
+
+## IBM
+# FlashSystem (RamSan)
+ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{iopolicy}="round-robin", ATTR{model}=="FlashSystem"
+ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{iopolicy}="queue-depth", ATTR{model}=="FlashSystem"
+# FlashSystem (Storwize/SVC)
+ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{iopolicy}="round-robin", ATTR{model}=="IBM*214"
+ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{iopolicy}="queue-depth", ATTR{model}=="IBM*214"
+
+## Pure
+# FlashArray
+ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{iopolicy}="round-robin", ATTR{model}=="Pure Storage FlashArray"
+ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{iopolicy}="queue-depth", ATTR{model}=="Pure Storage FlashArray"
+
+
+##### EOF
--
2.50.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] nvme-cli: nvmf-autoconnect: udev-rule: add a file for new arrays
2025-08-15 20:21 [PATCH] nvme-cli: nvmf-autoconnect: udev-rule: add a file for new arrays Xose Vazquez Perez
@ 2025-08-16 17:15 ` Xose Vazquez Perez
0 siblings, 0 replies; 2+ messages in thread
From: Xose Vazquez Perez @ 2025-08-16 17:15 UTC (permalink / raw)
To: DM_DEVEL-ML
Cc: Wayne Berthiaume, Vasuki Manikarnike, Martin George,
NetApp RDAC team, Zou Ming, Li Xiaokeng, Randy Jennings,
Thomas Song, Jyoti Rani, Brian Bunker, Uday Shankar,
Chaitanya Kulkarni, Sagi Grimberg, Keith Busch, Christoph Hellwig,
Marco Patalano, Ewan D. Milne, John Meneghini, Simon Schricker,
Daniel Wagner, Daniel Wagner, Hannes Reinecke, Martin Wilck,
Benjamin Marzinski, NVME-ML, SCSI-ML
On 8/15/25 10:21 PM, Xose Vazquez Perez wrote:
> And it is unnecessary to set ctrl_loss_tmo to -1 for NVMe/TCP devices,
> because it is the default.
Totally wrong. I misread the code:
$ grep NVMF_DEF_CTRL_LOSS_TMO drivers/nvme/host/fabrics.c
int ctrl_loss_tmo = NVMF_DEF_CTRL_LOSS_TMO, key_id;
$ grep ^#define drivers/nvme/host/fabrics.h
#define _NVME_FABRICS_H 1
#define NVMF_MIN_QUEUE_SIZE 16
#define NVMF_MAX_QUEUE_SIZE 1024
#define NVMF_DEF_QUEUE_SIZE 128
#define NVMF_DEF_RECONNECT_DELAY 10
#define NVMF_DEF_CTRL_LOSS_TMO 600 <---
#define NVMF_DEF_FAIL_FAST_TMO -1
It's 10 minutes.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-08-16 17:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-15 20:21 [PATCH] nvme-cli: nvmf-autoconnect: udev-rule: add a file for new arrays Xose Vazquez Perez
2025-08-16 17:15 ` Xose Vazquez Perez
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).