From abc3bc4f8e07fd4d54d6bba99f085e33d89bbe07 Mon Sep 17 00:00:00 2001 From: Ziye Yang Date: Mon, 2 Jul 2018 15:24:17 +0800 Subject: [PATCH] bdev/rbd: change the poller to timer poller Poll it every 50 microseconds. Reason: Ceph's librbd service is not very fast. So choose a timer period to poll it, instead of use the syscall to poll it again and again, it is unnecessary. And this is a default value, which can be tuned by customers later. Change-Id: I91c31442da5ddadf3bef43083bd789d01bb1c952 Signed-off-by: Ziye Yang Reviewed-on: https://review.gerrithub.io/417442 Tested-by: SPDK Automated Test System Reviewed-by: Changpeng Liu Reviewed-by: Jim Harris --- lib/bdev/rbd/bdev_rbd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/bdev/rbd/bdev_rbd.c b/lib/bdev/rbd/bdev_rbd.c index a7d079e96..594a65d94 100644 --- a/lib/bdev/rbd/bdev_rbd.c +++ b/lib/bdev/rbd/bdev_rbd.c @@ -54,6 +54,8 @@ static int bdev_rbd_count = 0; +#define BDEV_RBD_POLL_US 50 + struct bdev_rbd { struct spdk_bdev disk; char *rbd_name; @@ -512,7 +514,7 @@ bdev_rbd_create_cb(void *io_device, void *ctx_buf) goto err; } - ch->poller = spdk_poller_register(bdev_rbd_io_poll, ch, 0); + ch->poller = spdk_poller_register(bdev_rbd_io_poll, ch, BDEV_RBD_POLL_US); return 0;