Spdk/lib/bdev/virtio
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
..
bdev_virtio_rpc.c virtio/rpc: fix construct_virtio_user_scsi_bdev 2017-12-08 12:17:19 -05:00
bdev_virtio.c bdev/virtio: resend scan I/O on full-queue scenario 2017-12-27 15:13:03 -05:00
bdev_virtio.h bdev/virtio: cleanup public API 2017-12-05 23:06:38 -05:00
Makefile virtio: add new library virtio 2017-12-26 13:03:29 -05:00