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.berthia...@dell.com> Cc: Vasuki Manikarnike <vasuki.manikarn...@hpe.com> Cc: Martin George <mart...@netapp.com> Cc: NetApp RDAC team <ng-eseries-upstream-maintain...@netapp.com> Cc: Zou Ming <zouming.zoum...@huawei.com> Cc: Li Xiaokeng <lixiaok...@huawei.com> Cc: Randy Jennings <ran...@purestorage.com> Cc: Thomas Song <ts...@purestorage.com> Cc: Jyoti Rani <jr...@purestorage.com> Cc: Brian Bunker <br...@purestorage.com> Cc: Uday Shankar <ushan...@purestorage.com> Cc: Chaitanya Kulkarni <k...@nvidia.com> Cc: Sagi Grimberg <s...@grimberg.me> Cc: Keith Busch <kbu...@kernel.org> Cc: Christoph Hellwig <h...@lst.de> Cc: Marco Patalano <mpata...@redhat.com> Cc: Ewan D. Milne <emi...@redhat.com> Cc: John Meneghini <jmene...@redhat.com> Cc: Simon Schricker <sschric...@suse.de> Cc: Daniel Wagner <dwag...@suse.de> Cc: Daniel Wagner <w...@monom.org> Cc: Hannes Reinecke <h...@suse.de> Cc: Martin Wilck <mwi...@suse.com> Cc: Benjamin Marzinski <bmarz...@redhat.com> Cc: NVME-ML <linux-n...@lists.infradead.org> Cc: SCSI-ML <linux-s...@vger.kernel.org> Cc: DM_DEVEL-ML <dm-devel@lists.linux.dev> Signed-off-by: Xose Vazquez Perez <xose.vazq...@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