History log of /spdk/test/unit/lib/bdev/nvme/bdev_nvme.c/ (Results 101 – 125 of 221)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
c113e4cd09-Mar-2022 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Alloc qpair context dynamically on nvme_ctrlr_channel

This is another preparation to disconnect qpair asynchronously.

Add nvme_qpair object and move the qpair and poll_group pointers and

bdev/nvme: Alloc qpair context dynamically on nvme_ctrlr_channel

This is another preparation to disconnect qpair asynchronously.

Add nvme_qpair object and move the qpair and poll_group pointers and
the io_path_list list from nvme_ctrlr_channel to nvme_qpair. nvme_qpair
is allocated dynamically when creating nvme_ctrlr_channel, and
nvme_ctrlr_channel points to nvme_qpair.

We want to keep the times of references at I/O path. Change nvme_io_path
to point nvme_qpair instead of nvme_ctrlr_channel, and add
nvme_ctrlr_channel pointer to nvme_qpair.

nvme_ctrlr_channel may be freed earlier than nvme_qpair. nvme_poll_group
lists nvme_qpair instead of nvme_ctrlr_channel and nvme_qpair has a
pointer to nvme_ctrlr.

By using the nvme_ctrlr pointer of the nvme_qpair, a helper function
nvme_ctrlr_channel_get_ctrlr() is not necessary any more. Remove it.

Change-Id: Ib3f579d3441f31b9db7d3844ec56c49e2bb53a5d
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11832
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...

d7f0a18208-Mar-2022 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Inline bdev_nvme_destroy_qpair()

In the following patches, spdk_nvme_ctrlr_disconnect_io_qpair() will
be changed to be asynchronous, spdk_nvme_ctrlr_disconnect_io_qpair()
will be called f

bdev/nvme: Inline bdev_nvme_destroy_qpair()

In the following patches, spdk_nvme_ctrlr_disconnect_io_qpair() will
be changed to be asynchronous, spdk_nvme_ctrlr_disconnect_io_qpair()
will be called first and then spdk_nvme_ctrlr_free_io_qpair() after
the qpair is actually disconnected.

We will not be able to keep the current bdev_nvme_destroy_qpair()
function.

As a preparation, inline bdev_nvme_destroy_qpair() and remove it.

Additionally, this patch has the following changes.

Previously I/O qpair was freed and then I/O path caches were cleared.
Both are SPDK thread local. So there is no dependency for the ordering
of these two operations. However, it will reduce the size of the
following patches if we clear I/O path caches before freeing I/O qpair
when the qpair is disconnected. Hence we clear I/O path caches and then
free I/O qpair.

Remove DTRACE for bdev_nvme_destroy_qpair() for now.
It will be restored in the following patches.

Furthermore, fix potential NULL pointer acces in
bdev_nvme_create_qpair().

Change-Id: I0ab78ccb0d240e56b95b53179341afcd909a31f6
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10746
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...

00a7998204-Mar-2022 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Move per controller settings into a option structure

The following patches will enable us to specify I/O error resiliency
options per nvme_ctrlr as global options. To do it easier, move
p

bdev/nvme: Move per controller settings into a option structure

The following patches will enable us to specify I/O error resiliency
options per nvme_ctrlr as global options. To do it easier, move
per controller options about I/O error resiliency into struct nvme_ctrlr_opts.

prchk_flags is not exactly for resiliency but move it into struct
nvme_ctrlr_opts too.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I85fd1738bb6e293cd804b086ade82274485f213d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11829
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>

show more ...

1a00f5c008-Mar-2022 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Fix overflow of RB tree comparison when the NSID is very big

If 0 - UINT32_MAX or UINT32_MAX - 0 is substituted into a int variable,
we cannot get any expected result.

Fix the bug and ad

bdev/nvme: Fix overflow of RB tree comparison when the NSID is very big

If 0 - UINT32_MAX or UINT32_MAX - 0 is substituted into a int variable,
we cannot get any expected result.

Fix the bug and add unit test case to verify the fix.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Ib045273238753e16755328805b38569909c8b83a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11836
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot

show more ...


/spdk/CHANGELOG.md
/spdk/CONFIG
/spdk/app/spdk_top/spdk_top.c
/spdk/autobuild.sh
/spdk/autotest.sh
/spdk/configure
/spdk/deprecation.md
/spdk/doc/accel_fw.md
/spdk/doc/blob.md
/spdk/doc/jsonrpc.md
/spdk/doc/nvmf.md
/spdk/doc/performance_reports.md
/spdk/dpdkbuild/Makefile
/spdk/examples/accel/perf/accel_perf.c
/spdk/examples/blob/cli/blobcli.c
/spdk/examples/idxd/perf/perf.c
/spdk/examples/nvme/fio_plugin/fio_plugin.c
/spdk/examples/nvme/perf/perf.c
/spdk/examples/nvmf/nvmf/nvmf.c
/spdk/include/spdk/accel_engine.h
/spdk/include/spdk/bdev_module.h
/spdk/include/spdk/blob.h
/spdk/include/spdk/event.h
/spdk/include/spdk/idxd.h
/spdk/include/spdk/idxd_spec.h
/spdk/include/spdk/nvme_spec.h
/spdk/include/spdk/nvmf_transport.h
/spdk/include/spdk/thread.h
/spdk/include/spdk_internal/accel_engine.h
/spdk/include/spdk_internal/event.h
/spdk/lib/accel/Makefile
/spdk/lib/accel/accel_engine.c
/spdk/lib/bdev/Makefile
/spdk/lib/bdev/bdev.c
/spdk/lib/bdev/spdk_bdev.map
/spdk/lib/blob/Makefile
/spdk/lib/blob/blobstore.c
/spdk/lib/blob/blobstore.h
/spdk/lib/blob/request.c
/spdk/lib/blob/request.h
/spdk/lib/blobfs/Makefile
/spdk/lib/conf/Makefile
/spdk/lib/dma/Makefile
/spdk/lib/env_dpdk/Makefile
/spdk/lib/env_dpdk/env.mk
/spdk/lib/env_dpdk/init.c
/spdk/lib/env_ocf/mpool.c
/spdk/lib/env_ocf/ocf_env.c
/spdk/lib/env_ocf/ocf_env.h
/spdk/lib/event/Makefile
/spdk/lib/event/app.c
/spdk/lib/event/app_rpc.c
/spdk/lib/event/reactor.c
/spdk/lib/ftl/Makefile
/spdk/lib/idxd/Makefile
/spdk/lib/idxd/idxd.c
/spdk/lib/idxd/idxd.h
/spdk/lib/idxd/idxd_user.c
/spdk/lib/init/Makefile
/spdk/lib/ioat/Makefile
/spdk/lib/iscsi/Makefile
/spdk/lib/iscsi/iscsi.c
/spdk/lib/json/Makefile
/spdk/lib/jsonrpc/Makefile
/spdk/lib/log/Makefile
/spdk/lib/lvol/Makefile
/spdk/lib/lvol/lvol.c
/spdk/lib/nbd/Makefile
/spdk/lib/notify/Makefile
/spdk/lib/nvme/Makefile
/spdk/lib/nvme/nvme.c
/spdk/lib/nvme/nvme_ctrlr.c
/spdk/lib/nvme/nvme_fabric.c
/spdk/lib/nvme/nvme_internal.h
/spdk/lib/nvme/nvme_qpair.c
/spdk/lib/nvme/nvme_rdma.c
/spdk/lib/nvme/nvme_tcp.c
/spdk/lib/nvmf/Makefile
/spdk/lib/nvmf/ctrlr.c
/spdk/lib/nvmf/ctrlr_discovery.c
/spdk/lib/nvmf/fc.c
/spdk/lib/nvmf/nvmf.c
/spdk/lib/nvmf/nvmf_internal.h
/spdk/lib/nvmf/nvmf_rpc.c
/spdk/lib/nvmf/rdma.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/rdma/Makefile
/spdk/lib/reduce/Makefile
/spdk/lib/rpc/Makefile
/spdk/lib/scsi/Makefile
/spdk/lib/scsi/lun.c
/spdk/lib/sock/Makefile
/spdk/lib/thread/Makefile
/spdk/lib/thread/thread.c
/spdk/lib/trace/Makefile
/spdk/lib/trace_parser/Makefile
/spdk/lib/ut_mock/Makefile
/spdk/lib/util/Makefile
/spdk/lib/util/dif.c
/spdk/lib/vfio_user/Makefile
/spdk/lib/vhost/Makefile
/spdk/lib/vhost/rte_vhost_user.c
/spdk/lib/vhost/vhost.c
/spdk/lib/vhost/vhost_blk.c
/spdk/lib/vhost/vhost_internal.h
/spdk/lib/vhost/vhost_scsi.c
/spdk/lib/virtio/Makefile
/spdk/lib/vmd/Makefile
/spdk/mk/spdk.common.mk
/spdk/mk/spdk.fio.mk
/spdk/mk/spdk.modules.mk
/spdk/mk/spdk.nvmecli.mk
/spdk/module/accel/idxd/Makefile
/spdk/module/accel/idxd/accel_engine_idxd.c
/spdk/module/accel/ioat/Makefile
/spdk/module/accel/ioat/accel_engine_ioat.c
/spdk/module/bdev/aio/Makefile
/spdk/module/bdev/aio/bdev_aio.c
/spdk/module/bdev/compress/Makefile
/spdk/module/bdev/compress/vbdev_compress.c
/spdk/module/bdev/compress/vbdev_compress_rpc.c
/spdk/module/bdev/crypto/Makefile
/spdk/module/bdev/crypto/vbdev_crypto.c
/spdk/module/bdev/delay/Makefile
/spdk/module/bdev/error/Makefile
/spdk/module/bdev/ftl/Makefile
/spdk/module/bdev/gpt/Makefile
/spdk/module/bdev/iscsi/Makefile
/spdk/module/bdev/lvol/Makefile
/spdk/module/bdev/malloc/Makefile
/spdk/module/bdev/malloc/bdev_malloc.c
/spdk/module/bdev/null/Makefile
/spdk/module/bdev/null/bdev_null.c
/spdk/module/bdev/nvme/Makefile
/spdk/module/bdev/nvme/bdev_nvme.c
/spdk/module/bdev/nvme/bdev_nvme.h
/spdk/module/bdev/nvme/bdev_nvme_rpc.c
/spdk/module/bdev/ocf/Makefile
/spdk/module/bdev/ocf/volume.c
/spdk/module/bdev/passthru/Makefile
/spdk/module/bdev/pmem/Makefile
/spdk/module/bdev/raid/Makefile
/spdk/module/bdev/rbd/Makefile
/spdk/module/bdev/split/Makefile
/spdk/module/bdev/uring/Makefile
/spdk/module/bdev/virtio/Makefile
/spdk/module/bdev/zone_block/Makefile
/spdk/module/blob/bdev/Makefile
/spdk/module/blobfs/bdev/Makefile
/spdk/module/env_dpdk/Makefile
/spdk/module/event/subsystems/accel/Makefile
/spdk/module/event/subsystems/bdev/Makefile
/spdk/module/event/subsystems/iscsi/Makefile
/spdk/module/event/subsystems/nbd/Makefile
/spdk/module/event/subsystems/nvmf/Makefile
/spdk/module/event/subsystems/nvmf/event_nvmf.h
/spdk/module/event/subsystems/nvmf/nvmf_rpc.c
/spdk/module/event/subsystems/nvmf/nvmf_tgt.c
/spdk/module/event/subsystems/scheduler/Makefile
/spdk/module/event/subsystems/scsi/Makefile
/spdk/module/event/subsystems/sock/Makefile
/spdk/module/event/subsystems/vhost/Makefile
/spdk/module/event/subsystems/vmd/Makefile
/spdk/module/scheduler/dpdk_governor/Makefile
/spdk/module/scheduler/dynamic/Makefile
/spdk/module/scheduler/gscheduler/Makefile
/spdk/module/sock/posix/Makefile
/spdk/module/sock/uring/Makefile
/spdk/module/sock/uring/uring.c
/spdk/scripts/fio-wrapper
/spdk/scripts/perf/nvmf/README.md
/spdk/scripts/perf/nvmf/run_nvmf.py
/spdk/scripts/pkgdep/rhel.sh
/spdk/scripts/rpc.py
/spdk/scripts/rpc/bdev.py
/spdk/scripts/rpc/nvme.py
/spdk/scripts/rpc/nvmf.py
/spdk/scripts/vagrant/create_nvme_img.sh
/spdk/scripts/vagrant/create_vbox.sh
/spdk/shared_lib/Makefile
/spdk/test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz.c
/spdk/test/app/match/match
/spdk/test/blobstore/btest.out.match
/spdk/test/common/autotest_common.sh
/spdk/test/common/config/pkgdep/git
/spdk/test/common/skipped_tests.txt
/spdk/test/json_config/json_config.sh
/spdk/test/make/check_so_deps.sh
/spdk/test/nvmf/common.sh
/spdk/test/nvmf/host/async_init.sh
/spdk/test/nvmf/host/discovery.sh
/spdk/test/nvmf/host/failover.sh
/spdk/test/nvmf/host/fio.sh
/spdk/test/nvmf/host/identify.sh
/spdk/test/nvmf/host/perf.sh
/spdk/test/nvmf/host/target_disconnect.sh
/spdk/test/nvmf/target/abort.sh
/spdk/test/nvmf/target/create_transport.sh
/spdk/test/nvmf/target/discovery.sh
/spdk/test/nvmf/target/ns_hotplug_stress.sh
/spdk/test/nvmf/target/nvme_cli.sh
/spdk/test/nvmf/target/nvmf_lvol.sh
/spdk/test/nvmf/target/nvmf_vhost.sh
/spdk/test/nvmf/target/zcopy.sh
/spdk/test/scheduler/cgroups.sh
/spdk/test/spdkcli/match_files/spdkcli_details_vhost.test.match
/spdk/test/spdkcli/match_files/spdkcli_pmem.test.match
/spdk/test/spdkcli/match_files/spdkcli_raid.test.match
/spdk/test/spdkcli/match_files/spdkcli_rbd.test.match
/spdk/test/spdkcli/match_files/spdkcli_vhost.test.match
/spdk/test/spdkcli/nvmf.sh
/spdk/test/unit/lib/accel/accel.c/accel_engine_ut.c
/spdk/test/unit/lib/bdev/bdev.c/bdev_ut.c
/spdk/test/unit/lib/bdev/crypto.c/crypto_ut.c
bdev_nvme_ut.c
/spdk/test/unit/lib/blob/blob.c/blob_ut.c
/spdk/test/unit/lib/event/app.c/app_ut.c
/spdk/test/unit/lib/event/reactor.c/reactor_ut.c
/spdk/test/unit/lib/idxd/idxd_user.c/idxd_user_ut.c
/spdk/test/unit/lib/iscsi/conn.c/conn_ut.c
/spdk/test/unit/lib/json_mock.c
/spdk/test/unit/lib/lvol/lvol.c/lvol_ut.c
/spdk/test/unit/lib/nvme/nvme_fabric.c/nvme_fabric_ut.c
/spdk/test/unit/lib/nvme/nvme_rdma.c/nvme_rdma_ut.c
/spdk/test/unit/lib/nvme/nvme_tcp.c/nvme_tcp_ut.c
/spdk/test/unit/lib/nvmf/ctrlr.c/ctrlr_ut.c
/spdk/test/unit/lib/nvmf/ctrlr_discovery.c/ctrlr_discovery_ut.c
/spdk/test/unit/lib/nvmf/nvmf.c/nvmf_ut.c
/spdk/test/unit/lib/nvmf/rdma.c/rdma_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
/spdk/test/unit/lib/rpc/rpc.c/rpc_ut.c
/spdk/test/unit/lib/sock/sock.c/sock_ut.c
/spdk/test/unit/lib/thread/thread.c/thread_ut.c
/spdk/test/vfio_user/vfio_user_restart_vm/vfio_user_restart_vm.sh
08f9b40127-Jan-2022 Evgeniy Kochetov <evgeniik@nvidia.com>

bdev/nvme: Fix namespace comparison

This patch aligns namespace comparison with Linux kernel
implementation:
- UUID is optional and may be NULL
- command set (CSI) should be the same

Signed-off-by:

bdev/nvme: Fix namespace comparison

This patch aligns namespace comparison with Linux kernel
implementation:
- UUID is optional and may be NULL
- command set (CSI) should be the same

Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com>
Change-Id: I8f889989f24cd51b104057217f87eb303b30fa68
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11312
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>

show more ...


/spdk/CHANGELOG.md
/spdk/app/spdk_top/spdk_top.c
/spdk/autobuild.sh
/spdk/autotest.sh
/spdk/doc/idxd.md
/spdk/doc/jsonrpc.md
/spdk/dpdk
/spdk/dpdkbuild/Makefile
/spdk/examples/idxd/perf/perf.c
/spdk/include/spdk/idxd.h
/spdk/include/spdk/idxd_spec.h
/spdk/include/spdk/scsi_spec.h
/spdk/include/spdk/version.h
/spdk/include/spdk_internal/trace_defs.h
/spdk/intel-ipsec-mb
/spdk/lib/bdev/bdev.c
/spdk/lib/event/app.c
/spdk/lib/idxd/idxd.c
/spdk/lib/idxd/idxd.h
/spdk/lib/idxd/idxd_user.c
/spdk/lib/idxd/spdk_idxd.map
/spdk/lib/nvme/nvme_ctrlr.c
/spdk/lib/nvme/nvme_pcie.c
/spdk/lib/nvme/nvme_qpair.c
/spdk/lib/nvme/nvme_rdma.c
/spdk/lib/nvmf/ctrlr.c
/spdk/lib/nvmf/nvmf.c
/spdk/lib/nvmf/nvmf_internal.h
/spdk/lib/nvmf/rdma.c
/spdk/lib/nvmf/subsystem.c
/spdk/lib/nvmf/transport.c
/spdk/lib/nvmf/vfio_user.c
/spdk/lib/scsi/lun.c
/spdk/lib/scsi/scsi_internal.h
/spdk/lib/vhost/Makefile
/spdk/lib/vhost/rte_vhost_user.c
/spdk/lib/vhost/vhost.c
/spdk/lib/vhost/vhost_internal.h
/spdk/libvfio-user
/spdk/module/accel/idxd/accel_engine_idxd.c
/spdk/module/bdev/aio/bdev_aio.c
/spdk/module/bdev/aio/bdev_aio.h
/spdk/module/bdev/aio/bdev_aio_rpc.c
/spdk/module/bdev/compress/vbdev_compress.c
/spdk/module/bdev/crypto/vbdev_crypto.c
/spdk/module/bdev/crypto/vbdev_crypto.h
/spdk/module/bdev/iscsi/bdev_iscsi.c
/spdk/module/bdev/nvme/bdev_nvme.c
/spdk/module/event/subsystems/nvmf/nvmf_tgt.c
/spdk/rpmbuild/rpm.sh
/spdk/scripts/bpf/nvme.bt
/spdk/scripts/common.sh
/spdk/scripts/perf/nvmf/README.md
/spdk/scripts/perf/nvmf/run_nvmf.py
/spdk/scripts/rpc.py
/spdk/scripts/rpc/bdev.py
/spdk/scripts/setup.sh
/spdk/scripts/spdk-gpt.py
/spdk/test/bdev/blockdev.sh
/spdk/test/common/autotest_common.sh
/spdk/test/common/config/pkgdep/patches/dpdk/21.11/dpdk_qat.patch
/spdk/test/common/config/pkgdep/patches/dpdk/22.03/dpdk_qat.patch
/spdk/test/external_code/test_make.sh
/spdk/test/iscsi_tgt/iscsi_tgt.sh
/spdk/test/iscsi_tgt/resize/resize.sh
/spdk/test/nvme/compliance/compliance.sh
/spdk/test/nvme/hw_hotplug.sh
/spdk/test/nvme/nvme.sh
/spdk/test/nvmf/host/perf.sh
bdev_nvme_ut.c
/spdk/test/unit/lib/idxd/idxd_user.c/idxd_user_ut.c
/spdk/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c
/spdk/test/unit/lib/nvme/nvme_ns_cmd.c/nvme_ns_cmd_ut.c
/spdk/test/unit/lib/nvme/nvme_qpair.c/nvme_qpair_ut.c
/spdk/test/unit/lib/nvme/nvme_rdma.c/nvme_rdma_ut.c
/spdk/test/unit/lib/nvme/nvme_tcp.c/nvme_tcp_ut.c
/spdk/test/unit/lib/nvmf/ctrlr.c/ctrlr_ut.c
/spdk/test/unit/lib/nvmf/tcp.c/tcp_ut.c
/spdk/test/unit/lib/nvmf/vfio_user.c/vfio_user_ut.c
/spdk/test/unit/lib/scsi/lun.c/lun_ut.c
/spdk/test/unit/lib/vhost/vhost.c/vhost_ut.c
/spdk/test/vhost/common.sh
/spdk/test/vhost/integrity/integrity_vm.sh
/spdk/test/vhost/perf_bench/vhost_perf.sh
/spdk/test/vhost/readonly/disabled_readonly_vm.sh
3185df9003-Jan-2022 Shuhei Matsumoto <smatsumoto@nvidia.com>

ut/bdev_nvme: Manage adminq's state and return -ENXIO if adminq is disconnected

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I81d4a8ce5c487449ab634bcd4f984d6867febf35
Reviewed-

ut/bdev_nvme: Manage adminq's state and return -ENXIO if adminq is disconnected

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I81d4a8ce5c487449ab634bcd4f984d6867febf35
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10949
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 <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>

show more ...

49b8d1f320-Dec-2021 Shuhei Matsumoto <smatsumoto@nvidia.com>

ut/bdev_nvme: Delete qpair after unwiding context from process_completions()

This is the same effort as the last patch.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I94ef08abd

ut/bdev_nvme: Delete qpair after unwiding context from process_completions()

This is the same effort as the last patch.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I94ef08abdbb2bd2e07d0cd1e552c5d05c805233e
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10817
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 <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>

show more ...

5485f55d20-Dec-2021 Shuhei Matsumoto <smatsumoto@nvidia.com>

ut/bdev_nvme: Separate disconnected and connected qpair in poll_group

More precise stubs for spdk_nvme_poll_group are critically important
to verify upcoming changes.

Add a flag is_failed to struct

ut/bdev_nvme: Separate disconnected and connected qpair in poll_group

More precise stubs for spdk_nvme_poll_group are critically important
to verify upcoming changes.

Add a flag is_failed to struct spdk_nvme_qpair separately from
is_connected. This is used to inject error to a connection.

Replace a single list qpairs by two lists, connected_qpairs and
disconnected_qpairs for struct spdk_nvme_poll_group.

Then utilize these to manage qpair in poll group.

spdk_nvme_ctrlr_reconnect_io_qpair() is not used in the NVMe bdev
module now. Remove the corresponding stub.

Adjust polling count accordingly.

Change-Id: I4d867c56ae518276813f6f96d23a5f6933364fd4
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10816
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...

80e8127314-Jan-2022 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Do not use ctrlr for I/O submission if reconnect failed repeatedly

If ctrlr_loss_timeout_sec is set to -1, reconnect is tried repeatedly
indefinitely, and I/Os continue to be queued.

Thi

bdev/nvme: Do not use ctrlr for I/O submission if reconnect failed repeatedly

If ctrlr_loss_timeout_sec is set to -1, reconnect is tried repeatedly
indefinitely, and I/Os continue to be queued.

This patch adds another option fast_io_fail_timeout_sec, a flag
fast_io_fail_timedout to nvme_ctrlr.

If the time fast_io_fail_timeout_sec passed after starting reset,
set fast_io_fail_timedout to true not to use the path for I/O submission.

fast_io_fail_timeout_sec is initialized to zero as same as
ctrlr_loss_timeout_sec and reconnect_delay_sec.

The name of the parameter follows the famous DM-multipath, its fast_io_fail_tmo.

Change-Id: Ib870cf8e2fd29300c47f1df69617776f4e67bd8c
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10301
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>

show more ...

ae4e54fd13-Jan-2022 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Retry reconnecting ctrlr after seconds if reset failed

Previously reconnect retry was not controlled and was repeated indefinitely.

This patch adds two options, ctrlr_loss_timeout_sec an

bdev/nvme: Retry reconnecting ctrlr after seconds if reset failed

Previously reconnect retry was not controlled and was repeated indefinitely.

This patch adds two options, ctrlr_loss_timeout_sec and reconnect_delay_sec,
to nvme_ctrlr and add reset_start_tsc, reconnect_is_delayed, and
reconnect_delay_timer to nvme_ctrlr to control reconnect retry.

Both of ctrlr_loss_timeout_sec and reconnect_delay_sec are initialized to
zero. This means reconnect is not throttled as we did before this patch.

A few more changes are added.

Change nvme_io_path_is_failed() to return false if reset is throttled
even if nvme_ctrlr is reseting or is to be reconnected.

spdk_nvme_ctrlr_reconnect_poll_async() may continue returning -EAGAIN
infinitely. To check out such exceptional case, use ctrlr_loss_timeout_sec.

Not only ctrlr reset but also non-multipath ctrlr failover is controlled.
So we need to include path failover into ctrlr reconnect.

When the active path is removed and switched to one of the alternative paths,
if ctrlr reconnect is scheduled, connecting to the alternative path is left
to the scheduled reconnect.

If reset or reconnect ctrlr is failed and the retry is scheduled,
switch the active path to one of alternative paths.

Restore unit test cases removed in the previous patches.

Change-Id: Idec636c4eced39eb47ff4ef6fde72d6fd9fe4f85
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10128
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Monica Kenguva <monica.kenguva@intel.com>

show more ...

962c4c3813-Jan-2022 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Fix a degradation that I/O gets queued infinitely

We noticed the difference between the SPDK 21.10 and the latest master
in a test.

The simplified scenario is as follows:
1. Start SPDK N

bdev/nvme: Fix a degradation that I/O gets queued infinitely

We noticed the difference between the SPDK 21.10 and the latest master
in a test.

The simplified scenario is as follows:
1. Start SPDK NVMe-oF target
2. Run bdevperf for the target with -f parameter to suppress exit
on failure.
3. Kill the target after I/O started.

With the SPDK 21.10, bdevperf retries failed I/Os and exits after
the test time is over.

With the latest SPDK master, bdevperf hungs and does not exit even
after the test time is over.

The cause was as follows:

reset ctrlr is repeated very quickly (once per 10ms by default) and hence
I/Os were queued infinitely because nvme_io_path_is_failed() returned
false if nvme_ctrlr is resetting.

We should queue I/O when nvme_ctrlr is resetting only if reset is throttoled
and fail-fast for the repeated failures is supported.

Hence in this patch, fix the degradation and remove the related unit
test cases.

Reported-by: Evgeniy Kochetov <evgeniik@nvidia.com>
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I4047d42dc44488a05264c6a841d101a7c371358b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11062
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.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 ...


/spdk/CHANGELOG.md
/spdk/app/spdk_lspci/spdk_lspci.c
/spdk/doc/jsonrpc.md
/spdk/examples/idxd/perf/perf.c
/spdk/examples/nvme/abort/abort.c
/spdk/examples/nvme/arbitration/arbitration.c
/spdk/examples/nvme/discovery_aer/discovery_aer.c
/spdk/examples/nvme/fio_plugin/fio_plugin.c
/spdk/examples/nvme/hello_world/hello_world.c
/spdk/examples/nvme/hotplug/hotplug.c
/spdk/examples/nvme/identify/identify.c
/spdk/examples/nvme/nvme_manage/nvme_manage.c
/spdk/examples/nvme/perf/perf.c
/spdk/examples/nvme/reconnect/reconnect.c
/spdk/include/spdk/env.h
/spdk/include/spdk/idxd.h
/spdk/include/spdk/idxd_spec.h
/spdk/include/spdk_internal/accel_engine.h
/spdk/include/spdk_internal/trace_defs.h
/spdk/lib/accel/accel_engine.c
/spdk/lib/env_dpdk/init.c
/spdk/lib/env_dpdk/pci.c
/spdk/lib/env_dpdk/spdk_env_dpdk.map
/spdk/lib/idxd/Makefile
/spdk/lib/idxd/idxd.c
/spdk/lib/nvme/nvme_ctrlr.c
/spdk/lib/nvme/nvme_ctrlr_ocssd_cmd.c
/spdk/lib/nvme/nvme_cuse.c
/spdk/lib/nvme/nvme_discovery.c
/spdk/lib/nvme/nvme_internal.h
/spdk/lib/nvmf/ctrlr.c
/spdk/lib/nvmf/nvmf.c
/spdk/lib/nvmf/nvmf_internal.h
/spdk/lib/nvmf/subsystem.c
/spdk/lib/nvmf/tcp.c
/spdk/lib/nvmf/transport.c
/spdk/lib/nvmf/vfio_user.c
/spdk/lib/trace/trace_flags.c
/spdk/lib/trace/trace_rpc.c
/spdk/mk/spdk.lib_deps.mk
/spdk/module/accel/idxd/accel_engine_idxd.c
/spdk/module/bdev/delay/vbdev_delay.c
/spdk/module/bdev/malloc/bdev_malloc.c
/spdk/module/bdev/nvme/bdev_nvme.c
/spdk/module/bdev/nvme/bdev_nvme.h
/spdk/module/bdev/nvme/bdev_nvme_rpc.c
/spdk/module/bdev/rbd/bdev_rbd.c
/spdk/module/bdev/rbd/bdev_rbd.h
/spdk/module/bdev/rbd/bdev_rbd_rpc.c
/spdk/scripts/bpf/nvmf.bt
/spdk/scripts/rpc.py
/spdk/scripts/rpc/bdev.py
/spdk/scripts/rpc/trace.py
/spdk/test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz.c
/spdk/test/iscsi_tgt/rbd/rbd.sh
/spdk/test/nvme/compliance/nvme_compliance.c
/spdk/test/nvme/cuse/cuse.c
/spdk/test/nvme/cuse/nvme_ns_manage_cuse.sh
/spdk/test/nvme/cuse/spdk_nvme_cli_cuse.sh
/spdk/test/nvmf/host/discovery.sh
/spdk/test/nvmf/nvmf.sh
/spdk/test/nvmf/target/host_management.sh
/spdk/test/nvmf/target/zcopy.sh
/spdk/test/unit/lib/accel/accel.c/accel_engine_ut.c
bdev_nvme_ut.c
/spdk/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c
/spdk/test/unit/lib/nvme/nvme_ctrlr_cmd.c/nvme_ctrlr_cmd_ut.c
/spdk/test/unit/lib/nvme/nvme_ctrlr_ocssd_cmd.c/nvme_ctrlr_ocssd_cmd_ut.c
/spdk/test/unit/lib/nvme/nvme_cuse.c/nvme_cuse_ut.c
/spdk/test/unit/lib/nvmf/ctrlr.c/ctrlr_ut.c
/spdk/test/unit/lib/nvmf/fc.c/fc_ut.c
/spdk/test/unit/lib/nvmf/nvmf.c/nvmf_ut.c
521a9bb230-Dec-2021 Shuhei Matsumoto <shuheimatsumoto@gmail.com>

bdev/nvme: Fix race between failover and add secondary trid

We sort secondary trids to avoid using disconnected trids for failover.
However the sort had a bug.

This bug was found by running test/nv

bdev/nvme: Fix race between failover and add secondary trid

We sort secondary trids to avoid using disconnected trids for failover.
However the sort had a bug.

This bug was found by running test/nvmf/host/multipath.sh in a loop.

Verify the fix by adding unit test.

Fixes #2300

Signed-off-by: Shuhei Matsumoto <shuheimatsumoto@gmail.com>
Change-Id: I22b0ede4d2ef98b786c3e0d1f5337a2d568ba56d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10921
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>

show more ...

b68f2eeb04-Dec-2021 Jim Harris <james.r.harris@intel.com>

bdev_nvme: add bdev_nvme_start_discovery RPC

This patch adds the framework for a discovery
service in the bdev/nvme module.

Users can specify an IP/port of a discovery service.
The bdev/nvme module

bdev_nvme: add bdev_nvme_start_discovery RPC

This patch adds the framework for a discovery
service in the bdev/nvme module.

Users can specify an IP/port of a discovery service.
The bdev/nvme module will connect to a discovery
controller, get the discovery log page, and then
register for AERs. It will connect to each
subsystem specified in the initial log page.
AER completions will trigger fetching the log
page again, at which point new subsystems will
be connected to, or removed subsystems will be
detached.

This patch does the following:
* Adds the new start_discovery RPC
* Connects to the discovery controller
* Gets the discovery log page
* Registers for AERs
* Detach from discovery controllers at shutdown

Subsequent patches in this series will:
* Connect to subsystems listed in discovery log page
* Detach from subsystems that were listed in earlier
discovery log pages but subsequently removed
* Add a stop_discovery RPC

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I54bfa896a48c5619676f156b5ea9f2d1f886c72f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10694
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>

show more ...


/spdk/CHANGELOG.md
/spdk/CONFIG
/spdk/app/spdk_lspci/spdk_lspci.c
/spdk/app/spdk_top/spdk_top.c
/spdk/autopackage.sh
/spdk/autotest.sh
/spdk/configure
/spdk/doc/jsonrpc.md
/spdk/doc/nvmf_tracing.md
/spdk/doc/performance_reports.md
/spdk/doc/rpm.md
/spdk/doc/vhost.md
/spdk/dpdk
/spdk/examples/accel/perf/accel_perf.c
/spdk/examples/blob/cli/blobcli.c
/spdk/examples/nvme/Makefile
/spdk/examples/nvme/abort/abort.c
/spdk/examples/nvme/discovery_aer/Makefile
/spdk/examples/nvme/discovery_aer/discovery_aer.c
/spdk/examples/nvme/fio_plugin/fio_plugin.c
/spdk/examples/nvme/hotplug/hotplug.c
/spdk/examples/nvme/identify/identify.c
/spdk/examples/nvmf/nvmf/nvmf.c
/spdk/examples/vmd/led/led.c
/spdk/examples/vmd/lsvmd/lsvmd.c
/spdk/include/spdk/accel_engine.h
/spdk/include/spdk/barrier.h
/spdk/include/spdk/bdev_module.h
/spdk/include/spdk/env.h
/spdk/include/spdk/json.h
/spdk/include/spdk/log.h
/spdk/include/spdk/nvme.h
/spdk/include/spdk/nvmf.h
/spdk/include/spdk/nvmf_transport.h
/spdk/include/spdk/trace.h
/spdk/include/spdk/util.h
/spdk/include/spdk_internal/accel_engine.h
/spdk/include/spdk_internal/rdma.h
/spdk/lib/accel/Makefile
/spdk/lib/accel/accel_engine.c
/spdk/lib/accel/spdk_accel.map
/spdk/lib/blob/blobstore.c
/spdk/lib/blob/blobstore.h
/spdk/lib/env_dpdk/Makefile
/spdk/lib/env_dpdk/init.c
/spdk/lib/env_dpdk/pci.c
/spdk/lib/env_dpdk/spdk_env_dpdk.map
/spdk/lib/event/app.c
/spdk/lib/idxd/idxd.c
/spdk/lib/init/subsystem_rpc.c
/spdk/lib/json/Makefile
/spdk/lib/json/json_write.c
/spdk/lib/json/spdk_json.map
/spdk/lib/log/log.c
/spdk/lib/log/log_flags.c
/spdk/lib/nvme/Makefile
/spdk/lib/nvme/nvme_ctrlr.c
/spdk/lib/nvme/nvme_discovery.c
/spdk/lib/nvme/nvme_fabric.c
/spdk/lib/nvme/nvme_internal.h
/spdk/lib/nvme/nvme_ns.c
/spdk/lib/nvme/nvme_pcie_common.c
/spdk/lib/nvme/nvme_rdma.c
/spdk/lib/nvme/spdk_nvme.map
/spdk/lib/nvmf/ctrlr.c
/spdk/lib/nvmf/ctrlr_bdev.c
/spdk/lib/nvmf/ctrlr_discovery.c
/spdk/lib/nvmf/fc.c
/spdk/lib/nvmf/nvmf.c
/spdk/lib/nvmf/nvmf_internal.h
/spdk/lib/nvmf/nvmf_rpc.c
/spdk/lib/nvmf/rdma.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/trace/Makefile
/spdk/lib/trace/spdk_trace.map
/spdk/lib/trace/trace_flags.c
/spdk/lib/util/Makefile
/spdk/lib/util/iov.c
/spdk/lib/util/spdk_util.map
/spdk/lib/vhost/vhost.c
/spdk/lib/vhost/vhost_blk.c
/spdk/lib/vhost/vhost_internal.h
/spdk/lib/vhost/vhost_scsi.c
/spdk/mk/spdk.common.mk
/spdk/module/accel/idxd/accel_engine_idxd.c
/spdk/module/accel/ioat/accel_engine_ioat.c
/spdk/module/bdev/delay/vbdev_delay.c
/spdk/module/bdev/nvme/bdev_nvme.c
/spdk/module/bdev/nvme/bdev_nvme.h
/spdk/module/bdev/nvme/bdev_nvme_rpc.c
/spdk/module/event/subsystems/nvmf/event_nvmf.h
/spdk/module/event/subsystems/nvmf/nvmf_rpc.c
/spdk/module/event/subsystems/nvmf/nvmf_tgt.c
/spdk/module/scheduler/gscheduler/gscheduler.c
/spdk/rpmbuild/rpm.sh
/spdk/scripts/bash-completion/spdk
/spdk/scripts/bpf/nvmf_path.bt
/spdk/scripts/check_format.sh
/spdk/scripts/core-collector.sh
/spdk/scripts/lspci
/spdk/scripts/perf/nvmf/run_nvmf.py
/spdk/scripts/rpc.py
/spdk/scripts/rpc/bdev.py
/spdk/scripts/rpc/nvmf.py
/spdk/scripts/rpc/subsystem.py
/spdk/scripts/vagrant/Vagrantfile
/spdk/scripts/vagrant/create_vbox.sh
/spdk/scripts/vagrant/local.conf
/spdk/test/app/fuzz/Makefile
/spdk/test/app/fuzz/llvm_nvme_fuzz/.gitignore
/spdk/test/app/fuzz/llvm_nvme_fuzz/Makefile
/spdk/test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz.c
/spdk/test/blobfs/rocksdb/rocksdb.sh
/spdk/test/blobfs/rocksdb/rocksdb_commit_id
/spdk/test/common/autotest_common.sh
/spdk/test/common/config/pkgdep/git
/spdk/test/common/config/pkgdep/patches/ice/0001-devlink.patch
/spdk/test/common/skipped_build_files.txt
/spdk/test/common/skipped_tests.txt
/spdk/test/dd/common.sh
/spdk/test/dd/dd.sh
/spdk/test/dd/uring.sh
/spdk/test/json_config/json_config.sh
/spdk/test/nvme/deallocated_value/deallocated_value.c
/spdk/test/nvme/hotplug.sh
/spdk/test/nvme/hw_hotplug.sh
/spdk/test/nvme/nvme.sh
/spdk/test/nvme/overhead/overhead.c
/spdk/test/nvme/perf/common.sh
/spdk/test/nvmf/common.sh
/spdk/test/nvmf/nvmf.sh
/spdk/test/nvmf/target/abort.sh
/spdk/test/nvmf/target/filesystem.sh
/spdk/test/nvmf/target/fuzz_json.conf
/spdk/test/nvmf/target/llvm_nvme_fuzz.sh
/spdk/test/nvmf/target/nvmf_vfio_user.sh
/spdk/test/openstack/run_openstack_tests.sh
/spdk/test/scheduler/cgroups.sh
/spdk/test/scheduler/common.sh
/spdk/test/scheduler/isolate_cores.sh
/spdk/test/unit/lib/accel/accel.c/accel_engine_ut.c
bdev_nvme_ut.c
/spdk/test/unit/lib/blob/blob.c/blob_ut.c
/spdk/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c
/spdk/test/unit/lib/nvme/nvme_rdma.c/nvme_rdma_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/ctrlr_discovery.c/ctrlr_discovery_ut.c
/spdk/test/unit/lib/nvmf/fc.c/fc_ut.c
/spdk/test/unit/lib/nvmf/fc_ls.c/fc_ls_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/vfio_user.c/vfio_user_ut.c
/spdk/test/vfio_user/common.sh
/spdk/test/vfio_user/vfio_user.sh
/spdk/test/vfio_user/vfio_user_fio/vfio_user_fio.sh
/spdk/test/vfio_user/vfio_user_restart_vm/vfio_user_restart_vm.sh
2155180628-Nov-2021 Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>

bdev/nvme: nvme_ctrlr_create() gets prchk_flags from nvme_async_probe_ctx

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Id3deca8e0aba23299347a6aee6f0f44ee683556e
Revie

bdev/nvme: nvme_ctrlr_create() gets prchk_flags from nvme_async_probe_ctx

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Id3deca8e0aba23299347a6aee6f0f44ee683556e
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10555
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>

show more ...

696ad46525-Nov-2021 Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>

bdev/nvme: Remove the failover_in_progress flag from struct nvme_ctrlr

The failover_in_progress flag is used to decide the return value of
bdev_nvme_failover().

bdev_nvme_delete() calls bdev_nvme_f

bdev/nvme: Remove the failover_in_progress flag from struct nvme_ctrlr

The failover_in_progress flag is used to decide the return value of
bdev_nvme_failover().

bdev_nvme_delete() calls bdev_nvme_failover() with remove=true to remove
nvme_ctrlr->active_path_id. However bdev_nvme_failover() returns zero
if nvme_ctrlr->failover_in_progress is true. bdev_nvme_failover() may
return zero even if it does not remove nvme_ctrlr->active_path_id.

The following will be better.

bdev_nvme_failover() returns -EBUSY if nvme_ctrlr->resetting is true,
and the caller repeats calling bdev_nvme_failover() until the target trid
becomes alternative path or bdev_nvme_failover() returns zero.

To do that, the failover_in_progress flag is not necessary any more.

Removing the failover_in_progress will also simplify the following
patches to unify ctrlr reset and failover.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I57ab944beb1d06ea4def144c81c69705860de35f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10441
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>

show more ...

7cc66c0a24-Nov-2021 Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>

bdev/nvme: Check if ns can be shared when configuring multipath

We had not checked the bit 0 of the Namespace Multipath I/O and
Namespace Sharing Capabilities (NMIC) field in the Identify Namespace

bdev/nvme: Check if ns can be shared when configuring multipath

We had not checked the bit 0 of the Namespace Multipath I/O and
Namespace Sharing Capabilities (NMIC) field in the Identify Namespace
data structure.

If the bit 0 of the NMIC is zero, it is likely that namespaces are not
identical.

We should check if the value of the NMIC first, and do it in this patch.

Additionally, it is not usual if the bit 0 of the CMIC and the bit 0 of
the NMIC do not match. So in unit tests rename the parameter multi_ctrlr
by multipath for ut_attach_ctrlr() and use it for the value of the NMIC.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I6aa7cbcc99be2507dbf18930f7b585a9ea7d0f90
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10380
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>

show more ...

8afa746b03-Nov-2021 Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>

bdev/nvme: Use new APIs in a reset ctrlr sequence

Replace the spdk_nvme_ctrlr_reset_async() and spdk_nvme_reset_poll_async()
calls by the spdk_nvme_ctrlr_disconnect(), spdk_nvme_ctrlr_reconnect_asyn

bdev/nvme: Use new APIs in a reset ctrlr sequence

Replace the spdk_nvme_ctrlr_reset_async() and spdk_nvme_reset_poll_async()
calls by the spdk_nvme_ctrlr_disconnect(), spdk_nvme_ctrlr_reconnect_async(),
and spdk_nvme_ctrlr_reconnect_poll_async() calls in a reset ctrlr
sequence.

spdk_nvme_ctrlr_disconnect() can fail if ctrlr is already resetting or
removed. But both cases are not possible. reset is controlled and the callback
to the hot remove is called when the ctrlr is hot removed. So we assume
spdk_nvme_ctrlr_disconnect() always succeed.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I1299e198597b2a2110f80b9a868e2dae015682ee
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10092
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>

show more ...

c9c7c28125-Nov-2021 Josh Soref <jsoref@gmail.com>

spelling: test

Part of #2256

* achieve
* additionally
* against
* aliases
* already
* another
* arguments
* between
* capabilities
* comparison
* compatibility
* configuration
* continuing
* contro

spelling: test

Part of #2256

* achieve
* additionally
* against
* aliases
* already
* another
* arguments
* between
* capabilities
* comparison
* compatibility
* configuration
* continuing
* controlq
* cpumask
* default
* depends
* dereferenced
* discussed
* dissect
* driver
* environment
* everything
* excluded
* existing
* expectation
* failed
* fails
* following
* functions
* hugepages
* identifiers
* implicitly
* in_capsule
* increment
* initialization
* initiator
* integrity
* iteration
* latencies
* libraries
* management
* namespace
* negotiated
* negotiation
* nonexistent
* number
* occur
* occurred
* occurring
* offsetting
* operations
* outstanding
* overwhelmed
* parameter
* parameters
* partition
* preempts
* provisioned
* responded
* segment
* skipped
* struct
* subsystem
* success
* successfully
* sufficiently
* this
* threshold
* transfer
* transferred
* unchanged
* unexpected
* unregistered
* useless
* utility
* value
* variable
* workload

Change-Id: I21ca7dab4ef575b5767e50aaeabc34314ab13396
Signed-off-by: Josh Soref <jsoref@gmail.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10409
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...


/spdk/app/spdk_top/spdk_top.c
/spdk/autobuild.sh
/spdk/autotest.sh
/spdk/doc/Doxyfile
/spdk/doc/accel_fw.md
/spdk/doc/performance_reports.md
/spdk/examples/nvme/arbitration/arbitration.c
/spdk/include/spdk/blobfs.h
/spdk/include/spdk/nvme.h
/spdk/include/spdk/nvmf.h
/spdk/include/spdk/scsi.h
/spdk/include/spdk/thread.h
/spdk/lib/accel/accel_engine.c
/spdk/lib/blob/blobstore.c
/spdk/lib/blob/blobstore.h
/spdk/lib/env_dpdk/pci_event.c
/spdk/lib/env_ocf/ocf_env.c
/spdk/lib/env_ocf/ocf_env.h
/spdk/lib/event/app.c
/spdk/lib/event/reactor.c
/spdk/lib/ftl/ftl_core.c
/spdk/lib/ftl/ftl_init.c
/spdk/lib/ftl/ftl_io.h
/spdk/lib/idxd/idxd.c
/spdk/lib/idxd/idxd.h
/spdk/lib/idxd/idxd_kernel.c
/spdk/lib/init/json_config.c
/spdk/lib/iscsi/init_grp.c
/spdk/lib/iscsi/iscsi.c
/spdk/lib/iscsi/iscsi.h
/spdk/lib/iscsi/tgt_node.c
/spdk/lib/jsonrpc/jsonrpc_client_tcp.c
/spdk/lib/lvol/lvol.c
/spdk/lib/nbd/nbd.c
/spdk/lib/nvme/nvme.c
/spdk/lib/nvme/nvme_ctrlr.c
/spdk/lib/nvme/nvme_ctrlr_cmd.c
/spdk/lib/nvme/nvme_internal.h
/spdk/lib/nvme/nvme_io_msg.h
/spdk/lib/nvme/nvme_opal.c
/spdk/lib/nvme/nvme_qpair.c
/spdk/lib/nvme/nvme_rdma.c
/spdk/lib/nvme/nvme_tcp.c
/spdk/lib/nvmf/ctrlr.c
/spdk/lib/nvmf/fc.c
/spdk/lib/nvmf/fc_ls.c
/spdk/lib/nvmf/nvmf.c
/spdk/lib/nvmf/nvmf_fc.h
/spdk/lib/nvmf/nvmf_internal.h
/spdk/lib/nvmf/rdma.c
/spdk/lib/nvmf/subsystem.c
/spdk/lib/nvmf/tcp.c
/spdk/lib/nvmf/vfio_user.c
/spdk/lib/reduce/reduce.c
/spdk/lib/scsi/scsi_bdev.c
/spdk/lib/scsi/scsi_pr.c
/spdk/lib/thread/thread.c
/spdk/lib/trace_parser/trace.cpp
/spdk/lib/util/base64.c
/spdk/lib/vfio_user/vfio_user.c
/spdk/lib/vfio_user/vfio_user_internal.h
/spdk/lib/vfio_user/vfio_user_pci.c
/spdk/lib/vhost/vhost.c
/spdk/lib/vhost/vhost_blk.c
/spdk/lib/vhost/vhost_internal.h
/spdk/lib/vhost/vhost_scsi.c
/spdk/lib/virtio/vhost_user.c
/spdk/lib/vmd/vmd.c
/spdk/module/bdev/nvme/bdev_nvme.c
/spdk/rpmbuild/rpm-deps.sh
/spdk/scripts/bash-completion/spdk
/spdk/scripts/bpf/trace.py
/spdk/scripts/ceph/ceph.conf
/spdk/scripts/check_format.sh
/spdk/scripts/perf/nvmf/run_nvmf.py
/spdk/scripts/perf/vhost/run_vhost_test.py
/spdk/scripts/pkgdep/debian.sh
/spdk/scripts/qat_setup.sh
/spdk/scripts/rpc.py
/spdk/scripts/rpc/app.py
/spdk/scripts/rpc/bdev.py
/spdk/scripts/rpc/iscsi.py
/spdk/scripts/setup.sh
/spdk/scripts/spdkcli/ui_node.py
/spdk/scripts/spdkcli/ui_node_nvmf.py
/spdk/scripts/spdkcli/ui_root.py
/spdk/scripts/vagrant/README.md
/spdk/scripts/vagrant/Vagrantfile
/spdk/scripts/vagrant/create_vbox.sh
/spdk/test/app/fuzz/iscsi_fuzz/README.md
/spdk/test/app/fuzz/vhost_fuzz/vhost_fuzz.c
/spdk/test/bdev/blockdev.sh
/spdk/test/common/autotest_common.sh
/spdk/test/common/config/README.md
/spdk/test/common/config/pkgdep/git
/spdk/test/common/config/pkgdep/patches/dpdk/20.11/dpdk_pci.patch
/spdk/test/common/config/pkgdep/patches/dpdk/20.11/dpdk_qat.patch
/spdk/test/common/config/pkgdep/patches/dpdk/21.08/dpdk_qat.patch
/spdk/test/common/config/vm_setup.sh
/spdk/test/dd/basic_rw.sh
/spdk/test/env/mem_callbacks/mem_callbacks.c
/spdk/test/env/pci/pci_ut.c
/spdk/test/event/app_repeat/Makefile
/spdk/test/external_code/hello_world/Makefile
/spdk/test/interrupt/reactor_set_interrupt.sh
/spdk/test/iscsi_tgt/calsoft/calsoft.py
/spdk/test/iscsi_tgt/nvme_remote/fio_remote_nvme.sh
/spdk/test/iscsi_tgt/perf/iscsi_target.sh
/spdk/test/iscsi_tgt/rpc_config/rpc_config.py
/spdk/test/json_config/json_config.sh
/spdk/test/lvol/basic.sh
/spdk/test/lvol/rename.sh
/spdk/test/lvol/snapshot_clone.sh
/spdk/test/lvol/tasting.sh
/spdk/test/lvol/thin_provisioning.sh
/spdk/test/nvme/aer/aer.c
/spdk/test/nvme/compliance/nvme_compliance.c
/spdk/test/nvme/cuse/nvme_cuse.sh
/spdk/test/nvme/cuse/nvme_ns_manage_cuse.sh
/spdk/test/nvme/cuse/spdk_smartctl_cuse.sh
/spdk/test/nvme/nvme.sh
/spdk/test/nvme/overhead/overhead.c
/spdk/test/nvme/perf/README.md
/spdk/test/nvme/perf/common.sh
/spdk/test/nvme/perf/run_perf.sh
/spdk/test/nvme/reset/reset.c
/spdk/test/nvmf/target/delete_subsystem.sh
/spdk/test/nvmf/target/filesystem.sh
/spdk/test/nvmf/target/invalid.sh
/spdk/test/nvmf/target/multipath.sh
/spdk/test/nvmf/target/nvmf_vfio_user.sh
/spdk/test/nvmf/target/srq_overwhelm.sh
/spdk/test/pmem/pmem.sh
/spdk/test/scheduler/common.sh
/spdk/test/scheduler/governor.sh
/spdk/test/scheduler/idle.sh
/spdk/test/scheduler/interrupt.sh
/spdk/test/scheduler/isolate_cores.sh
/spdk/test/scheduler/load_balancing.sh
/spdk/test/setup/hugepages.sh
/spdk/test/unit/lib/accel/accel.c/accel_engine_ut.c
/spdk/test/unit/lib/bdev/bdev.c/bdev_ut.c
/spdk/test/unit/lib/bdev/bdev_zone.c/bdev_zone_ut.c
/spdk/test/unit/lib/bdev/crypto.c/crypto_ut.c
/spdk/test/unit/lib/bdev/mt/bdev.c/bdev_ut.c
bdev_nvme_ut.c
/spdk/test/unit/lib/blob/blob.c/blob_ut.c
/spdk/test/unit/lib/blob/bs_dev_common.c
/spdk/test/unit/lib/ftl/ftl_band.c/ftl_band_ut.c
/spdk/test/unit/lib/init/subsystem.c/subsystem_ut.c
/spdk/test/unit/lib/iscsi/iscsi.c/iscsi_ut.c
/spdk/test/unit/lib/iscsi/param.c/param_ut.c
/spdk/test/unit/lib/json/json_util.c/json_util_ut.c
/spdk/test/unit/lib/jsonrpc/jsonrpc_server.c/jsonrpc_server_ut.c
/spdk/test/unit/lib/nvme/nvme.c/nvme_ut.c
/spdk/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c
/spdk/test/unit/lib/nvme/nvme_ns.c/nvme_ns_ut.c
/spdk/test/unit/lib/nvme/nvme_tcp.c/nvme_tcp_ut.c
/spdk/test/unit/lib/nvmf/fc_ls.c/fc_ls_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/reduce/reduce.c/reduce_ut.c
/spdk/test/unit/lib/scsi/scsi_pr.c/scsi_pr_ut.c
/spdk/test/unit/lib/sock/uring.c/uring_ut.c
/spdk/test/unit/lib/thread/thread.c/thread_ut.c
/spdk/test/unit/lib/util/dif.c/dif_ut.c
/spdk/test/unit/lib/vhost/vhost.c/vhost_ut.c
/spdk/test/vhost/common.sh
/spdk/test/vhost/fiotest/fio.sh
/spdk/test/vhost/perf_bench/vhost_perf.sh
f9fba50731-Oct-2021 Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>

bdev/nvme: Redirect the reset ctrlr operation into nvme_ctrlr->thread

In the following patches, we want to retry reconnect if reconnect failed
in a reset ctrlr sequence but we want to delay the retr

bdev/nvme: Redirect the reset ctrlr operation into nvme_ctrlr->thread

In the following patches, we want to retry reconnect if reconnect failed
in a reset ctrlr sequence but we want to delay the retry. While
we wait the delayed retry, we want to quiesce ctrlr completely.

As part of quiesce ctrlr operations, we want to pause adminq poller but
we need to do it on the nvme_ctrlr->thread.

If a reset ctrlr sequence runs on the nvme_ctrlr->thread, we can avoid
redirecting the pending destruct request at completion too.

So we redirect the reset ctrlr sequence into the nvme_ctrlr->thread.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I538b962e2a7b5cf00ebbac2a1e888482ddeeee61
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10075
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>

show more ...


/spdk/app/spdk_dd/spdk_dd.c
/spdk/app/spdk_top/spdk_top.c
/spdk/autobuild.sh
/spdk/autotest.sh
/spdk/configure
/spdk/deprecation.md
/spdk/doc/Doxyfile
/spdk/doc/accel_fw.md
/spdk/doc/gdb_macros.md
/spdk/doc/iscsi.md
/spdk/doc/jsonrpc.md
/spdk/doc/libraries.md
/spdk/doc/performance_reports.md
/spdk/doc/system_configuration.md
/spdk/doc/template_pg.md
/spdk/docker/build_base/pre-install
/spdk/dpdkbuild/Makefile
/spdk/examples/accel/perf/accel_perf.c
/spdk/examples/blob/cli/blobcli.c
/spdk/examples/blob/hello_world/hello_blob.c
/spdk/examples/idxd/perf/perf.c
/spdk/examples/nvme/abort/abort.c
/spdk/examples/nvme/arbitration/arbitration.c
/spdk/examples/nvme/fio_plugin/README.md
/spdk/examples/nvme/fio_plugin/fio_plugin.c
/spdk/examples/nvme/hotplug/hotplug.c
/spdk/examples/nvme/identify/identify.c
/spdk/examples/nvme/nvme_manage/nvme_manage.c
/spdk/examples/nvme/perf/perf.c
/spdk/examples/nvme/reconnect/reconnect.c
/spdk/examples/nvmf/nvmf/nvmf.c
/spdk/include/spdk/accel_engine.h
/spdk/include/spdk/bdev.h
/spdk/include/spdk/bdev_module.h
/spdk/include/spdk/blob.h
/spdk/include/spdk/blobfs.h
/spdk/include/spdk/conf.h
/spdk/include/spdk/dma.h
/spdk/include/spdk/env.h
/spdk/include/spdk/env_dpdk.h
/spdk/include/spdk/event.h
/spdk/include/spdk/fd_group.h
/spdk/include/spdk/idxd.h
/spdk/include/spdk/iscsi_spec.h
/spdk/include/spdk/json.h
/spdk/include/spdk/jsonrpc.h
/spdk/include/spdk/notify.h
/spdk/include/spdk/nvme.h
/spdk/include/spdk/nvme_ocssd.h
/spdk/include/spdk/nvme_spec.h
/spdk/include/spdk/nvmf.h
/spdk/include/spdk/nvmf_cmd.h
/spdk/include/spdk/nvmf_fc_spec.h
/spdk/include/spdk/nvmf_spec.h
/spdk/include/spdk/opal_spec.h
/spdk/include/spdk/scheduler.h
/spdk/include/spdk/scsi.h
/spdk/include/spdk/thread.h
/spdk/include/spdk/trace_parser.h
/spdk/include/spdk/util.h
/spdk/include/spdk/vhost.h
/spdk/include/spdk_internal/event.h
/spdk/include/spdk_internal/mock.h
/spdk/include/spdk_internal/trace_defs.h
/spdk/lib/env_dpdk/env.c
/spdk/lib/nvme/nvme_ctrlr.c
/spdk/lib/nvme/nvme_cuse.c
/spdk/lib/nvme/nvme_fabric.c
/spdk/lib/nvme/nvme_internal.h
/spdk/lib/nvme/nvme_rdma.c
/spdk/lib/nvme/nvme_tcp.c
/spdk/lib/nvmf/nvmf.c
/spdk/lib/nvmf/tcp.c
/spdk/lib/nvmf/vfio_user.c
/spdk/lib/rdma/common.c
/spdk/lib/sock/sock.c
/spdk/lib/vmd/vmd.c
/spdk/module/bdev/compress/vbdev_compress.c
/spdk/module/bdev/crypto/vbdev_crypto.c
/spdk/module/bdev/delay/vbdev_delay.c
/spdk/module/bdev/ftl/bdev_ftl.c
/spdk/module/bdev/gpt/gpt.c
/spdk/module/bdev/nvme/bdev_nvme.c
/spdk/module/bdev/ocf/vbdev_ocf.c
/spdk/module/bdev/ocf/vbdev_ocf.h
/spdk/module/bdev/raid/bdev_raid.c
/spdk/module/bdev/rbd/bdev_rbd_rpc.c
/spdk/module/bdev/zone_block/vbdev_zone_block.c
/spdk/module/scheduler/dpdk_governor/dpdk_governor.c
/spdk/module/sock/posix/posix.c
/spdk/module/sock/uring/uring.c
/spdk/scripts/rpc.py
/spdk/scripts/rpc/iscsi.py
/spdk/scripts/setup.sh
/spdk/test/common/autotest_common.sh
/spdk/test/common/config/pkgdep/git
/spdk/test/json_config/extra_key.json
/spdk/test/json_config/json_config_extra_key.sh
/spdk/test/nvme/hw_hotplug.sh
/spdk/test/nvmf/target/abort.sh
/spdk/test/nvmf/target/nvmf_vfio_user.sh
bdev_nvme_ut.c
/spdk/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c
50b10bc231-Oct-2021 Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>

bdev/nvme: bdev_nvme_reset_io() redirect to the orig_thread at completion

In the following patches, bdev_nvme_reset() will execute the reset ctrlr
operation on the nvme_ctrlr->thread until completio

bdev/nvme: bdev_nvme_reset_io() redirect to the orig_thread at completion

In the following patches, bdev_nvme_reset() will execute the reset ctrlr
operation on the nvme_ctrlr->thread until completion as bdev_nvme_admin_passthru()
does. Hence change the callback bdev_nvme_reset_io_continue() to
redirect to the orig_thread by using bio. Furthermore, use bio->cpl.cdw0
to store the completion status of the reset processing. bdev_nvme_reset()
does not use bio->cpl.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I361cc44494190ba83ad6e360788d78851416c46c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10074
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>

show more ...

b4447abf15-Nov-2021 Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>

bdev/nvme: Retry failed admin passthru up to retry_count times

This patch supports admin passthrough retry when we get any error
with DNR=0 but ABORTED_BY_REQUEST up to retry_count times.

Signed-of

bdev/nvme: Retry failed admin passthru up to retry_count times

This patch supports admin passthrough retry when we get any error
with DNR=0 but ABORTED_BY_REQUEST up to retry_count times.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I1bf29570791fdbe8651fa70c4c8685bb740fb86b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9944
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...

a9a86a1419-Oct-2021 Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>

bdev/nvme: Retry admin passthru immediately if it got ctrlr path error

This patch supports admin passthrough retry when we get ctrlr path
error at completion.

Signed-off-by: Shuhei Matsumoto <shuhe

bdev/nvme: Retry admin passthru immediately if it got ctrlr path error

This patch supports admin passthrough retry when we get ctrlr path
error at completion.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Ice0045b84054ec66a9db9ef23e21786d2c082b1d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9943
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>

show more ...

35a2f4e218-Nov-2021 Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>

bdev/nvme: Retry admin passthru a second later if any ctrlr may become available

When resetting ctrlr, adminq is disconnected first. If adminq is disconnected,
admin passthrough request is rejected

bdev/nvme: Retry admin passthru a second later if any ctrlr may become available

When resetting ctrlr, adminq is disconnected first. If adminq is disconnected,
admin passthrough request is rejected with -ENXIO.

But resetting ctrlr may succeed. If resetting ctrlr succeeds, adminq is
connected again, and admin passthrough request will be
submitted successfully.

On the other hand, if ctrlr is failed, admin passthrough request is
rejected with -ENXIO. But when resetting ctrlr, ctrlr is set to unfailed.

Hence bdev_nvme_admin_passthru() skips any ctrlr which is resetting
or failed, and calls bdev_nvme_admin_passthru_complete() with -ENXIO
if no available ctrlr is found.

bdev_nvme_admin_passthru_complete() queues admin passthrough request
and retry it one second later if ctrlr is resetting.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Ic748dc4faf29ebf717ae5c29dcf7c55fe2ea9243
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9942
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>

show more ...


/spdk/app/spdk_top/spdk_top.c
/spdk/autobuild.sh
/spdk/autopackage.sh
/spdk/autotest.sh
/spdk/doc/jsonrpc.md
/spdk/doc/performance_reports.md
/spdk/dpdkbuild/Makefile
/spdk/include/spdk/fd_group.h
/spdk/include/spdk_internal/rdma.h
/spdk/include/spdk_internal/trace_defs.h
/spdk/lib/accel/accel_engine.c
/spdk/lib/idxd/idxd.c
/spdk/lib/idxd/idxd_user.c
/spdk/lib/nvme/nvme_ctrlr.c
/spdk/lib/nvme/nvme_cuse.c
/spdk/lib/nvme/nvme_internal.h
/spdk/lib/nvme/nvme_qpair.c
/spdk/lib/nvme/nvme_rdma.c
/spdk/lib/nvme/nvme_transport.c
/spdk/lib/nvmf/nvmf.c
/spdk/lib/nvmf/rdma.c
/spdk/lib/nvmf/vfio_user.c
/spdk/lib/rdma/Makefile
/spdk/lib/rdma/common.c
/spdk/libvfio-user
/spdk/mk/spdk.lib_deps.mk
/spdk/module/accel/idxd/accel_engine_idxd.c
/spdk/module/bdev/malloc/bdev_malloc.c
/spdk/module/bdev/malloc/bdev_malloc.h
/spdk/module/bdev/malloc/bdev_malloc_rpc.c
/spdk/module/bdev/nvme/bdev_nvme.c
/spdk/scripts/bpf/syscalls.bt
/spdk/scripts/pkgdep.sh
/spdk/scripts/pkgdep/common.sh
/spdk/scripts/rpc.py
/spdk/scripts/rpc/bdev.py
/spdk/test/common/autotest_common.sh
/spdk/test/common/config/pkgdep/apt-get
/spdk/test/common/config/pkgdep/dnf
/spdk/test/common/config/pkgdep/pkg
/spdk/test/common/config/pkgdep/yum
/spdk/test/common/lib/test_rdma.c
/spdk/test/dma/test_dma/test_dma.c
/spdk/test/nvmf/host/dma.sh
/spdk/test/nvmf/nvmf.sh
/spdk/test/nvmf/target/fabrics_fuzz.sh
/spdk/test/nvmf/target/vfio_user_fuzz.sh
/spdk/test/scheduler/common.sh
/spdk/test/scheduler/governor.sh
bdev_nvme_ut.c
/spdk/test/unit/lib/idxd/idxd_user.c/idxd_user_ut.c
/spdk/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c
/spdk/test/unit/lib/nvme/nvme_transport.c/nvme_transport_ut.c
/spdk/test/vhost/hotplug/common.sh
7b8e721221-Oct-2021 Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>

bdev/nvme: Abort the queued I/O for retry

The NVMe bdev module queues retried I/Os itself now.
bdev_nvme_abort() needs to check and abort the target I/O if it
is queued for retry.

This change will

bdev/nvme: Abort the queued I/O for retry

The NVMe bdev module queues retried I/Os itself now.
bdev_nvme_abort() needs to check and abort the target I/O if it
is queued for retry.

This change will cover admin passthrough requests too because they
will be queued on the same thread as their callers and the public
API spdk_bdev_reset() requires to be submitted on the same thread
as the target I/O or admin passthrough requests.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: If37e8188bd3875805cef436437439220698124b9
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9913
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>

show more ...

72e4a4d415-Oct-2021 Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>

bdev/nvme: Each nvme_bdev_channel caches its current io_path

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I3ec3a588ff741cf04383e89f5a701e33bf1987a6
Reviewed-on: https

bdev/nvme: Each nvme_bdev_channel caches its current io_path

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I3ec3a588ff741cf04383e89f5a701e33bf1987a6
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9894
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>

show more ...

123456789