| 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 ...
|
| 01a2c485 | 16-Apr-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/passthru: Pass through dif_check_flags via dif_check_flags_exclude_mask
The generic bdev layer already checks if I/O has only flags supported by the underlying bdev. Hence, negate I/O's dif_che
bdev/passthru: Pass through dif_check_flags via dif_check_flags_exclude_mask
The generic bdev layer already checks if I/O has only flags supported by the underlying bdev. Hence, negate I/O's dif_check_flags here.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I02350bc1172531766225a0f30b38f5aa211cf221 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22824 Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| e93f0f94 | 24-Oct-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/malloc: Support accel sequence when DIF is enabled
malloc bdev module did not support accel sequence if DIF was enabled. Remove the limitation by utilizing spdk_bdev_io_hide_metadata().
If DIF
bdev/malloc: Support accel sequence when DIF is enabled
malloc bdev module did not support accel sequence if DIF was enabled. Remove the limitation by utilizing spdk_bdev_io_hide_metadata().
If DIF insert/strip is done by accel sequence, it is not possible to verify DIF of I/O buffer. Hence, verify DIF of malloc buffer instead.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: Idb088b6fc3cc045028c33649c84218c708fd601b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25326 Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| c86e5b18 | 11-Nov-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/malloc: Extract internal of verify_pi() for code reuse
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: Ib4f3f9e038d824ac5a8e4c65a2cff1a3e365a432 Reviewed-on: https://review.s
bdev/malloc: Extract internal of verify_pi() for code reuse
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: Ib4f3f9e038d824ac5a8e4c65a2cff1a3e365a432 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25418 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@nvidia.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> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
show more ...
|
| 97329b16 | 26-Apr-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/malloc: malloc_done() uses switch-case for clean up
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: Ibe8956b54ec5d2bf50f5261f04d0f61a783a5cc2 Reviewed-on: https://review.spdk
bdev/malloc: malloc_done() uses switch-case for clean up
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: Ibe8956b54ec5d2bf50f5261f04d0f61a783a5cc2 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22988 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> 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>
show more ...
|
| f5304d66 | 24-Oct-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
bdev/malloc: Fix unexpected DIF verification error for initial read
The patch https://github.com/spdk/spdk/commit/e1f15ba5418b38056fdb6d67186075aa1fada9e7 set reference tag to 0xFFFFFFFF and set app
bdev/malloc: Fix unexpected DIF verification error for initial read
The patch https://github.com/spdk/spdk/commit/e1f15ba5418b38056fdb6d67186075aa1fada9e7 set reference tag to 0xFFFFFFFF and set application tag to 0xFFFF.
However, these are actually written to DIF fields only if their checks are enabled. Usually, reference tag check is enabled but application tag check is disabled.
For DIF type 1 or 2, DIF check is disabled only if application tag is 0xFFFF.
Hence, the value of 0xFFFFFFFF in the reference tag caused verification error for any read.
The previous patch fixed DIF library to set application tag to 0 if its check is disabled. This patch fixes another problem, to set application tag to 0xFFFF as source code comment says even if application tag check is disabled.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I1d444eb6cc6de2e36abc7b0b85364c11dbe1df67 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25324 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot 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> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.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 ...
|
| e0d7428b | 23-Oct-2024 |
Atul Malakar <a.malakar@samsung.com> |
lvol: Add custom metadata page size to lvstore
Added new --md_page_size parameter to bdev_lvol_create_lvstore RPC. It facilitates user to pick a custom md_page_size, greater than phys_blocklen of th
lvol: Add custom metadata page size to lvstore
Added new --md_page_size parameter to bdev_lvol_create_lvstore RPC. It facilitates user to pick a custom md_page_size, greater than phys_blocklen of the underlying device.
This will allow functional testing of the large IU metadata changes on 4K IU NVMe SSDs.
Change-Id: Ib1bc68ba4d5b8a7db7f2befc1f616b342c01bc0f Signed-off-by: Atul Malakar <a.malakar@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25304 Community-CI: Mellanox Build Bot Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Ben Walker <ben@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> 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@nvidia.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 ...
|
| 1c2e5eda | 23-Oct-2024 |
Michal Berger <michal.berger@intel.com> |
bdev/xnvme: Make sure conserve_cpu opt is preserved in the struct
Change-Id: I253ecbdea35a44ef546785770a09f44be7ffbaaf Signed-off-by: Michal Berger <michal.berger@intel.com> Reviewed-on: https://rev
bdev/xnvme: Make sure conserve_cpu opt is preserved in the struct
Change-Id: I253ecbdea35a44ef546785770a09f44be7ffbaaf Signed-off-by: Michal Berger <michal.berger@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25303 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Karl Bonde Torp <k.torp@samsung.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.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> 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 ...
|
| 3511bd09 | 08-Oct-2024 |
Rafal Stefanowski <rafal.stefanowski@huawei.com> |
bdev/ocf: Update OCF to version 24.9
This patch includes all the essential changes needed for compatibility with OCF 24.9.
1. Introduce IO forward mechanism
This functionality removes all memory a
bdev/ocf: Update OCF to version 24.9
This patch includes all the essential changes needed for compatibility with OCF 24.9.
1. Introduce IO forward mechanism
This functionality removes all memory allocations on the IO path by creating abstractions which allow to pass all the needed information to the bottom volume, using original buffers and IO requests already allocated by the user, without the need for creating indirect IO representations. The responsibility for refcount accounting and error aggregation was moved from IO engines to a new intermediate layer introduced by forward IO.
2. Remove ocf_submit_* ops
Get rid of the code which has been superseded by forward IO.
3. Update queue creation API
Remove lock protecting queue list in the cache. It's now properly protected by the OCF itself.
4. Use dedicated ocf_io_t type instead of struct ocf_io
5. Update OCF API usage
All those patches needed to be squashed in order to fulfill the requirements of SPDK CI builds.
Change-Id: I81098f4732109677c2fc48558ac88b3527a8f12f Signed-off-by: Rafal Stefanowski <rafal.stefanowski@huawei.com> Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com> Signed-off-by: Avi Halaf <avi.halaf@huawei.com> Signed-off-by: Amir Haroush <amir.haroush@huawei.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25397 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.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 ...
|