Requests that are completed immediately (i.e. those not using the accel engine) are now queued and their completion is delayed to the completion poller. It ensures that they're not completed from the context of a submission, which gets rid of an spdk_thread_send_msg() call. It significantly improves performance on some workloads. For instance, 4k zcopy reads (queue depth 128) on an malloc bdev exposed through NVMe/TCP went from 204k IOPS to 485k IOPS. Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I196f55fc07d167f1ed117d2430e9c37f9d05f70d Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10805 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> |
||
---|---|---|
.. | ||
bdev_malloc_rpc.c | ||
bdev_malloc.c | ||
bdev_malloc.h | ||
Makefile |