Spdk/lib/nvme
Seth Howell 2575aaec5a nvme: make sure we queue requests in order.
My recent changes that introduced batching to queued request
resubmission also introduced a regression that can lead to reordering
requests before submitting them to the drive. This change prevents that.

We wait until inside the internal _nvme_qpair_submit_request function to
check for queued entries to avoid queueing a request that has children.

If a request that has children gets queued, when we process completions
and resubmit the parent, it will result in the children being submitted.
Since we only account for the number of requests we completed in the
last iteration, some of the child requests may be requeued out of order,
or worse, none of the child requests will end up being submitted to the
transport and they will all be queued behind previously queued requests.

Change-Id: I58e1c458c25fbf3f9f75364f05b1076b166a6212
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/470890
Reviewed-by: Ziye Yang <ziye.yang@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>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-11 18:45:13 +00:00
..
Makefile Opal: Add Opal library 2019-04-08 17:04:25 +00:00
nvme_ctrlr_cmd.c nvme: add qpair parameter to nvme_complete_request 2019-05-22 14:51:01 +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: don't fail the ctrlr in nvme_ctrlr_reset 2019-10-09 14:32:36 +00:00
nvme_fabric.c nvme: switch to spdk_*malloc(). 2019-06-27 04:34:50 +00:00
nvme_internal.h nvme: store the probe destroy_cb in the ctrlr. 2019-10-09 14:32:36 +00:00
nvme_ns_cmd.c nvme: add support for write uncorrectable command 2019-09-26 18:42:57 +00:00
nvme_ns_ocssd_cmd.c vtophys: add length parameter to the vtophys function 2019-01-09 08:24:59 +00:00
nvme_ns.c nvme: add support for write uncorrectable command 2019-09-26 18:42:57 +00:00
nvme_opal_internal.h Opal: Small fixes 2019-10-01 14:12:57 +00:00
nvme_opal.c Opal: Small fixes 2019-10-01 14:12:57 +00:00
nvme_pcie.c nvme: store the probe destroy_cb in the ctrlr. 2019-10-09 14:32:36 +00:00
nvme_qpair.c nvme: make sure we queue requests in order. 2019-10-11 18:45:13 +00:00
nvme_quirks.c nvme: add NVME_QUIRK_DELAY_BEFORE_INIT quirk 2019-08-26 17:35:06 +00:00
nvme_rdma.c nvme: move queued request resubmit to generic layer 2019-10-07 15:05:00 +00:00
nvme_tcp.c nvme: move queued request resubmit to generic layer 2019-10-07 15:05:00 +00:00
nvme_transport.c nvme: add qpair is_connecting flag 2019-05-14 08:48:11 +00:00
nvme_uevent.c nvme: add vfio driver parse event 2019-05-29 02:36:41 +00:00
nvme_uevent.h nvme: Add support of hotplug for vfio-attached devices. 2017-12-06 17:04:49 -05:00
nvme.c nvme: store the probe destroy_cb in the ctrlr. 2019-10-09 14:32:36 +00:00