Spdk/lib/bdev
Dariusz Stojaczyk 8b0f049e85 bdev/virtio: resend scan I/O on full-queue scenario
The upcoming rescan implementation will
do scan I/O on existing I/O virtqueues.
To handle scan cleanly, we need to queue
scan I/O if virtqueues are full.

The heuristics for resending I/O should
be sufficient for all real case scenarios.
A scan I/O consists of either 2 or 3 iovs.
A raw I/O consists of at least 2
descriptors. Since most I/O requests
contain some additional payload, in 99%
of cases the scan I/O will be successfully
resent after polling a single I/O response.
To handle the remaining 1%, we try to
resend a scan I/O up to SCAN_REQUEST_RETRIES
(currently = 5) times.

Change-Id: I8c84ed1d109d9f403c9d7b8efabb904eb26183db
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/392174
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2017-12-27 15:13:03 -05:00
..
aio bdev_aio: Remove use of perror() for open/close failure 2017-12-15 15:22:53 -05:00
error bdev: unregister all bdevs in spdk_bdev_finish() 2017-12-21 13:29:29 -05:00
gpt bdev: unregister all bdevs in spdk_bdev_finish() 2017-12-21 13:29:29 -05:00
lvol lvol: don't return lvs_bdev if it's being destroyed 2017-12-21 13:30:44 -05:00
malloc bdev: unregister all bdevs in spdk_bdev_finish() 2017-12-21 13:29:29 -05:00
null bdev/null: complete requests asynchronously 2017-12-21 10:42:47 -05:00
nvme bdev: unregister all bdevs in spdk_bdev_finish() 2017-12-21 13:29:29 -05:00
pmem bdev: unregister all bdevs in spdk_bdev_finish() 2017-12-21 13:29:29 -05:00
rbd bdev: unregister all bdevs in spdk_bdev_finish() 2017-12-21 13:29:29 -05:00
rpc bdev: add callback to spdk bdev unregister and bdev destruct 2017-10-26 17:23:58 -04:00
split bdev: unregister all bdevs in spdk_bdev_finish() 2017-12-21 13:29:29 -05:00
virtio bdev/virtio: resend scan I/O on full-queue scenario 2017-12-27 15:13:03 -05:00
bdev.c bdev: add per-thread spdk_bdev_io cache 2017-12-21 16:22:23 -05:00
Makefile bdev_virtio: added --without-virtio configure flag 2017-10-19 19:06:12 -04:00
scsi_nvme.c nvme_spec: remove SGL Sub Type Invalid status code 2017-09-22 17:11:53 -04:00
vtune.c bdev: #include VTune file to control warnings 2017-06-08 12:44:25 -04:00