From 0904200b6f113233a28c4c1ddf68f216bd922b78 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Fri, 23 Feb 2007 10:56:22 +0100 Subject: [PATCH] Rate must always calculate bytes done Otherwise rate will never be checked. Signed-off-by: Jens Axboe --- fio.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/fio.c b/fio.c index 58e03f9a..dbea661d 100644 --- a/fio.c +++ b/fio.c @@ -96,6 +96,7 @@ static void sig_handler(int sig) */ static int check_min_rate(struct thread_data *td, struct timeval *now) { + unsigned long long bytes = 0; unsigned long spent; unsigned long rate; @@ -105,21 +106,19 @@ static int check_min_rate(struct thread_data *td, struct timeval *now) if (mtime_since(&td->start, now) < 2000) return 0; + if (td_read(td)) + bytes += td->this_io_bytes[DDIR_READ]; + if (td_write(td)) + bytes += td->this_io_bytes[DDIR_WRITE]; + /* * if rate blocks is set, sample is running */ if (td->rate_bytes) { - unsigned long long bytes = 0; - spent = mtime_since(&td->lastrate, now); if (spent < td->ratecycle) return 0; - if (td_read(td)) - bytes += td->this_io_bytes[DDIR_READ]; - if (td_write(td)) - bytes += td->this_io_bytes[DDIR_WRITE]; - if (bytes < td->rate_bytes) { fprintf(f_out, "%s: min rate %u not met\n", td->name, td->ratemin); return 1; @@ -130,9 +129,9 @@ static int check_min_rate(struct thread_data *td, struct timeval *now) return 1; } } - td->rate_bytes = bytes; } + td->rate_bytes = bytes; memcpy(&td->lastrate, now, sizeof(*now)); return 0; } -- 2.25.1