5e86c80951
For a given hardware queue size, only allow a quarter of the queue size to be returned as completions in a single call to spdk_nvme_qpair_process_completions(), and adjust num_trackers to match so that num_trackers + max_completions_cap doesn't exceed the hardware completion queue size. This ensures that there is room in the completion queue if new I/O is issued in response to completions before we ring the completion queue doorbell. The choice of 1/4 queue size is arbitrary; this seems to be a good compromise between completion batch size and number of trackers. Change-Id: I2c5aad7b98bfc8b33e53242240b2c9254fa05b4e Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-on: https://review.gerrithub.io/393529 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> |
||
---|---|---|
.. | ||
Makefile | ||
nvme_ctrlr_cmd.c | ||
nvme_ctrlr.c | ||
nvme_internal.h | ||
nvme_ns_cmd.c | ||
nvme_ns.c | ||
nvme_pcie.c | ||
nvme_qpair.c | ||
nvme_quirks.c | ||
nvme_rdma.c | ||
nvme_transport.c | ||
nvme_uevent.c | ||
nvme_uevent.h | ||
nvme.c |