Spdk/lib/nvme
Daniel Verkamp 20abbe8abe nvme: perform resets in parallel during attach
When multiple NVMe controllers are being initialized during
spdk_nvme_probe(), we can overlap the hardware resets of all controllers
to improve startup time.

Rewrite the initialization sequence as a polling function,
nvme_ctrlr_process_init(), that maintains a per-controller state machine
to determine which initialization step is underway.  Each step also has
a timeout to ensure the process will terminate if the hardware is hung.

Currently, only the hardware reset (toggling of CC.EN and waiting for
CSTS.RDY) is done in parallel; the rest of initialization is done
sequentially in nvme_ctrlr_start() as before.  These steps could also be
parallelized in a similar framework if measurements indicate that they
take a significant amount of time.

Change-Id: I02ce5863f1b5c13ad65ccd8be571085528d98bd5
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-02-25 13:25:59 -07:00
..
Makefile nvme: Add Intel NVMe device supported feature quirks 2016-01-29 13:45:05 -07:00
nvme_ctrlr_cmd.c nvme: add spdk_ prefix 2016-02-10 11:27:45 -07:00
nvme_ctrlr.c nvme: perform resets in parallel during attach 2016-02-25 13:25:59 -07:00
nvme_impl.h nvme: add timestamp counter interface to nvme_impl 2016-02-24 21:17:12 -07:00
nvme_intel.c pci_ids: add SPDK_ prefix 2016-02-08 14:28:47 -07:00
nvme_internal.h nvme: perform resets in parallel during attach 2016-02-25 13:25:59 -07:00
nvme_ns_cmd.c spdk_nvme_ns_cmd_reservation_report: fix request allocation 2016-02-19 15:24:09 -07:00
nvme_ns.c nvme: add spdk_ prefix 2016-02-10 11:27:45 -07:00
nvme_qpair.c nvme: store SGL callback in nvme_payload 2016-02-18 15:07:18 -07:00
nvme.c nvme: perform resets in parallel during attach 2016-02-25 13:25:59 -07:00