To better match bdev modules like nvme, complete requests for the bdev/null driver asynchronously. This will be done by allocating IO channels that register a poller and keep a TAILQ of bdev IO to be completed next time the poller runs. This is actually more efficient as well, since completing I/O in submit_request context defers the completion using an event. A benchmark of bdevperf with split running on top of null module shows this patch increases throughput 20%. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I8c664234660c249fd8ec8d9244eed33502d4103e Reviewed-on: https://review.gerrithub.io/392528 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> |
||
---|---|---|
.. | ||
bdev_null_rpc.c | ||
bdev_null.c | ||
bdev_null.h | ||
Makefile |