From: Jens Axboe Date: Fri, 23 Feb 2007 09:56:22 +0000 (+0100) Subject: Rate must always calculate bytes done X-Git-Tag: fio-1.12~17 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=0904200b6f113233a28c4c1ddf68f216bd922b78 Rate must always calculate bytes done Otherwise rate will never be checked. Signed-off-by: Jens Axboe --- 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; }