X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=log.c;h=994f4971ae0967202e49c69b4ccc9002cca0622c;hp=a705e5021415ad7069e169ba06906435724d1f37;hb=b2560f3ca4677e2908fc4111f4d04fae5df3b229;hpb=bb3884d855100fa8fa6a1d2aac79e867dfd47bf9;ds=sidebyside diff --git a/log.c b/log.c index a705e502..994f4971 100644 --- a/log.c +++ b/log.c @@ -5,7 +5,7 @@ void write_iolog_put(struct thread_data *td, struct io_u *io_u) { - fprintf(td->iolog_f, "%u,%llu,%u\n", io_u->ddir, io_u->offset, io_u->buflen); + fprintf(td->iolog_f, "%u,%llu,%lu\n", io_u->ddir, io_u->offset, io_u->buflen); } int read_iolog_get(struct thread_data *td, struct io_u *io_u) @@ -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->sequential || !td->overwrite) { + if (!td_random(td) || !td->overwrite) { list_add_tail(&ipo->list, &td->io_hist_list); return; } @@ -137,11 +137,11 @@ static int init_iolog_read(struct thread_data *td) if (!reads && !writes) return 1; else if (reads && !writes) - td->ddir = DDIR_READ; + td->td_ddir = TD_DDIR_READ; else if (!reads && writes) - td->ddir = DDIR_READ; + td->td_ddir = TD_DDIR_READ; else - td->iomix = 1; + td->td_ddir = TD_DDIR_RW; return 0; } @@ -187,6 +187,7 @@ int setup_rate(struct thread_data *td) { unsigned long long rate; int nr_reads_per_msec; + unsigned int bs; if (!td->rate) return 0; @@ -196,8 +197,15 @@ int setup_rate(struct thread_data *td) 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) / td->min_bs[DDIR_READ]; + nr_reads_per_msec = (rate * 1024 * 1000) / bs; if (!nr_reads_per_msec) { log_err("rate lower than supported\n"); return -1;