From 2c651f101cb32c5c6954d22f8430d51a0be6702e Mon Sep 17 00:00:00 2001 From: Vitaliy Mysak Date: Sat, 2 Mar 2019 00:31:18 +0000 Subject: [PATCH] ocf: batched request processing in queue poller Process 32 OCF requests during poller invocation. This will result in more flat events distribution. This patch uses new API function: ocf_queue_run_single(). Change-Id: I0bc2ef783018fdbcf6f6e938fd7ca136ade61599 Signed-off-by: Vitaliy Mysak Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/446635 Tested-by: SPDK CI Jenkins Reviewed-by: Darek Stojaczyk Reviewed-by: Jim Harris Reviewed-by: Tomasz Zawadzki --- lib/bdev/ocf/vbdev_ocf.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/bdev/ocf/vbdev_ocf.c b/lib/bdev/ocf/vbdev_ocf.c index 641d39fdc..b34f71550 100644 --- a/lib/bdev/ocf/vbdev_ocf.c +++ b/lib/bdev/ocf/vbdev_ocf.c @@ -588,8 +588,11 @@ static int queue_poll(void *opaque) { struct vbdev_ocf_qcxt *qctx = opaque; uint32_t iono = ocf_queue_pending_io(qctx->queue); + int i, max = spdk_min(32, iono); - ocf_queue_run(qctx->queue); + for (i = 0; i < max; i++) { + ocf_queue_run_single(qctx->queue); + } if (iono > 0) { return 1;