From 74939e38e5164682a57cbe2dfdced09b35cd0259 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Thu, 19 Oct 2006 20:37:12 +0200 Subject: [PATCH] [PATCH] Total io size / eta fix Inadvertently the files were counted twice, hence ETA ended at 50%. This was also the real bug for the verify ETA fixed a few days ago, so reinstate the proper check when doing verifies as well. Signed-off-by: Jens Axboe --- eta.c | 11 +++++++++++ filesetup.c | 5 +---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/eta.c b/eta.c index 9ad0b49b..0eca3be0 100644 --- a/eta.c +++ b/eta.c @@ -105,6 +105,17 @@ static int thread_eta(struct thread_data *td, unsigned long elapsed) bytes_total = td->total_io_size; + /* + * if writing, bytes_total will be twice the size. If mixing, + * assume a 50/50 split and thus bytes_total will be 50% larger. + */ + if (td->verify) { + if (td_rw(td)) + bytes_total = bytes_total * 3 / 2; + else + bytes_total <<= 1; + } + if (td->zone_size && td->zone_skip) bytes_total /= (td->zone_skip / td->zone_size); diff --git a/filesetup.c b/filesetup.c index 57735a96..327eb5ac 100644 --- a/filesetup.c +++ b/filesetup.c @@ -86,7 +86,6 @@ static int create_files(struct thread_data *td) * unless specifically asked for overwrite, let normal io extend it */ if (!td->overwrite) { - td->io_size = td->total_file_size; for_each_file(td, f, i) f->file_size = td->total_file_size / td->nr_files; @@ -109,10 +108,9 @@ static int create_files(struct thread_data *td) err = create_file(td, f); if (err) break; - - td->io_size += f->file_size; } + td->io_size = td->total_file_size; temp_stall_ts = 0; return err; } @@ -179,7 +177,6 @@ static int get_file_size(struct thread_data *td, struct fio_file *f) return 1; } - td->io_size += f->file_size; return 0; } -- 2.25.1