From b0bd24843577aef2b806bc1ee2b573deeda11cb3 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 6 Jan 2016 14:19:54 -0500 Subject: [PATCH] os/fs: make aio EAGAIN backoff exponential Signed-off-by: Sage Weil --- src/os/fs/FS.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/os/fs/FS.h b/src/os/fs/FS.h index ec0376e4fb3..3941799398e 100644 --- a/src/os/fs/FS.h +++ b/src/os/fs/FS.h @@ -110,13 +110,16 @@ public: } int submit(aio_t &aio, int *retries) { - int attempts = 10; + // 2^16 * 125us = ~8 seconds, so max sleep is ~16 seconds + int attempts = 16; + int delay = 125; iocb *piocb = &aio.iocb; while (true) { int r = io_submit(ctx, 1, &piocb); if (r < 0) { if (r == -EAGAIN && attempts-- > 0) { - usleep(500); + usleep(delay); + delay *= 2; (*retries)++; continue; } -- 2.47.3