From fe3b769cf49456c7b7dc593ae3a1ebc6af27a1ab Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Fri, 3 Aug 2018 14:35:57 -0600 Subject: [PATCH] iolog: fix potential div-by-zero Signed-off-by: Jens Axboe --- iolog.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/iolog.c b/iolog.c index b0122bed..07692fb2 100644 --- a/iolog.c +++ b/iolog.c @@ -370,15 +370,21 @@ static bool read_iolog2(struct thread_data *td) struct timespec now; uint64_t elapsed; uint64_t for_1s; + fio_gettime(&now, NULL); elapsed = ntime_since(&td->io_log_highmark_time, &now); - for_1s = (td->io_log_highmark - td->io_log_current) * 1000000000 / elapsed; - items_to_fetch = for_1s - td->io_log_current; + if (elapsed) { + for_1s = (td->io_log_highmark - td->io_log_current) * 1000000000 / elapsed; + items_to_fetch = for_1s - td->io_log_current; + } else + items_to_fetch = 0; if (items_to_fetch < 0) items_to_fetch = 0; + td->io_log_highmark = td->io_log_current + items_to_fetch; td->io_log_checkmark = (td->io_log_highmark + 1) / 2; fio_gettime(&td->io_log_highmark_time, NULL); + if (items_to_fetch == 0) return true; } -- 2.25.1