Spdk/test/nvme
Michal Berger 1f59abaebf scripts/setup: Use driver_override to bind devices
Using new_id attribute is global in scope, meaning that depending
on the kernel's setup seen prior running setup.sh, single write
to it may re-bind ALL matching devices. This doesn't play well
with our PCI_{ALLOWED,BLOCKED} options as they can't be enforced
in such a case. Consider the following example:

  > modprobe -r nvme # all nvme ctrls are detached from the kernel
  > echo 0xdead 0xbeef >/sys/bus/pci/drivers/uio_pci_generic/new_id

  # setup.sh-wise

  > modprobe -r nvme
  > PCI_BLOCKED=some:dead:beef.bdf setup.sh
  # PCI_BLOCKED device still ends up bound to userspace driver.

After this single write, ALL matching devices will end up bound to
uio_pci_generic. To avoid this, we should override preferred driver
on per-bdf basis.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: Ic4613e33321303b92b47ce3f4d7e1f29ecca3036
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13813
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Kamil Godzwon <kamilx.godzwon@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-12-08 14:16:40 +00:00
..
aer update Intel copyright notices 2022-11-10 08:28:53 +00:00
boot_partition check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
cmb add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
compliance add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
connect_stress update Intel copyright notices 2022-11-10 08:28:53 +00:00
cuse add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
e2edp update Intel copyright notices 2022-11-10 08:28:53 +00:00
err_injection update Intel copyright notices 2022-11-10 08:28:53 +00:00
fused_ordering update Intel copyright notices 2022-11-10 08:28:53 +00:00
overhead update Intel copyright notices 2022-11-10 08:28:53 +00:00
perf add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
reserve update Intel copyright notices 2022-11-10 08:28:53 +00:00
reset update Intel copyright notices 2022-11-10 08:28:53 +00:00
sgl update Intel copyright notices 2022-11-10 08:28:53 +00:00
simple_copy test/nvme/simple_copy: Allow to connect to NVMf target 2022-11-30 08:50:06 +00:00
startup update Intel copyright notices 2022-11-10 08:28:53 +00:00
xnvme add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
zns add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
hw_hotplug.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
Makefile update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_bp.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
nvme_opal.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
nvme_pmr.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
nvme_rpc_timeouts.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
nvme_rpc.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
nvme_scc.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
nvme.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
sw_hotplug.sh scripts/setup: Use driver_override to bind devices 2022-12-08 14:16:40 +00:00