+16
−0
Loading
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>