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 ...
|