History log of /spdk/module/bdev/ (Results 1 – 25 of 1706)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
cec5ba2823-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 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

12345678910>>...69