Commit Graph

18406 Commits

Author SHA1 Message Date
Krzysztof Karas
dfc9894396 bdev: send bdev reset based on outstanding IO and a new timeout parameter
A new parameter io_drain_timeout has been added to spdk_bdev
structure. If this value is unset, the bdev reset behavior
does not change.
The io_drain_timeout controls how long a bdev reset must wait for IO
to complete prior to issuing a reset to the underlying device.
If there is no outstanding IO at the end of that period, the reset
is skipped.

Change-Id: I585af427064ce234a4f60afc3d69bc9fc3252432
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14501
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
2022-09-22 19:18:30 +00:00
Tomasz Zawadzki
eafb489c0d test/nvmf: do not limit qpairs in nvmf_vhost
nvmf_vhost test verifies multiple components at once.

In this case the number of NVMe-oF I/O qpairs per controller
is limited to just 4. When a VM connected to the vhost_tgt
is booted, the vhost controller is started/destroyed multiple
times. The quick succession of getting I/O channels and
asynchronous nature of NVMe-oF qpair deletion/creation,
results in exhausting the free qpair ids.

There is no reason to limit the number of NVMe-oF I/O qpairs
in this test. If there ever is a need, a new test could be added
exploring behaviour of components (like vhost) when get I/O channel
fails.

Fixes #2517

Change-Id: I32455c0499a1b79c82f921aaac193a83bd9cb468
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14626
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-22 16:02:26 +00:00
Michal Berger
b5689b389e build: Make sure isa-l is built prior building dependent libs
In case SPDK is built with --with-dpdk[=*] rather than the submodule
it starts building libs and isa-l together leading to:

  SO libspdk_util.so.5.1
  /usr/bin/ld.bfd: cannot find -lisal
  collect2: error: ld returned 1 exit status
  make[2]: *** [/root/spdk/mk/spdk.lib.mk:86:
  /root/spdk/build/lib/libspdk_util.so.5.1] Error 1
  make[1]: *** [/root/spdk/mk/spdk.subdirs.mk:16: util] Error 2
  make: *** [/root/spdk/mk/spdk.subdirs.mk:16: lib] Error 2

To avoid this make sure that isa-l, being a hard dependency now, is
always build before anything else.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I933900a756924458324062cd740d99e5ccb370f6
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14621
Reviewed-by: Pawel Piatek <pawelx.piatek@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-22 16:02:04 +00:00
Michal Berger
9c0181451b nvme/perf: Read NUMA node id from nvme subsystem
Instead looking up the pci bus extract the info from the nvme
subsystem under sysfs. Also, remove deprecated commit about
buggy kernels - this shouldn't be the case for newer releases.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I0ef46eb3b1935bd5bf86f7b06f9310ca8f1a1a2b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14592
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-09-22 15:53:18 +00:00
Michal Berger
6baf5d8359 nvme/perf: Add xnvme support into benchmark scripts
Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: Id77e499d25452bc07d595ed41e683c99082babd9
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14242
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-22 15:53:18 +00:00
Karol Latecki
47b8795268 scripts/nvmf_perf: match CPUs/NICs NUMA on initiator side
For each generated fio job section "filename=" field try
to figure out what's the most dominant NUMA node in use
and use it for fio "numa_cpu_nodes" and "numa_mem_policy"
settings.

Change-Id: I96fda436dda8d4009dc191bf7c0c836e5b53a1a3
Signed-off-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13514
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-09-22 15:52:52 +00:00
Sebastian Brzezinka
4291ed5130 sma: support bdev-based QoS for vhost_blk devices
test/sma verifies that bdev-based QoS settings are correctly applied on
vhost devices.

Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
Change-Id: I1b66275dcf457295e6ae58814f1d08ed319fb52a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14338
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-22 12:38:37 +00:00
Sebastian Brzezinka
2a6f3d9753 sma: vhost_blk _bdev_cmp catch TypeError
Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
Change-Id: I48cd46b3062b3ced8e076aef2b6653f51b5e9fb5
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14538
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-22 12:38:37 +00:00
Sebastian Brzezinka
dfc5461741 sma: support bdev-based QoS for NVMe/vfiouser devices
test/sma verifies that bdev-based QoS settings are correctly applied on
vfio-user devices.

Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
Change-Id: I0109bfdbcb95d6e683c45c3dbdb2c3c175f10aa2
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14337
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-09-22 12:38:37 +00:00
Konrad Sztyber
045152b220 test/sma: quality of service test
The test verifies that bdev-based QoS settings are correctly applied on
NVMe/TCP devices.  Other device types supporting bdev-based QoS will
share most of the code, so NVMe/TCP is a good test vehicle, as it's the
easiest one to set up.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Ic715483e888a7219fd27367d527201d75e8b69a2
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14270
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-22 12:38:37 +00:00
Konrad Sztyber
89b81dc2ff sma: support bdev-based QoS for NVMe/TCP devices
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I9634c2492addd3b4848d4b53b9b258dd59b7d1dd
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14269
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-22 12:38:37 +00:00
Konrad Sztyber
aed37fb98f sma: add bdev QoS helper functions
These helper functions can be used by any device manager that wants to
provide volume-level QoS support using bdev-based QoS mechanism.  A
device manager is responsible for making sure that a volume exists and
is attached to a given device, but the validity of the QoS parameters is
checked within the helper functions.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I4d0efcf190a64b289b4cfbdf872f77e40a013d1f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14268
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-22 12:38:37 +00:00
Konrad Sztyber
784815ea3a sma: handle QoS requests in the generic layer
The generic layer will now handle the SetQoS and GetQosCapabilities
requests.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Icb4c916d3624c3943e2da74d6dbcc3261f90391d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14267
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
2022-09-22 12:38:37 +00:00
Konrad Sztyber
b994ebdfbd sma: interface for querying QoS capabilities
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I6013205499c122cad95d807c84e609f188b4d2d2
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14189
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-22 12:38:37 +00:00
Konrad Sztyber
f14c7d7578 sma: interface for configuring quality of service
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I6907498e369b58d2b3dd96981dfdba79ba87f6d4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14188
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-09-22 12:38:37 +00:00
Jim Harris
11313c2090 env_dpdk: move dpdk pci code to pci_dpdk.c/h
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I54489903f48a8a2e500f64c2e7f8530eed1e6882
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14548
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-22 12:38:25 +00:00
Jim Harris
7a7fd57715 env_dpdk: add dpdk_device_* functions
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I89dbf50821a3843b861629c195f2f9e8dfdc59a6
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14569
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-09-22 12:38:25 +00:00
Jim Harris
89e56a49d3 env_dpdk: create dpdk_bus_probe and dpdk_bus_scan
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I514b99e0cc887ca9243ccf212d0b7a0304bed45a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14568
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-09-22 12:38:25 +00:00
Jim Harris
34ff0cb6aa env_dpdk: add dpdk_pci_device interrupt functions
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Ia707870591b1e82e25bb3294b176f47d7e46483f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14547
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-09-22 12:38:25 +00:00
Jim Harris
44caf7fdfb env_dpdk: rename register_rte_driver
Rename it to dpdk_pci_driver_register.  This way we
follow the dpdk_pci_xxx naming convention for all
DPDK PCI structure/API dependent functions.

Also move it to the end of the file, to prepare for
moving it into the separate file.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Ifca4110f737095a94f9db3d27525f5b9af0546c9
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14546
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-09-22 12:38:25 +00:00
Jim Harris
84c34e64a3 env_dpdk: add dpdk_pci_device functions for bars and cfg
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I2f65adaead06d2443f634d8d905c780ad38ec454
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14545
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-09-22 12:38:25 +00:00
Jim Harris
0c6a7b9153 env_dpdk: add dpdk_pci_device_copy_identifiers
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I2821cbfc58829e2b7f71d2700e102e8fd6c6c322
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14544
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-09-22 12:38:25 +00:00
Jim Harris
dabd899365 env_dpdk: add dpdk_pci_device_get_devargs
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I54bdd891f99b53fbc3111f1a51c2f73f7a73b92a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14543
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-09-22 12:38:25 +00:00
Jim Harris
db531332cf env_dpdk: add dpdk_pci_device_get_name
This touches the rte_pci_device structure, so let's
make a separate accessor function just for that.

We will start putting the definitions for these
new dpdk_pci_device_xxx functions at the end of
pci.c.  At the end of this series, we will then
just lop off the end of pci.c containing all of
the dpdk_pci_device functions and move them to
a DPDK-dependent pci_22_07.c file.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I0323fc19b51d21d1bac899df21d6ebf4354ab339
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14542
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-09-22 12:38:25 +00:00
Jim Harris
ce63b017b8 env_dpdk: don't embed rte_pci_driver directly
struct rte_pci_driver will become private, and its
size may change between DPDK releases.  But we want
to keep the spdk_pci_driver structure generic.  So
allocate 256 bytes of space for the rte_pci_driver
structure, which is far more than the 104 bytes it
currently occupies.  We will keep a struct
rte_pci_driver pointer to this memory in spdk_pci_driver
which can be set up in the generic code.  This will
make it easier in future patches to make sure that
anything actually touching the rte_pci_driver
structure will be in the separate DPDK dependent
files.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I29aa7e71137da25a5480b34c71f2e0d5c9c02eae
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14541
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-09-22 12:38:25 +00:00
Xinrui Mao
4a9209bf1d lib/nbd: return nbd_poll idle or busy accordingly
The previous version missed the case of return value of _nbd_poll
equals to 0,and thus,when using nbd with no io,spdk_top shows high
cpu utilization.Return idle when _nbd_poll return 0.

Fixes #2697

Signed-off-by: Xinrui Mao <xinrui.mao@intel.com>
Change-Id: Ifa2ca3010e10250b5320a8282dfed3d97bea5105
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14615
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot
2022-09-22 07:51:46 +00:00
MengjinWu
4c33c7ae20 nvmf/tcp: inline function 'nvmf_tcp_req_set_state'
Signed-off-by: MengjinWu <mengjin.wu@intel.com>
Change-Id: Ie3af436411da9e3f3ad1ec159f0fbf59c4901983
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14598
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
2022-09-22 07:45:56 +00:00
MengjinWu
1d7230285b nvmf/tcp: add hpda value check in 'nvmf_tcp_icreq_handle'
hpda value should be in range of 0 to 31.

Signed-off-by: MengjinWu <mengjin.wu@intel.com>
Change-Id: Ie1329c831af06ccc8943a562c3f6396b635be518
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14575
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
2022-09-22 07:45:03 +00:00
MengjinWu
f8dd380b33 nvmf/tcp: eliminate function nvmf_tcp_set_in_capsule_data
This function is small and called only once.

Signed-off-by: MengjinWu <mengjin.wu@intel.com>
Change-Id: Ie4b11668e42a8920b3a9a11aa8cb83512f32942c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14576
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
2022-09-22 07:38:25 +00:00
MengjinWu
b5aeff1dba nvmf/tcp: 'nvmf_tcp_send_c2h_term_req' should set fes
Set the fes in nvmf_tcp_send_c2h_term_req.

Signed-off-by: MengjinWu <mengjin.wu@intel.com>
Change-Id: I457e102d9329e5624c738c5cf2e7fe411106f30b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14583
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-22 07:37:56 +00:00
Kozlowski Mateusz
be61c92a6d FTL: close ftl bdev in original thread
spdk_bdev_close should be called on the caller thread. Saving the thread
now for both unmap and get stats, and executing the close in the
appropriate context.

Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com>
Change-Id: I82192817d6012b0d41bbe2078fbd3f7dc01a7282
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14597
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-22 07:10:03 +00:00
Kozlowski Mateusz
691504a314 FTL: Fix error path for initializing mempools
If both allocation paths would fail, then the same mngt path would
execute rollback twice, leading to use after free error.

Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com>
Change-Id: I55c9ea5131faabc930fd8ff92ddd9f8d0fd9a0b0
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14596
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-22 07:10:03 +00:00
Michal Berger
fc1c9aafe6 perf/vhost: Allow to only generate the fio configuration
This use case was missed during the initial refactor introduced via
008f8a8617. CI depends on it so allow to specify the target location
of the fio configuration and allow to skip call to the main perf
wrapper.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: Ie41f9db40769980047f42475ce74e61c374c364c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14590
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-21 22:51:24 +00:00
Michal Berger
370a63e2b9 pkgdep/git: Patch for ice targeting latest 5.19 kernels
Currently, fedora36 is shipped with the 5.19 kernel.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: Ia575e5063aa98819ed0e66ffee1e0aaac995f4fa
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14244
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-21 22:47:12 +00:00
Damiano Cipriani
3e917320b9 spdk_dd: Add data and hole management
A logic has been introduced to skip hole in files and
bdevs and so to copy only data. For files lseek is used, for
bdevs new bdev API spdk_bdev_seek_[data,hole].
Show progress function will display only affected size_unit

Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com>
Change-Id: Ide2b0d825267603d45e00872ea719c8f0e82a60c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14363
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-21 19:54:37 +00:00
Damiano Cipriani
552a26d9d9 spdk_dd: Add check on block size
If passed as a parameter, block size must be a multiple of input
native block size, so a check to control this requirement has been added

Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com>
Change-Id: I38c41afd421083ba0864d5066d9978cb29bdaed6
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14554
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
2022-09-21 19:54:37 +00:00
MengjinWu
03843f73cb lib/nvme: disable multi c2hs crc32 offload at host
An example:
There are 3 c2h data PDUs for one read request. Data digest is
enabled, accel_poller is enabled. The first PDU will be offload
to accel_poller. Then the others will use CPU to calc the crc32c.
If the last PDU is calc done and the first PDU is not calc down,
SPDK will direct success the read request, and free some objects.
When accel_poller calc down, it will find the request is freed,
and abort the SPDK.

Disable multi c2hs async process to prevent this situation.

Signed-off-by: MengjinWu <mengjin.wu@intel.com>
Change-Id: I03c9e5b30622bbe84523c0836aa93cfed672896
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14079
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: GangCao <gang.cao@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-09-21 17:01:46 +00:00
Krzysztof Karas
1819d49e4f sw_hotplug: run the hotplug in the background
Currently we run the remove_attach_helper() function
in the background and hotplug application in the
foreground - if hotplug hangs unexpectedly, the whole
script will freeze.

This patch pushes hotplug to run in background to ensure
the control over the whole test is on sw_hotplug.sh
script's side. This way we can enforce a timeout and
stop the execution.

Change-Id: I5ae5e4e029f65faf5d41e2f7e1d576823d30ac33
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13407
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-09-21 15:47:36 +00:00
Kamil Godzwon
a252cf7c59 dpdkbuild: disable LTO while using clang compiler
Disable LTO while using clang compiler due to unsupported
fat LTO objects error.

Signed-off-by: Kamil Godzwon <kamilx.godzwon@intel.com>
Change-Id: I511e92144c974e8a55d503f58d2ae45bef62eb68
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14557
Reviewed-by: Michal Berger <michal.berger@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-21 14:01:16 +00:00
Karol Latecki
92b643b0b2 scripts/nvmf_perf: get systems NIC numa node function
Signed-off-by: Karol Latecki <karol.latecki@intel.com>
Change-Id: I254bd86336a5effaa7c78559b2b654809a673712
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13513
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-09-21 14:01:06 +00:00
Karol Latecki
23e767c4a5 scripts/nvmf_perf: add workload offset option
Use fio "offset", "offset_increment" and "size" to
split target file into chunks, so that each fio
job clone (specified by "numjobs") gets it's own
part of the disk to work with.

This is especially helpful in case of sequential
workloads run with numjobs > 1 and helps to keep
the workload to being as close to sequential as
possible.

Change-Id: I1ca88ae56136d22cf396f464d78b05eff5c07a2a
Signed-off-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13515
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-09-21 14:01:06 +00:00
Jim Harris
9633d482a7 nvmf: emit add_listeners RPCs after add_ns RPCs
When emitting the JSON-RPC text for saving the
current configuration, add the listeners last.

This is usually the preferred order when
configuring a new subsystem - it is better to have
all of the namespaces and hosts added to the subsystem
before adding the listener to allow hosts to connect
to it.  We support namespace hotplug but there's
no need to unnecessarily generate hotplug events
if we can avoid it.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I79e8a0a496eeb128efbb7e314ac835b6110d3cc8
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14586
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-09-21 08:50:08 +00:00
Krzysztof Karas
dc43aae54d hw_hotplug: use all available GPIO lines
Prepare Beetles to use all available GPIO lines to
manage NVMe drives.

The two reasons are:
 + we want to test multiple NVMes instead just one
 + setting all GPIO will make it easier to physically
   connect NVMe connectors to Beetles

Change-Id: I0351dd2e7cfef0a75eff0692be3c746ad1b5664f
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13748
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
2022-09-21 08:48:25 +00:00
Artsiom Koltun
f110891143 sma: use response message for DetachVolume rpc
Signed-off-by: Artsiom Koltun <artsiom.koltun@intel.com>
Change-Id: I8ae08b86d4fac0bc38ebfbfc8fd2126a11a5b11b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14585
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-21 08:19:05 +00:00
MengjinWu
00005ed8d5 nvmf/tcp: eliminate function 'nvmf_tcp_pdu_payload_insert_dif'
This function is called only once and can be eliminated.

Signed-off-by: MengjinWu <mengjin.wu@intel.com>
Change-Id: I0b3e80c025b60a816e2113f859907f95e96dd183
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14578
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
2022-09-21 08:18:56 +00:00
MengjinWu
252c053e6f nvmf/tcp: insert dif after all payload received
'nvmf_tcp_pdu_payload_insert_dif' can be done after receiving
whole payload data as an optimization.

Signed-off-by: MengjinWu <mengjin.wu@intel.com>
Change-Id: I3054079427c25d102477ef8ec1b288631741d7a3
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14577
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
2022-09-21 08:18:56 +00:00
Ben Walker
712e8cb7ef accel: Refer to plugins as 'modules' instead of 'engines'
This is consistent with the use of terms in other parts of SPDK and fits
with the code living under module/

Change-Id: If182f7cf2d160d57443a1b5f24e0065f191b59b2
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13919
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-21 08:17:48 +00:00
Krzysztof Karas
40cb3961ec hw_hotplug.sh: add -q option to grep to generate fewer logs
Change-Id: I24ab10a3021d52e71bb20cd2cdf748fa8713339c
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14523
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
2022-09-21 08:17:16 +00:00
Shuhei Matsumoto
a2327b080d doc/nvme_multipath: Suggest transport_ack_timeout for fast error detection
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Icbdac9102920c004c2b88ef371d11488208727df
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14482
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: GangCao <gang.cao@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-21 07:52:44 +00:00
Shuhei Matsumoto
2826ef13ce bdev/nvme: Fail reset sequence immediately if ctrlr is already removed.
After a controller was hot-removed, if a reset sequence started to
the controller, spdk_nvme_ctrlr_disconnect() failed and caused core
dump in debug mode.

When implemented, how to cause the failure and how to process the
failure were not clear. Hence assert was added to detect the
failure.

We know how we cause the failure now. Let's handle the failure
appropriately.

If spdk_nvme_ctrlr_disconnect() fails, we are on the nvme_ctrlr->thread.
Hence call bdev_nvme_reset_complete() with failure immediately.

Even if spdk_nvme_ctrlr_disconnect() completes synchronously, the
completion callback is executed asynchronously when polling an adminq.

Hence set the completion callback only if spdk_nvme_ctrlr_disconnect()
succeeds.

Fixes issue #2632

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I11f61853aba9eca2515592f964a291e59def7247
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13892
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-21 07:52:44 +00:00