| cec5ba28 | 23-Aug-2024 |
Alexey Marchuk <alexeymar@nvidia.com> |
nvme/rdma: Register UMR per IO request
If accel sequence is supported, append a copy task even if there is no accel sequence. NVME RDMA driver expects that accel framework registers UMR for the data
nvme/rdma: Register UMR per IO request
If accel sequence is supported, append a copy task even if there is no accel sequence. NVME RDMA driver expects that accel framework registers UMR for the data buffer. This UMR allows to represent fragmented payload as a virtually contig one.
Signed-off-by: Alexey Marchuk <alexeymar@nvidia.com> Change-Id: I410f991959b08eab033105a7dbb4a9aaba491567 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24709 Reviewed-by: Ben Walker <ben@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| 92d1e663 | 05-Dec-2024 |
Alex Michon <amichon@kalrayinc.com> |
bdev/nvme: Fix depopulating a namespace twice
If we receive 2 AENs in a row, we may attempt to delete the same namespace twice, which would result in a use-after-free.
Change-Id: I4d9cb4a1ada5d6c94
bdev/nvme: Fix depopulating a namespace twice
If we receive 2 AENs in a row, we may attempt to delete the same namespace twice, which would result in a use-after-free.
Change-Id: I4d9cb4a1ada5d6c945cad10a963f218c70d5c8f8 Signed-off-by: Alex Michon <amichon@kalrayinc.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25511 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Mellanox Build Bot Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
show more ...
|
| 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 ...
|
| 77ee034c | 29-Nov-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/nvme: Add lock to unprotected operations around attach controller
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I8cddce04c17fe07a1e66d014c1ce747147a15a8e Reviewed-on: https
bdev/nvme: Add lock to unprotected operations around attach controller
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I8cddce04c17fe07a1e66d014c1ce747147a15a8e Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25487 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: GangCao <gang.cao@intel.com> Reviewed-by: Ben Walker <ben@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com>
show more ...
|
| 48454bb2 | 28-Nov-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/nvme: Add lock to unprotected operations around detach controller
When a NVMe bdev has a multipath configuration made of two NVMe-oF controllers and the two NVMe-oF controllers are detached, th
bdev/nvme: Add lock to unprotected operations around detach controller
When a NVMe bdev has a multipath configuration made of two NVMe-oF controllers and the two NVMe-oF controllers are detached, the NVMe bdev is deleted but sometimes one of NVMe-oF controllers failed to delete.
The root cause analysis showed that the failed NVMe-oF controller was not tried to delete at all.
It is very likely that some complex race condition occurred.
Then, it was found that a few critical operations were not protected by lock.
Checking nvme_ns->bdev was protected by lock but clearing nvme_ns->bdev was not protected by the same lock.
Removing nvme_ns from bdev->nvme_ns_list was protected by lock but traversing bdev->nvme_ns_list was not protected by the lock.
Hence, add these missing locks.
The lock ordering should be nvme_bdev->mutex is first and nvme_ctrlr->mutex is second.
nvme_ctrlr_depopulate_namespaces() does not hold lock while traversing nvme_ns_tree. However, nvme_ns_tree is deleted at the final controller deletion. Hence, this will not be necessary for now
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I974adbf87ca02e1b2f167dd3eab485934ff03774 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25483 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: GangCao <gang.cao@intel.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com> Reviewed-by: Ben Walker <ben@nvidia.com> Community-CI: Mellanox Build Bot
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 ...
|
| 9a684763 | 22-Oct-2024 |
Yash Raj Singh <yash.rajsingh@nutanix.com> |
bdev/nvme: Fix spdk_bdev_nvme_create()
This patch fixes spdk_bdev_nvme_create function by ensuring that base_name received is persisted until we create the bdevs. Current all in-tree callers persist
bdev/nvme: Fix spdk_bdev_nvme_create()
This patch fixes spdk_bdev_nvme_create function by ensuring that base_name received is persisted until we create the bdevs. Current all in-tree callers persist the string parameter that is passed, but we want to support the case for out-of-tree callers which needs the string parameter to be persisted.
Change-Id: I371842607f8360e83283b92ff9750f567fa375ca Signed-off-by: Yash Raj Singh <yash.rajsingh@nutanix.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25209 Reviewed-by: Jim Harris <jim.harris@nvidia.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Community-CI: Mellanox Build Bot Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
show more ...
|
| 0383e688 | 13-Nov-2024 |
Alex Michon <amichon@kalrayinc.com> |
bdev/nvme: Fix race between reset and qpair creation/deletion
We have the following race condition: 1) A reset is initiated. We iterate over all IO channels to destroy the qpairs. 2) A new IO cha
bdev/nvme: Fix race between reset and qpair creation/deletion
We have the following race condition: 1) A reset is initiated. We iterate over all IO channels to destroy the qpairs. 2) A new IO channel is created. We create a nvme qpair. 3) The reset process continues. It iterates over all IO channels to recreate the nvme qpair. `reset_iter` is set on the IO channel created at step 2. (Note that we won't recreate a qpair for the IO channel created at step 2). 4) The IO channel created at step 2 gets deleted. `bdev_nvme_destroy_ctrlr_channel_cb` is called. We skip the qpair disconnection because `reset_iter` is set. In the end, the qpair is never disconnected.
Ensure that we always disconnect qpairs, even if a reset is in progress.
Change-Id: I48af99ed582ebfdcaf2a98a92e9077c048bc7c54 Signed-off-by: Alex Michon <amichon@kalrayinc.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25430 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| a0c12854 | 04-Nov-2024 |
Yash Raj Singh <yash.rajsingh@nutanix.com> |
bdev/nvme: Make bdev nvme get and set opts APIs public
This patch exposes bdev_nvme_get_opts and bdev_nvme_set_opts APIs. No changes have been done to the implementation of these functions.
Change-
bdev/nvme: Make bdev nvme get and set opts APIs public
This patch exposes bdev_nvme_get_opts and bdev_nvme_set_opts APIs. No changes have been done to the implementation of these functions.
Change-Id: I8498ed81e14abb66283a1608f17bb6bba8e38975 Signed-off-by: Yash Raj Singh <yash.rajsingh@nutanix.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25406 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@nvidia.com> Community-CI: Mellanox Build Bot Reviewed-by: Ankit Kumar <ankit.kumar@samsung.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| 53ca6a88 | 22-Oct-2024 |
yash.rajsingh <yash.rajsingh@nutanix.com> |
bdev/nvme: Rearrange fields in spdk_bdev_nvme_opts to reduce holes.
This patch rearranges the fields in spdk_bdev_nvme_opts to reduce the number of holes in the structure which reduces the size of t
bdev/nvme: Rearrange fields in spdk_bdev_nvme_opts to reduce holes.
This patch rearranges the fields in spdk_bdev_nvme_opts to reduce the number of holes in the structure which reduces the size of the overall structure. This is required as a preliminary step to expose the bdev_nvme_get_opts and bdev_nvme_set_opts functions to the public API. Later patches will add these functions to the public API.
Change-Id: I6402afecd582297b3ead98383016e6c8dfd385ba Signed-off-by: Yash Raj Singh <yash.rajsingh@nutanix.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25299 Reviewed-by: Ankit Kumar <ankit.kumar@samsung.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Community-CI: Mellanox Build Bot
show more ...
|
| 03b7aa9c | 22-Oct-2024 |
Yash Raj Singh <yash.rajsingh@nutanix.com> |
bdev/nvme: Move the spdk_bdev_nvme_opts and spdk_bdev_timeout_action struct to the public header.
This patch moves the spdk_bdev_nvme_opts and spdk_bdev_timeout_action structs to the public header f
bdev/nvme: Move the spdk_bdev_nvme_opts and spdk_bdev_timeout_action struct to the public header.
This patch moves the spdk_bdev_nvme_opts and spdk_bdev_timeout_action structs to the public header file include/spdk/module/bdev/nvme.h This is required as a preliuminary step to expose the bdev_nvme_get_opts and bdev_nvme_set_opts functions to the public API. Later patches will add these functions to the public API.
Change-Id: Ib6bd16fa085a60f29dd920b4f9c350fa4ffb4c76 Signed-off-by: Yash Raj Singh <yash.rajsingh@nutanix.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25172 Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ankit Kumar <ankit.kumar@samsung.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
show more ...
|
| a4c63447 | 25-Oct-2024 |
Alex Michon <amichon@kalrayinc.com> |
bdev/nvme: Fix race between IO channel creation and reconnection
During a reconnection, we loop over all IO channels to delete the qpairs. Then after a successful reconnection, we loop again over al
bdev/nvme: Fix race between IO channel creation and reconnection
During a reconnection, we loop over all IO channels to delete the qpairs. Then after a successful reconnection, we loop again over all IO channels to recreate the qpairs. However, if a user created a new IO channel in between these two steps, it will create a new qpair that will get overridden during the second loop.
Change-Id: Ifae52c991aa1175bcaa12ef5a4f0b7cc90ae6db1 Signed-off-by: Alex Michon <amichon@kalrayinc.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25379 Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Changpeng Liu <changpeliu@tencent.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
show more ...
|
| fb6c49f2 | 24-Oct-2024 |
Konrad Sztyber <konrad.sztyber@intel.com> |
bdev: add spdk_bdev_get_nvme_nsid()
The id of a namespace is required to be sent in some, but not all, admin commands. So, without it, it's impossible to send an admin command that does require it.
bdev: add spdk_bdev_get_nvme_nsid()
The id of a namespace is required to be sent in some, but not all, admin commands. So, without it, it's impossible to send an admin command that does require it.
This is not a problem for IO commands, as bdev_nvme always fills in nsid for IO command passthru. However, we can't do that for admin commands, as some admin commands require nsid to be cleared or behave differently when it's set to the broadcast value (0xffffffff).
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: Ic943a1c52cd9043cc09469ad421be2f089aac606 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25363 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot 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@samsung.com> Reviewed-by: Changpeng Liu <changpeliu@tencent.com>
show more ...
|
| 60826719 | 13-Sep-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/nvme: Factor out incrementing nvme_ctrlr->ref into a helper function
The upcoming changes will increment nvme_ctrlr->ref for other cases. This is a preparation for those.
Signed-off-by: Shuhei
bdev/nvme: Factor out incrementing nvme_ctrlr->ref into a helper function
The upcoming changes will increment nvme_ctrlr->ref for other cases. This is a preparation for those.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I4975239073483bf8462160f78d87a162d0a4c836 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24911 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 ...
|
| 8f9f6245 | 13-Sep-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/nvme: Rename nvme_ctrlr_release() by nvme_ctrlr_put_ref()
The following patches will factor out incrementing nvme_ctrlr->ref into a helper function. In SPDK, we find get/put_ref have been used
bdev/nvme: Rename nvme_ctrlr_release() by nvme_ctrlr_put_ref()
The following patches will factor out incrementing nvme_ctrlr->ref into a helper function. In SPDK, we find get/put_ref have been used for similar cases. Follow such pattern.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I875318fbe4dd04631cb75a6824c520ea66b49cda Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24910 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Community-CI: Mellanox Build Bot Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
show more ...
|
| 947e85d8 | 13-Sep-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/nvme: Clean up accel_sequence_supported() to follow existing pattern
Previously, bdev_nvme_get_ctrlr() was used by bdev_nvme_accel_sequence_supported(). However, bdev_nvme_get_ctrlr() was for s
bdev/nvme: Clean up accel_sequence_supported() to follow existing pattern
Previously, bdev_nvme_get_ctrlr() was used by bdev_nvme_accel_sequence_supported(). However, bdev_nvme_get_ctrlr() was for special purpose and was not general. Following the existing bdev_nvme_io_type_supported() will be better.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: Ib4828c3caa4cf9c9d3bec1fe708d75322b816063 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24909 Community-CI: Mellanox Build Bot Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.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 ...
|
| a90f7d98 | 24-Oct-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/nvme: Relocate bdev_nvme_reset_ctrlr_complete()
The next patch will merge bdev_nvme_reset_ctrlr_complete() and _bdev_nvme_reset_ctrlr_complete(). This relocation will be helpful to reduce the s
bdev/nvme: Relocate bdev_nvme_reset_ctrlr_complete()
The next patch will merge bdev_nvme_reset_ctrlr_complete() and _bdev_nvme_reset_ctrlr_complete(). This relocation will be helpful to reduce the size of the next patch.
bdev_nvme_disable_ctrlr_complete() will have the same change in the next patch. Relocate bdev_nvme_disable_ctrlr_complete() in this patch too.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I7a337c228041a1c84085c100f485a6d32a727925 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25320 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
show more ...
|
| 6eb2657a | 21-Oct-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/nvme: Inline bdev_nvme_reset_ctrlr() into _bdev_nvme_reset_io()
Furthermore, inline bdev_nvme_reset_ctrlr() into _bdev_nvme_reset_io().
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
bdev/nvme: Inline bdev_nvme_reset_ctrlr() into _bdev_nvme_reset_io()
Furthermore, inline bdev_nvme_reset_ctrlr() into _bdev_nvme_reset_io().
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I174a2804501cb2a64df720dc1db6dd82556823d8 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25290 Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Mellanox Build Bot Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| 4bb6b093 | 21-Oct-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/nvme: Inline nvme_ctrlr_op(CTRLR_OP_RESET) into _bdev_nvme_reset_io()
Inline nvme_ctrlr_op(CTRLR_OP_RESET) into _bdev_nvme_reset_io(). Simplify if-else block a little together.
Signed-off-by:
bdev/nvme: Inline nvme_ctrlr_op(CTRLR_OP_RESET) into _bdev_nvme_reset_io()
Inline nvme_ctrlr_op(CTRLR_OP_RESET) into _bdev_nvme_reset_io(). Simplify if-else block a little together.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I98359cc0ce9d124159ee43bff9cd91f0c9a2cd1d Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25289 Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
show more ...
|
| 517e85fc | 21-Oct-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/nvme: Factor out operations under mutex from bdev_nvme_reset_ctrlr()
Factor out operations under mutex held from bdev_nvme_reset_ctrlr() into bdev_nvme_reset_ctrlr_unsafe().
We want to move pe
bdev/nvme: Factor out operations under mutex from bdev_nvme_reset_ctrlr()
Factor out operations under mutex held from bdev_nvme_reset_ctrlr() into bdev_nvme_reset_ctrlr_unsafe().
We want to move pending reset list from per SPDK thread to global, and then move enqueue operation into bdev_nvme_reset_ctrlr().
However, bdev_nvme_reset_ctrlr() is shared between JSON RPC and bdev_io. To keep code cleanness, this refactoring is necessary.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I5a5333594ff19956575e3c4d6398f3a275c0dfc6 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25288 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
show more ...
|
| 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 ...
|
| 0afe95a3 | 07-Oct-2024 |
Konrad Sztyber <konrad.sztyber@intel.com> |
bdev/nvme: use bdev_nvme linker script
Commit dd98a248aed2 ("bdev_nvme: Make bdev nvme create and set multipath policy APIs public") exposed functions from the bdev_nvme library, but it left the Mak
bdev/nvme: use bdev_nvme linker script
Commit dd98a248aed2 ("bdev_nvme: Make bdev nvme create and set multipath policy APIs public") exposed functions from the bdev_nvme library, but it left the Makefile pointing at the blank linker script, resulting in the .so not defining any symbols. Because of that, the minor version of the bdev_nvme library needs to be bumped.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I91248c37856b52c04e0cb6e7f01eea789c559302 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25162 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.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 ...
|
| 57d621db | 18-Oct-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/nvme: Add NVME_BDEV_*LOG() to identify nvme_bdev
spdk_bdev_reset() is per nvme_bdev and per bdev_io. We want to track each spdk_bdev_reset separately.
Change structure of if-else blocks in _bd
bdev/nvme: Add NVME_BDEV_*LOG() to identify nvme_bdev
spdk_bdev_reset() is per nvme_bdev and per bdev_io. We want to track each spdk_bdev_reset separately.
Change structure of if-else blocks in _bdev_nvme_reset_io() slightly to improve readability.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: Id55fe9ad2f5c44cdd436af0a1bfee24323460112 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25181 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: Aleksey Marchuk <alexeymar@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Jim Harris <jim.harris@samsung.com>
show more ...
|