Spdk/lib/nvme
Niklas Cassel 2910ba6c53 nvme: simplify controller statemachine
For the following nvme controller statemachine states:
NVME_CTRLR_STATE_IDENTIFY_NS
NVME_CTRLR_STATE_IDENTIFY_ID_DESCS
NVME_CTRLR_STATE_IDENTIFY_NS_IOCS_SPECIFIC

The statemachine can either:
- Jump to succeeding state
- If active ns list is empty, jump directly to NVME_CTRLR_STATE_CONFIGURE_AER
- In the unlikely case if NVMe completion error, jump to NVME_CTRLR_STATE_ERROR

Simply this such that we either:
- Jump to succeeding state
- In the unlikely case if NVMe completion error, jump to NVME_CTRLR_STATE_ERROR

This will help to reduce the complexity of the nvme controller statemachine,
especially considering that there are new additional states
(NVME_CTRLR_STATE_IDENTIFY_NS_DIRECTIVE and
NVME_CTRLR_STATE_CONFIGURE_NS_STREAMS) currently on review that would continue
with the bad habit of having three possible jump states instead of just two.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Change-Id: I3242052b1108afcd8adbe6d0378b1358fef58ec8
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6521
Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: sunshihao <sunshihao@huawei.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2021-02-25 10:27:21 +00:00
..
Makefile nvme: Add the interface to get the optimal polling group 2021-02-04 08:30:54 +00:00
nvme_ctrlr_cmd.c lib/nvme: add two async API for Directive Send and Directive Receive. 2021-01-20 16:27:34 +00:00
nvme_ctrlr_ocssd_cmd.c ocssd: hold lock when calling nvme_ctrlr_submit_admin_request 2019-02-15 21:27:58 +00:00
nvme_ctrlr.c nvme: simplify controller statemachine 2021-02-25 10:27:21 +00:00
nvme_cuse.c lib/env_dpdk: Change the location of lock files from /tmp to /var/tmp 2020-11-17 08:25:31 +00:00
nvme_cuse.h lib/nvme: add RPC for interacting with CUSE devices 2019-10-24 23:43:59 +00:00
nvme_fabric.c nvme/fabric: Make connect related logs more verbose 2021-02-17 10:18:05 +00:00
nvme_internal.h nvme: add support for ZNS zone append vector variant 2021-02-17 10:17:22 +00:00
nvme_io_msg.c lib/nvme: update io msg producers on ns manage 2020-06-05 09:01:44 +00:00
nvme_io_msg.h lib/nvme: update io msg producers on ns manage 2020-06-05 09:01:44 +00:00
nvme_ns_cmd.c nvme: only reassign start_valid if we fetched a new SGE 2021-02-25 10:25:39 +00:00
nvme_ns_ocssd_cmd.c nvme: save separate metadata size to nvme request 2020-04-02 07:02:38 +00:00
nvme_ns.c nvme: account for PRACT when calculating max sectors per transfer 2021-02-10 08:44:54 +00:00
nvme_opal_internal.h nvme/opal: deprecate spdk_opal_supported() 2020-05-20 14:16:44 +00:00
nvme_opal.c log: remove internal log.h header 2020-10-15 08:23:39 +00:00
nvme_pcie_common.c nvme/pcie: move the common IO path APIs to nvme_pcie_common.c 2021-01-26 16:30:10 +00:00
nvme_pcie_internal.h nvme/pcie: move the common IO path APIs to nvme_pcie_common.c 2021-01-26 16:30:10 +00:00
nvme_pcie.c nvme: add set_nvme_pcie_set_hotplug_filter 2021-02-09 11:27:19 +00:00
nvme_poll_group.c nvme: Add the interface to get the optimal polling group 2021-02-04 08:30:54 +00:00
nvme_qpair.c nvme: add spdk_nvme_qpair_get_id 2021-02-17 10:17:43 +00:00
nvme_quirks.c nvme: add NO_SGL_FOR_DSM quirk for Intel P55XX SSDs 2021-01-22 08:16:53 +00:00
nvme_rdma.c nvme/rdma: Fix rdma ctrlr creating qpair memory leak 2021-02-04 08:41:33 +00:00
nvme_tcp.c nvme/tcp: Move sock creation into nvme_tcp_ctrlr_create_qpair function. 2021-02-25 10:26:08 +00:00
nvme_transport.c nvme: Add the interface to get the optimal polling group 2021-02-04 08:30:54 +00:00
nvme_uevent.c lib/nvme: Add error handler for parse_event 2020-11-17 08:25:31 +00:00
nvme_uevent.h nvme: read all uevents 2020-08-24 07:38:33 +00:00
nvme_vfio_user.c nvme/pcie: move the common IO path APIs to nvme_pcie_common.c 2021-01-26 16:30:10 +00:00
nvme_zns.c nvme: add function to get ZNS max active zones 2021-02-24 13:06:32 +00:00
nvme.c nvme: add a new custom transport SPDK_NVME_TRANSPORT_VFIOUSER 2021-01-21 05:00:18 +00:00
spdk_nvme.map nvme: add function to get ZNS max active zones 2021-02-24 13:06:32 +00:00