Replace individual vendor udev rules (HPE, NetApp, and VAST Data) with a unified 80-nvmf-storage_arrays.rules file, leaving the rules untouched.
This shifts execution to the 80 range for a logical sequence after base discovery and autoconnect, while simplifying maintenance and packaging. Cc: John Garry <[email protected]> Cc: Nilay Shroff <[email protected]> Cc: Guixin Liu <[email protected]> Cc: Wayne Berthiaume <[email protected]> Cc: Vasuki Manikarnike <[email protected]> Cc: Matthias Rudolph <[email protected]> Cc: Martin George <[email protected]> Cc: NetApp RDAC team <[email protected]> Cc: Zou Ming <[email protected]> Cc: Li Xiaokeng <[email protected]> Cc: Randy Jennings <[email protected]> Cc: Jyoti Rani <[email protected]> Cc: Brian Bunker <[email protected]> Cc: Uday Shankar <[email protected]> Cc: Chaitanya Kulkarni <[email protected]> Cc: Sagi Grimberg <[email protected]> Cc: Keith Busch <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Marco Patalano <[email protected]> Cc: Ewan D. Milne <[email protected]> Cc: John Meneghini <[email protected]> Cc: Daniel Wagner <[email protected]> Cc: Daniel Wagner <[email protected]> Cc: Hannes Reinecke <[email protected]> Cc: Martin Wilck <[email protected]> Cc: Benjamin Marzinski <[email protected]> Cc: Christophe Varoqui <[email protected]> Cc: BLOCK-ML <[email protected]> Cc: NVME-ML <[email protected]> Cc: SCSI-ML <[email protected]> Cc: DM_DEVEL-ML <[email protected]> Signed-off-by: Xose Vazquez Perez <[email protected]> --- BTW, there are two new I/O policies in development: https://lore.kernel.org/linux-nvme/[email protected]/ https://lore.kernel.org/linux-nvme/[email protected]/ --- meson.build | 4 +--- nvme.spec.in | 4 +--- .../udev-rules/71-nvmf-hpe.rules.in | 5 ---- .../udev-rules/71-nvmf-netapp.rules.in | 6 ----- .../udev-rules/71-nvmf-vastdata.rules.in | 5 ---- .../80-nvmf-storage_arrays.rules.in | 23 +++++++++++++++++++ 6 files changed, 25 insertions(+), 22 deletions(-) delete mode 100644 nvmf-autoconnect/udev-rules/71-nvmf-hpe.rules.in delete mode 100644 nvmf-autoconnect/udev-rules/71-nvmf-netapp.rules.in delete mode 100644 nvmf-autoconnect/udev-rules/71-nvmf-vastdata.rules.in create mode 100644 nvmf-autoconnect/udev-rules/80-nvmf-storage_arrays.rules.in diff --git a/meson.build b/meson.build index 90356ad94..00e9ad1be 100644 --- a/meson.build +++ b/meson.build @@ -894,9 +894,7 @@ if want_nvme udev_files = { '65-persistent-net-nbft.rules': 'nvmf', '70-nvmf-keys.rules': 'nvmf-autoconnect', - '71-nvmf-hpe.rules': 'nvmf', - '71-nvmf-netapp.rules': 'nvmf', - '71-nvmf-vastdata.rules': 'nvmf', + '80-nvmf-storage_arrays.rules': 'nvmf', } if want_nvmf_autoconnect udev_files += {'70-nvmf-autoconnect.rules': 'nvmf-autoconnect'} diff --git a/nvme.spec.in b/nvme.spec.in index 23d3d3268..a37c1a08d 100644 --- a/nvme.spec.in +++ b/nvme.spec.in @@ -36,9 +36,7 @@ touch %{buildroot}@SYSCONFDIR@/nvme/hostid @UDEVRULESDIR@/65-persistent-net-nbft.rules @UDEVRULESDIR@/70-nvmf-autoconnect.rules @UDEVRULESDIR@/70-nvmf-keys.rules -@UDEVRULESDIR@/71-nvmf-hpe.rules -@UDEVRULESDIR@/71-nvmf-netapp.rules -@UDEVRULESDIR@/71-nvmf-vastdata.rules +@UDEVRULESDIR@/80-nvmf-storage_arrays.rules @DRACUTRULESDIR@/70-nvmf-autoconnect.conf @SYSTEMDDIR@/[email protected] @SYSTEMDDIR@/nvmefc-boot-connections.service diff --git a/nvmf-autoconnect/udev-rules/71-nvmf-hpe.rules.in b/nvmf-autoconnect/udev-rules/71-nvmf-hpe.rules.in deleted file mode 100644 index b050dd502..000000000 --- a/nvmf-autoconnect/udev-rules/71-nvmf-hpe.rules.in +++ /dev/null @@ -1,5 +0,0 @@ -# Set appropriate iopolicy for HPE Alletra Storage MP -ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{model}=="HPE Alletra", ATTR{iopolicy}="round-robin" - -# Set ctrl_loss_tmo to -1 for HPE Alletra Storage MP NVMe/TCP -ACTION!="remove", SUBSYSTEM=="nvme", KERNEL=="nvme*", ATTR{transport}=="tcp", ATTR{model}=="HPE Alletra", ATTR{ctrl_loss_tmo}="-1" diff --git a/nvmf-autoconnect/udev-rules/71-nvmf-netapp.rules.in b/nvmf-autoconnect/udev-rules/71-nvmf-netapp.rules.in deleted file mode 100644 index c76a3c434..000000000 --- a/nvmf-autoconnect/udev-rules/71-nvmf-netapp.rules.in +++ /dev/null @@ -1,6 +0,0 @@ -# Set appropriate iopolicy for NetApp ONTAP and NetApp E-Series -ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{model}=="NetApp ONTAP Controller", ATTR{iopolicy}="queue-depth" -ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{model}=="NetApp E-Series", ATTR{iopolicy}="round-robin" - -# Set ctrl_loss_tmo to -1 for NetApp ONTAP NVMe/TCP -ACTION!="remove", SUBSYSTEM=="nvme", KERNEL=="nvme*", ATTR{transport}=="tcp", ATTR{model}=="NetApp ONTAP Controller", ATTR{ctrl_loss_tmo}="-1" diff --git a/nvmf-autoconnect/udev-rules/71-nvmf-vastdata.rules.in b/nvmf-autoconnect/udev-rules/71-nvmf-vastdata.rules.in deleted file mode 100644 index dcd6146d8..000000000 --- a/nvmf-autoconnect/udev-rules/71-nvmf-vastdata.rules.in +++ /dev/null @@ -1,5 +0,0 @@ -# Enable round-robin for Vast Data Block Subsystem -ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{model}=="VASTData", ATTR{iopolicy}="round-robin" - -# Set ctrl_loss_tmo to -1 for Vast Data Block Controller -ACTION!="remove", SUBSYSTEM=="nvme", KERNEL=="nvme*", ATTR{model}=="VASTData", ATTR{ctrl_loss_tmo}="-1" 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 000000000..1cd6c0c0b --- /dev/null +++ b/nvmf-autoconnect/udev-rules/80-nvmf-storage_arrays.rules.in @@ -0,0 +1,23 @@ +##### Storage arrays + +#### Set iopolicy for NVMe-oF +### iopolicy: numa (default), round-robin (>=5.1), or queue-depth (>=6.11) + +## HPE +# Alletra 9000 / Alletra Storage MP / GreenLake Block Storage MP +ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{model}=="HPE Alletra", ATTR{iopolicy}="round-robin" +ACTION!="remove", SUBSYSTEM=="nvme", KERNEL=="nvme*", ATTR{transport}=="tcp", ATTR{model}=="HPE Alletra", ATTR{ctrl_loss_tmo}="-1" + +## NetApp +# ONTAP AFF/ASA Series +ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{model}=="NetApp ONTAP Controller", ATTR{iopolicy}="queue-depth" +ACTION!="remove", SUBSYSTEM=="nvme", KERNEL=="nvme*", ATTR{transport}=="tcp", ATTR{model}=="NetApp ONTAP Controller", ATTR{ctrl_loss_tmo}="-1" +# E/EF-Series +ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{model}=="NetApp E-Series", ATTR{iopolicy}="round-robin" + +## VAST Data +# Block Subsystem +ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{subsystype}=="nvm", ATTR{model}=="VASTData", ATTR{iopolicy}="round-robin" +ACTION!="remove", SUBSYSTEM=="nvme", KERNEL=="nvme*", ATTR{model}=="VASTData", ATTR{ctrl_loss_tmo}="-1" + +##### EOF -- 2.56.0
