History log of /spdk/test/unit/lib/bdev/nvme/bdev_nvme.c/bdev_nvme_ut.c (Results 1 – 25 of 220)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v25.01-rc1
# 06358c25 01-Nov-2024 Konrad Sztyber <konrad.sztyber@intel.com>

bdev/nvme: use poll_group's fd_group to register interrupts

This eliminates the need for nesting epoll instances in the kernel and
allows us to skip one epoll_wait() call. It shows an around 5-10%

bdev/nvme: use poll_group's fd_group to register interrupts

This eliminates the need for nesting epoll instances in the kernel and
allows us to skip one epoll_wait() call. It shows an around 5-10%
latency improvement.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Idd6ed70d41760566b82246c8af59016fa80a0610
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25469
Reviewed-by: Ben Walker <ben@nvidia.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ankit Kumar <ankit.kumar@samsung.com>

show more ...


# 4b59d789 28-Nov-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Use nbdev always for local nvme_bdev pointer variables

Previously, for the local nvme_bdev pointer, different names, nvme_disk,
bdev, and nbdev were used. No special preference but nbdev

bdev/nvme: Use nbdev always for local nvme_bdev pointer variables

Previously, for the local nvme_bdev pointer, different names, nvme_disk,
bdev, and nbdev were used. No special preference but nbdev has been used
widely. Let's use nbdev always for local nvme_bdev pointer variables.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I1c076b553587b576305bfbb7b25f97fabb83ce02
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25482
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <ben@nvidia.com>
Community-CI: Mellanox Build Bot
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>

show more ...


# 3edf9f12 24-Oct-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Fix race bug between clear_pending_resets and reset_ctrlr_complete()

This was a very long term potential bug.

bdev_nvme_reset/failover_ctrlr() cleared pending reset and then completed
re

bdev/nvme: Fix race bug between clear_pending_resets and reset_ctrlr_complete()

This was a very long term potential bug.

bdev_nvme_reset/failover_ctrlr() cleared pending reset and then completed
reset. However, if external reset request was submitted from the bdev
layer between pending reset clear and reset completion, the external
reset request lost wakeup.

Fix this bug by moving pending reset list from per nvme_ctrlr_channel to
per nvme_ctrlr and move operation to clear pending resets into the same lock
as reset completion.

Adjust existing unit test cases.

Include unit test for reproduction into this patch.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I09030b0fb118f65a16d6e23bed53e1755f59bffb
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25291
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>

show more ...


Revision tags: v24.09
# b8c65ccf 25-Sep-2024 Ankit Kumar <ankit.kumar@samsung.com>

bdev/nvme: interrupt mode for PCIe transport

Register SPDK_INTERRUPT_EVENT_IN on the internal epoll file descriptor
of the nvme poll group.
At the time of I/O qpair creation, interrupt events get re

bdev/nvme: interrupt mode for PCIe transport

Register SPDK_INTERRUPT_EVENT_IN on the internal epoll file descriptor
of the nvme poll group.
At the time of I/O qpair creation, interrupt events get registered with
the internal epoll file descriptor of the nvme poll group.
This allows us to collectively wait for interrupt events on all the I/O
qpair fds.

Regsiter SPDK_INTERRUPT_EVENT_IN on the admin queue file descriptor.

Change-Id: Ic36482c3b946b692413745c3603568f45acd4957
Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25081
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>

show more ...


# ab762622 22-Oct-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Add multipath info (controller ID) to NVME_CTRLR_*LOG()

Add controller ID to NVME_CTRLR_*LOG() using a new API
spdk_nvme_ctrlr_get_id() as same as we did for NVMe driver.

Furthermore, th

bdev/nvme: Add multipath info (controller ID) to NVME_CTRLR_*LOG()

Add controller ID to NVME_CTRLR_*LOG() using a new API
spdk_nvme_ctrlr_get_id() as same as we did for NVMe driver.

Furthermore, this patch adds the following.

Controller ID is newly given when controller is created. Controller ID
can be changed when controller is reconnected. If we add logs for such
cases and the logs include IP address and port, we can associate IP
address and port with controller ID. Logs will be more helpful.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I8445d64fadb1a7b4cd9ec681beae8b6e27072574
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25298
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <jim.harris@samsung.com>

show more ...


# 1cd4c9b4 09-Oct-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Add more logs for spdk_bdev_reset

Sequence to reset controller is very complex. Trouble shooting is very
difficult. Add more logs to help trouble shooting.

Signed-off-by: Shuhei Matsumot

bdev/nvme: Add more logs for spdk_bdev_reset

Sequence to reset controller is very complex. Trouble shooting is very
difficult. Add more logs to help trouble shooting.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Ic28ccc6cda4889b4f2209775aede378aafd4da2c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25180
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot

show more ...


# ffd9f746 15-Oct-2024 Allen Zhu <allenzhu@nvidia.com>

bdev/nvme: Fix crash due to NULL io_path

Before calling _bdev_nvme_reset_io(), bio->io_path will be set
to NULL. An assert has already been added to guarentee it.

But in _bdev_nvme_reset_io(), if e

bdev/nvme: Fix crash due to NULL io_path

Before calling _bdev_nvme_reset_io(), bio->io_path will be set
to NULL. An assert has already been added to guarentee it.

But in _bdev_nvme_reset_io(), if error happens before setting
bio->io_path, the caller will keep it NULL.

For example, in bdev_nvme_freeze_bdev_channel_done, it will
call bdev_nvme_reset_io_continue with NULL io_path. In this
case, it will crash because prev_io_path is still NULL in
_bdev_nvme_reset_io_continue.

Change-Id: I97c28167322af5ad9df9c293f00d61b035e33268
Signed-off-by: Allen Zhu <allenzhu@nvidia.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25222
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>

show more ...


# 75a12cbf 10-Oct-2024 Slawomir Ptak <slawomir.ptak@intel.com>

test: Comparison operator fixes

Change-Id: I1296b19b590c2c6cbb75b9362e441cd6219d7a9f
Signed-off-by: Slawomir Ptak <slawomir.ptak@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2

test: Comparison operator fixes

Change-Id: I1296b19b590c2c6cbb75b9362e441cd6219d7a9f
Signed-off-by: Slawomir Ptak <slawomir.ptak@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25198
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>

show more ...


# f366dac4 07-Oct-2024 Marcin Spiewak <marcin.spiewak@intel.com>

bdev/nvme: removed 'multipath' param from spdk_bdev_nvme_create()

Changed 'spdk_bdev_nvme_create' API function, the 'multipath prameter
was removed as it is redundant to 'multipath' field in
spdk_bd

bdev/nvme: removed 'multipath' param from spdk_bdev_nvme_create()

Changed 'spdk_bdev_nvme_create' API function, the 'multipath prameter
was removed as it is redundant to 'multipath' field in
spdk_bdev_nvme_ctrlr_opts structure passed as a parameter to this
function. If multipathing shall be enabled for nvme bdev, the
'bdev_opts.multipath' field shall be set to 'true'. When
'bdev_opts.multipath' is set to 'false', failover mode is enabled.

Change-Id: I3ba5ac159b4c97a4d8566257b0505b1154a158f8
Signed-off-by: Marcin Spiewak <marcin.spiewak@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25161
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>

show more ...


# a5cbb2b1 25-Sep-2024 Marcin Spiewak <marcin.spiewak@intel.com>

bdev/nvme: ctrl config consistency check

All controllers created with the same name shall be configured either
for multipath or for failover. Otherwise we have configuration mismatch.
This patch add

bdev/nvme: ctrl config consistency check

All controllers created with the same name shall be configured either
for multipath or for failover. Otherwise we have configuration mismatch.
This patch adds cofiguration consistency check, and all controllers
created with the same name will be forced to have consistent setting,
either '-x multipath' or '-x failover'. No mixing of '-x' options is
allowed.
Deprecation warning has been removed as we are now implementing the
advertised change.

Change-Id: I1bc472f95950e4326ca67bed33a1bf9523683843
Signed-off-by: Marcin Spiewak <marcin.spiewak@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25028
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot

show more ...


Revision tags: v25.01-pre, v24.09-rc1
# 3950cd1b 19-Sep-2024 Evgeniy Kochetov <evgeniik@nvidia.com>

bdev/nvme: Change spdk_bdev_reset() to succeed if at least one nvme_ctrlr is reconnected

This patch fixes issue with spdk_bdev_reset() on multipath nvme bdev
with at least one but not all failed nvm

bdev/nvme: Change spdk_bdev_reset() to succeed if at least one nvme_ctrlr is reconnected

This patch fixes issue with spdk_bdev_reset() on multipath nvme bdev
with at least one but not all failed nvme_ctrlrs. For multipath nvme bdev
reset sequentially reconnects all nvme_ctrlrs. Before
this patch, if at least one of nvme_ctrlrs can't be reconnected, the whole
reset request is completed with errors. It doesn't make sense because
bdev may still be operational. This patch changes behaviour to
complete reset request successfully if at least one nvme_ctrlr was
reconnected. Reset will still be failed if all nvme_ctrlrs failed to
reconnect.

Change-Id: I992a9a44f26f45970f9daa120a93be9bb4604091
Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24974
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>

show more ...


# 8d3f8fb8 01-Jul-2024 Konrad Sztyber <konrad.sztyber@intel.com>

bdev/nvme: add method for changing DH-HMAC-CHAP keys

This method will change the keys on all multipath controllers and force
reauthentication on all qpairs. The high level flow looks like this:

1

bdev/nvme: add method for changing DH-HMAC-CHAP keys

This method will change the keys on all multipath controllers and force
reauthentication on all qpairs. The high level flow looks like this:

1) Set the keys on the first multipath controller.
2) Authenticate admin qpair.
3) Go over all IO channels and authenticate IO qpairs on each one.
4) If there's no next multipath controller, we're done, otherwise set
keys on that controller and go to 2).

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Iec0de19f1a9326cf32c9b27acaab117100616770
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24236
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>

show more ...


# d7c8bcf8 05-Jul-2024 Alexey Marchuk <alexeymar@nvidia.com>

nvme: Add accel fn to append copy task

Extend the spdk_nvme_accel_fn_table structure with
append_copy callback. Add callback implementation to
bdev_nvme

Signed-off-by: Alexey Marchuk <alexeymar@nvi

nvme: Add accel fn to append copy task

Extend the spdk_nvme_accel_fn_table structure with
append_copy callback. Add callback implementation to
bdev_nvme

Signed-off-by: Alexey Marchuk <alexeymar@nvidia.com>
Change-Id: Iaf32d03b9055b4e319149f0ff6198990081b5e4d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24688
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Ben Walker <ben@nvidia.com>
Community-CI: Mellanox Build Bot

show more ...


Revision tags: v24.05, v24.09-pre, v24.05-rc1
# 14bad452 22-Feb-2024 Ben Walker <ben@nvidia.com>

bdev: Make in_submit_request a 1 bit flag

Turn the bool into 1 bit.

Change-Id: I19932159bc25022ee05b580d617c5b61ed8f1be5
Signed-off-by: Ben Walker <ben@nvidia.com>
Reviewed-on: https://review.spdk.

bdev: Make in_submit_request a 1 bit flag

Turn the bool into 1 bit.

Change-Id: I19932159bc25022ee05b580d617c5b61ed8f1be5
Signed-off-by: Ben Walker <ben@nvidia.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22004
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>

show more ...


# bcbd1fdd 10-Sep-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Prohibit I/O retry explicitly during bdev_reset

We want to ensure all outstanding I/Os are finished after a bdev reset
request complets.

A bdev reset request aborts all pending I/Os at i

bdev/nvme: Prohibit I/O retry explicitly during bdev_reset

We want to ensure all outstanding I/Os are finished after a bdev reset
request complets.

A bdev reset request aborts all pending I/Os at its end now.

However, it did not prohibit I/O retry explicitly. Hence, it had a gap
to miss outstanding I/Os to abort.

This patch explicitly prohibits I/O retry during a bdev reset request
execution.

Verify the change by adding unit tests.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I32dc2169722b5d08f81db8883e25beacf8446ef1
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24854
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>

show more ...


# 6ea299df 10-Jul-2024 Jim Harris <jim.harris@samsung.com>

bdev/nvme: show `numa_id` for bdev_nvme_get_controllers

Only show the numa_id if we know what it is, omit it if
the nvme driver returns SPDK_ENV_NUMA_ID_ANY.

Signed-off-by: Jim Harris <jim.harris@s

bdev/nvme: show `numa_id` for bdev_nvme_get_controllers

Only show the numa_id if we know what it is, omit it if
the nvme driver returns SPDK_ENV_NUMA_ID_ANY.

Signed-off-by: Jim Harris <jim.harris@samsung.com>
Change-Id: I3ab93d4be0ddc73f0b7317ba0bd6295ca9514569
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24147
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Ben Walker <ben@nvidia.com>

show more ...


# dd98a248 30-Jul-2024 Mehakjot Singh Sidhu <mehakjot.sidhu@nutanix.com>

bdev_nvme: Make bdev nvme create and set multipath policy APIs public

Introduced new header file /module/bdev/nvme.h and added public APIs
`spdk_bdev_nvme_create`, `spdk_bdev_nvme_set_multipath_poli

bdev_nvme: Make bdev nvme create and set multipath policy APIs public

Introduced new header file /module/bdev/nvme.h and added public APIs
`spdk_bdev_nvme_create`, `spdk_bdev_nvme_set_multipath_policy` and
`spdk_bdev_nvme_get_default_ctrlr_opts`, replacing internal functions
`bdev_nvme_create`, `bdev_nvme_set_multipath_policy` and
`bdev_nvme_get_default_ctrlr_opts`.

No changes have been done to the implementation of the above functions.

Change-Id: I610cfca65fbc43c32b1cf2288c8208fa5c6e567b
Signed-off-by: Mehakjot Singh Sidhu <mehakjot.sidhu@nutanix.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24370
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <ben@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>

show more ...


Revision tags: LTS, v24.01, v24.05-pre, v24.01-rc1
# 99d2e2ac 29-Sep-2023 Ben Walker <ben@nvidia.com>

bdev/nvme: Replace spdk_bdev_io module_link with per-io ctx retry_link

We're removing module_link from spdk_bdev_io, so add a list element to
this module's per-io area.

Change-Id: Icd679e509d25e7bd

bdev/nvme: Replace spdk_bdev_io module_link with per-io ctx retry_link

We're removing module_link from spdk_bdev_io, so add a list element to
this module's per-io area.

Change-Id: Icd679e509d25e7bd1eb10d663a4e21b945e391f9
Signed-off-by: Ben Walker <ben@nvidia.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24363
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot

show more ...


# 34edd9f1 10-Jul-2024 Kamil Godzwon <kamilx.godzwon@intel.com>

general: fix misspells and typos

Signed-off-by: Kamil Godzwon <kamilx.godzwon@intel.com>
Change-Id: Iab206ef526eb7032c6681a3145450010c91705a4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+

general: fix misspells and typos

Signed-off-by: Kamil Godzwon <kamilx.godzwon@intel.com>
Change-Id: Iab206ef526eb7032c6681a3145450010c91705a4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24120
Community-CI: Mellanox Build Bot
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>

show more ...


# c2a77f51 04-Jun-2024 Krzysztof Karas <krzysztof.karas@intel.com>

module/bdev/nvme: add detach-monitor poller

In cases where hotplug option is not enabled (via bdev_nvme_set_hotplug)
we should still be able to detect unexpected hot-removes of underlying
devices (o

module/bdev/nvme: add detach-monitor poller

In cases where hotplug option is not enabled (via bdev_nvme_set_hotplug)
we should still be able to detect unexpected hot-removes of underlying
devices (otherwise we'll wait for a detach that never happens, see issue
3226 and prints at lib/env_dpdk/pci.c:235).

Unless hotplug option is enabled, we do not want to attach to all
available devices, so we should only watch for remove events.
To achieve that, add a new polling function and assign it to
'g_hotplug_poller' upon first bdev_nvme_attach controller and
unregister the poller after all controllers are removed. In essence,
we'll always have a poller as long as at least one controller is
present, regardless of hotplug being enabled.

Fixes #3226

Change-Id: Iac281604e2fc3e108e16e415de4b19c50f0d3148
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23575
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>

show more ...


# 27d031cd 12-Jul-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Remove assert() to detect ANA change for inactive namespace

nvme_ctrlr_set_ana_states() was good but it had undesirable assert().
nvme_ctrlr_set_ana_states() could handle the case that ta

bdev/nvme: Remove assert() to detect ANA change for inactive namespace

nvme_ctrlr_set_ana_states() was good but it had undesirable assert().
nvme_ctrlr_set_ana_states() could handle the case that target sent ANA
change for inactive namespaces, but hit assert() for the case.

The case was observed in real environment. Remove the undesirable
assert() and add unit test case to avoid future degradation.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Suggested-by: Kaushik Chug <kaushik.chug@ngxstorage.com>
Change-Id: If77fdb1180e759b6b7ede8dc8802513d8937c2b4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24165
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Kaushik Chug
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>

show more ...


# fcf59a6f 10-Jun-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

module/bdev: Initialize bdev->dif_pi_format

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I5393205a7a29eca2577b4c0772ec08526fd8a8c0
Reviewed-on: https://review.spdk.io/gerrit/c/

module/bdev: Initialize bdev->dif_pi_format

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I5393205a7a29eca2577b4c0772ec08526fd8a8c0
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23626
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <ben@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...


# 02f313d6 13-Jun-2024 Konrad Sztyber <konrad.sztyber@intel.com>

bdev/nvme: check hostnqn when attaching controllers

It's now possible to attach two controllers using the same trid, but
different host NQNs.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com

bdev/nvme: check hostnqn when attaching controllers

It's now possible to attach two controllers using the same trid, but
different host NQNs.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I73abc6916a96324f68150e78f159d19dfff1414c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23720
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...


# 2e4f95fa 24-May-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Fix a bug that io_path is current even if it is inaccessible

nvme_io_path_is_current() did not check if io_path is available when
it is cached and multipath is active/passive.

Fix the bu

bdev/nvme: Fix a bug that io_path is current even if it is inaccessible

nvme_io_path_is_current() did not check if io_path is available when
it is cached and multipath is active/passive.

Fix the bug and add unit test for all cases including the bug case.

Fixes issue #3376

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I7df10f1808507d846a208c073fb5a376594051aa
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23403
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot

show more ...


# f491ecfe 15-May-2024 Ben Walker <ben@nvidia.com>

Revert "bdev/nvme: Replace spdk_bdev_io module_link with per-io ctx retry_link"

This reverts commit a3bc7320b3a53a10ae77c907deb03b146dc56c83.

Fixes #3298

Change-Id: If2f5436e4199f73b21baeee812084f

Revert "bdev/nvme: Replace spdk_bdev_io module_link with per-io ctx retry_link"

This reverts commit a3bc7320b3a53a10ae77c907deb03b146dc56c83.

Fixes #3298

Change-Id: If2f5436e4199f73b21baeee812084ff242988d17
Signed-off-by: Ben Walker <ben@nvidia.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23191
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>

show more ...


123456789