From: Jens Axboe Date: Fri, 3 Aug 2018 20:35:57 +0000 (-0600) Subject: iolog: fix potential div-by-zero X-Git-Tag: fio-3.9~48 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;ds=sidebyside;h=fe3b769cf49456c7b7dc593ae3a1ebc6af27a1ab;p=fio.git iolog: fix potential div-by-zero Signed-off-by: Jens Axboe --- 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; }