numam-spdk/lib/nvme
Daniel Verkamp 5e86c80951 nvme/pcie: limit max completions based on queue size
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>
2018-01-05 12:45:28 -05:00
..
Makefile build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
nvme_ctrlr_cmd.c astyle: enforce braces around single-line statements 2017-12-11 11:19:32 -05:00
nvme_ctrlr.c nvme: return specific value of register when the device hot removed. 2017-12-19 13:07:20 -05:00
nvme_internal.h nvme: add doorbell buffer config support 2017-12-06 17:25:54 -05:00
nvme_ns_cmd.c astyle: enforce braces around single-line statements 2017-12-11 11:19:32 -05:00
nvme_ns.c log: rename SPDK_TRACE_* to SPDK_LOG_* 2017-12-07 12:23:19 -05:00
nvme_pcie.c nvme/pcie: limit max completions based on queue size 2018-01-05 12:45:28 -05:00
nvme_qpair.c astyle: enforce braces around single-line statements 2017-12-11 11:19:32 -05:00
nvme_quirks.c nvme: add quirks for Intel NVMe P4600 SSD 2017-12-21 10:45:05 -05:00
nvme_rdma.c util: add spdk_strerror() wrapper with TLS support 2018-01-04 15:00:09 -05:00
nvme_transport.c nvme: add new spdk_nvme_connect() API to directly attach the ctrlr 2017-10-09 12:31:12 -04:00
nvme_uevent.c util: add spdk_strerror() wrapper with TLS support 2018-01-04 15:00:09 -05:00
nvme_uevent.h nvme: Add support of hotplug for vfio-attached devices. 2017-12-06 17:04:49 -05:00
nvme.c log: rename SPDK_TRACE_* to SPDK_LOG_* 2017-12-07 12:23:19 -05:00