numam-spdk/lib/nvme
Niklas Cassel c4d1b7d57a nvme: add new state to get Identify IOCS Specific Namespace data structs
Add a new state in the SPDK NVMe state machine in order to fetch
I/O Command Set Specific Namespace data structures.

Right now there is only support for the Zoned Namespace Command Set
Specific Identify Namespace data structure.

The NVM Command Set Specific Identify Namespace data structure is
all zeroes right now, reserved for future use.
The Key Value Command Set Identify Namespace data structure is not
all zeroes, however, adding support for Key Value is outside the
scope of this patch.

The new NVME_CTRLR_STATE_IDENTIFY_NS_IOCS_SPECIFIC state is added
after the NVME_CTRLR_STATE_IDENTIFY_ID_DESCS state. This is because
we need to have fetched the identifiers in the desc list in order
to know which command set a namespace belongs to.

A slightly nicer design might have been to refactor the NVMe state
machine to first fetch the id desc list, then the identify namespace
struct, and finally the identify IOCS specific namespace struct.
However, since this would have required a lot of changes, it didn't
really seem justified.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Change-Id: I62cbc533c2c3eec1ccf0ba9b1c414d5a70919cff
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4368
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2020-09-30 07:26:04 +00:00
..
Makefile build: cleanup LOCAL_SYS_LIBS for uuid 2020-09-29 09:36:25 +00:00
nvme_ctrlr_cmd.c nvme: add a csi parameter to nvme_ctrlr_cmd_identify() 2020-09-22 11:39:53 +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: add new state to get Identify IOCS Specific Namespace data structs 2020-09-30 07:26:04 +00:00
nvme_cuse.c nvme/cuse: fix nblocks and block_size in rw path 2020-09-04 08:13:56 +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: add a csi parameter to nvme_ctrlr_cmd_identify() 2020-09-22 11:39:53 +00:00
nvme_internal.h nvme: add new state to get Identify IOCS Specific Namespace data structs 2020-09-30 07:26:04 +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 lib: net, notify, nvme, rocksdb remove spdk_ prefix. 2020-05-21 09:19:00 +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: add new state to get Identify IOCS Specific Namespace data structs 2020-09-30 07:26:04 +00:00
nvme_opal_internal.h nvme/opal: deprecate spdk_opal_supported() 2020-05-20 14:16:44 +00:00
nvme_opal.c lib/nvme: Remove inclusion of SPDK event library 2020-06-01 09:20:41 +00:00
nvme_pcie.c nvme/pci: Check for command completions after deleting submission queue 2020-09-04 08:14:44 +00:00
nvme_poll_group.c lib/nvme: switch poll group to use connect/disconnect semantics. 2020-04-22 19:06:26 +00:00
nvme_qpair.c nvme: fix infinite loop when aborting queued reqs 2020-09-17 21:34:58 +00:00
nvme_quirks.c env: add spdk_pci_id->class_id 2020-07-23 20:48:47 +00:00
nvme_rdma.c nvme/rdma: Check that SGL descriptors fit into ICD 2020-09-16 07:58:13 +00:00
nvme_tcp.c nvme: disable zero copy for client TCP sockets 2020-09-30 00:21:26 +00:00
nvme_transport.c nvme/transport: addd assert for transport. 2020-07-29 07:37:26 +00:00
nvme_uevent.c nvme: increase size of uevent buffer to 1MB 2020-09-08 07:49:32 +00:00
nvme_uevent.h nvme: read all uevents 2020-08-24 07:38:33 +00:00
nvme.c nvme/tcp: Process poll_group when waiting for icresp 2020-09-29 09:35:47 +00:00
spdk_nvme.map lib/nvme: Add two public APIs to get ANA group ID and ANA state of the namespace 2020-09-25 11:42:44 +00:00