X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=log.c;h=dbca3ccb7f023f37df7d4a9a52aa291cfd45a7a7;hp=6de98ac2900a9bdb0a92dc571d77e188fa140b10;hb=bd0ee748e96338ace7b22b6f0ac1f8934d3385c0;hpb=c3852ae26bbe6072b2905938bb4fb0f511977cba diff --git a/log.c b/log.c index 6de98ac2..dbca3ccb 100644 --- a/log.c +++ b/log.c @@ -39,7 +39,7 @@ void prune_io_piece_log(struct thread_data *td) } /* - * log a succesful write, so we can unwind the log for verify + * log a successful write, so we can unwind the log for verify */ void log_io_piece(struct thread_data *td, struct io_u *io_u) { @@ -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; @@ -172,50 +172,17 @@ int init_iolog(struct thread_data *td) { int ret = 0; - if (td->io_ops->flags & FIO_CPUIO) + 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) - return 0; - - if (td->rate < td->ratemin) { - log_err("min rate larger than nominal rate\n"); - return -1; - } - - 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]; - - rate = td->rate; - nr_reads_per_msec = (rate * 1024 * 1000) / bs; - 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));