History log of /spdk/module/bdev/nvme/ (Results 1 – 25 of 841)
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 ...


/spdk/CHANGELOG.md
/spdk/app/fio/bdev/fio_plugin.c
/spdk/app/fio/nvme/fio_plugin.c
/spdk/doc/Doxyfile
/spdk/doc/jsonrpc.md
/spdk/doc/nvmf.md
/spdk/doc/tracing.md
/spdk/examples/bdev/bdevperf/bdevperf.c
/spdk/examples/blob/cli/blobcli.c
/spdk/examples/nvme/cmb_copy/cmb_copy.c
/spdk/include/spdk/accel.h
/spdk/include/spdk/bdev.h
/spdk/include/spdk/bdev_module.h
/spdk/include/spdk/dif.h
/spdk/include/spdk/nvme_spec.h
/spdk/include/spdk/nvmf.h
/spdk/include/spdk/nvmf_transport.h
/spdk/include/spdk_internal/nvme_tcp.h
/spdk/lib/accel/accel.c
/spdk/lib/bdev/bdev.c
/spdk/lib/bdev/part.c
/spdk/lib/bdev/spdk_bdev.map
/spdk/lib/blob/blobstore.c
/spdk/lib/env_dpdk/init.c
/spdk/lib/event/scheduler_static.c
/spdk/lib/ftl/base/ftl_base_bdev.c
/spdk/lib/lvol/lvol.c
/spdk/lib/nvme/nvme.c
/spdk/lib/nvme/nvme_discovery.c
/spdk/lib/nvme/nvme_internal.h
/spdk/lib/nvmf/ctrlr.c
/spdk/lib/nvmf/ctrlr_bdev.c
/spdk/lib/nvmf/nvmf.c
/spdk/lib/nvmf/nvmf_internal.h
/spdk/lib/nvmf/nvmf_rpc.c
/spdk/lib/nvmf/subsystem.c
/spdk/lib/nvmf/tcp.c
/spdk/lib/nvmf/transport.c
/spdk/lib/nvmf/transport.h
/spdk/lib/nvmf/vfio_user.c
/spdk/lib/reduce/reduce.c
/spdk/lib/util/dif.c
/spdk/lib/util/spdk_util.map
/spdk/module/accel/mlx5/accel_mlx5.c
/spdk/module/bdev/malloc/bdev_malloc.c
bdev_nvme.c
/spdk/module/bdev/passthru/vbdev_passthru.c
/spdk/module/event/subsystems/nvmf/nvmf_rpc.c
/spdk/python/spdk/rpc/nvmf.py
/spdk/python/spdk/rpc/ublk.py
/spdk/scripts/check_format.sh
/spdk/scripts/rpc.py
/spdk/test/bdev/blockdev.sh
/spdk/test/common/autotest_common.sh
/spdk/test/common/lib/bdev/common_stubs.h
/spdk/test/dma/test_dma/test_dma.c
/spdk/test/unit/lib/bdev/bdev.c/bdev_ut.c
/spdk/test/unit/lib/bdev/mt/bdev.c/bdev_ut.c
/spdk/test/unit/lib/bdev/nvme/bdev_nvme.c/bdev_nvme_ut.c
/spdk/test/unit/lib/bdev/part.c/part_ut.c
/spdk/test/unit/lib/blob/blob.c/blob_ut.c
/spdk/test/unit/lib/nvme/nvme.c/nvme_ut.c
/spdk/test/unit/lib/nvmf/ctrlr.c/ctrlr_ut.c
/spdk/test/unit/lib/nvmf/ctrlr_bdev.c/ctrlr_bdev_ut.c
/spdk/test/unit/lib/nvmf/nvmf.c/nvmf_ut.c
/spdk/test/unit/lib/nvmf/subsystem.c/subsystem_ut.c
/spdk/test/unit/lib/nvmf/tcp.c/tcp_ut.c
/spdk/test/unit/lib/nvmf/transport.c/transport_ut.c
/spdk/test/unit/lib/nvmf/vfio_user.c/vfio_user_ut.c
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 ...

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

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


/spdk/app/spdk_nvme_perf/perf.c
/spdk/autotest.sh
/spdk/examples/nvmf/nvmf/nvmf.c
/spdk/examples/thread/thread/thread_ex.c
/spdk/include/spdk/bdev_module.h
/spdk/include/spdk/module/bdev/nvme.h
/spdk/include/spdk_internal/mlx5.h
/spdk/include/spdk_internal/rdma_provider.h
/spdk/lib/bdev/bdev.c
/spdk/lib/mlx5/mlx5_umr.c
/spdk/lib/mlx5/spdk_mlx5.map
/spdk/lib/nvme/nvme_rdma.c
/spdk/lib/nvmf/fc.c
/spdk/lib/nvmf/fc_ls.c
/spdk/lib/nvmf/nvmf_fc.h
/spdk/lib/nvmf/vfio_user.c
/spdk/lib/rdma_provider/Makefile
/spdk/lib/rdma_provider/rdma_provider_mlx5_dv.c
/spdk/lib/rdma_provider/rdma_provider_verbs.c
/spdk/lib/rdma_provider/spdk_rdma_provider.map
/spdk/lib/reduce/reduce.c
/spdk/lib/vhost/vhost.c
/spdk/lib/vhost/vhost_internal.h
/spdk/mk/spdk.lib_deps.mk
/spdk/module/accel/dpdk_compressdev/accel_dpdk_compressdev.c
/spdk/module/accel/error/accel_error.c
/spdk/module/accel/mlx5/accel_mlx5.c
/spdk/module/accel/mlx5/accel_mlx5.h
/spdk/module/accel/mlx5/accel_mlx5_rpc.c
bdev_nvme.h
/spdk/module/bdev/ocf/ctx.c
/spdk/module/bdev/ocf/ctx.h
/spdk/module/bdev/ocf/vbdev_ocf.c
/spdk/module/bdev/ocf/volume.c
/spdk/module/bdev/ocf/volume.h
/spdk/ocf
/spdk/python/spdk/rpc/mlx5.py
/spdk/scripts/rpc.py
/spdk/test/accel/mlx5/accel_mlx5_copy.sh
/spdk/test/accel/mlx5/accel_mlx5_crc32c.sh
/spdk/test/accel/mlx5/accel_mlx5_crypto.sh
/spdk/test/common/autotest_common.sh
/spdk/test/nvme/interrupt.sh
/spdk/test/nvmf/target/nsid.sh
/spdk/test/scheduler/common.sh
/spdk/test/unit/lib/bdev/mt/bdev.c/bdev_ut.c
/spdk/test/unit/lib/nvme/nvme_rdma.c/nvme_rdma_ut.c
/spdk/test/unit/lib/nvmf/fc.c/fc_ut.c
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 ...

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

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

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

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

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

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

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

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

12345678910>>...34