X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=log.c;h=dbca3ccb7f023f37df7d4a9a52aa291cfd45a7a7;hb=cb25df61fbe19065b41bee131d19335d615c676b;hp=df2edc6bb5a75ef603a923d3a6665798a97a4e2c;hpb=4e991c23d2d06484f581eb5e2105bc102cb35941;p=fio.git diff --git a/log.c b/log.c index df2edc6b..dbca3ccb 100644 --- a/log.c +++ b/log.c @@ -56,7 +56,7 @@ void log_io_piece(struct thread_data *td, struct io_u *io_u) * be laid out with the block scattered as written. it's faster to * read them in in that order again, so don't sort */ - if (!td_random(td) || !td->overwrite) { + if (!td_random(td) || !td->o.overwrite) { list_add_tail(&ipo->list, &td->io_hist_list); return; } @@ -93,7 +93,7 @@ static int init_iolog_read(struct thread_data *td) FILE *f; int rw, reads, writes; - f = fopen(td->read_iolog_file, "r"); + f = fopen(td->o.read_iolog_file, "r"); if (!f) { perror("fopen read iolog"); return 1; @@ -126,8 +126,8 @@ static int init_iolog_read(struct thread_data *td) ipo->offset = offset; ipo->len = bytes; ipo->ddir = (enum fio_ddir) rw; - if (bytes > td->max_bs[rw]) - td->max_bs[rw] = bytes; + if (bytes > td->o.max_bs[rw]) + td->o.max_bs[rw] = bytes; list_add_tail(&ipo->list, &td->io_log_list); } @@ -137,11 +137,11 @@ static int init_iolog_read(struct thread_data *td) if (!reads && !writes) return 1; else if (reads && !writes) - td->td_ddir = TD_DDIR_READ; + td->o.td_ddir = TD_DDIR_READ; else if (!reads && writes) - td->td_ddir = TD_DDIR_READ; + td->o.td_ddir = TD_DDIR_READ; else - td->td_ddir = TD_DDIR_RW; + td->o.td_ddir = TD_DDIR_RW; return 0; } @@ -153,7 +153,7 @@ static int init_iolog_write(struct thread_data *td) { FILE *f; - f = fopen(td->write_iolog_file, "w+"); + f = fopen(td->o.write_iolog_file, "w+"); if (!f) { perror("fopen write iolog"); return 1; @@ -175,46 +175,14 @@ int init_iolog(struct thread_data *td) if (td->io_ops->flags & FIO_DISKLESSIO) return 0; - if (td->read_iolog_file) + if (td->o.read_iolog_file) ret = init_iolog_read(td); - else if (td->write_iolog_file) + else if (td->o.write_iolog_file) ret = init_iolog_write(td); return ret; } -int setup_rate(struct thread_data *td) -{ - unsigned long long rate; - int nr_reads_per_msec; - unsigned int bs; - - if (!td->rate && !td->rate_iops) - return 0; - - if (td_rw(td)) - bs = td->rw_min_bs; - else if (td_read(td)) - bs = td->min_bs[DDIR_READ]; - else - bs = td->min_bs[DDIR_WRITE]; - - if (td->rate) { - rate = td->rate; - nr_reads_per_msec = (rate * 1024 * 1000) / bs; - } else - nr_reads_per_msec = td->rate_iops * 1000; - - if (!nr_reads_per_msec) { - log_err("rate lower than supported\n"); - return -1; - } - - td->rate_usec_cycle = 1000000000ULL / nr_reads_per_msec; - td->rate_pending_usleep = 0; - return 0; -} - void setup_log(struct io_log **log) { struct io_log *l = malloc(sizeof(*l));