X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=log.c;h=f61215eae73e2b63e3868e713f99bf95eddeb240;hp=51eaee6ecae085e6bc71184148ba26bf8574c1e1;hb=1e97cce9f5a87a67293a05ec4533ed6968698b2e;hpb=fb71fbd73027a2d6202be9b9b1480bb845ea52df diff --git a/log.c b/log.c index 51eaee6e..f61215ea 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, "%d,%llu,%u\n", io_u->ddir, io_u->offset, io_u->buflen); + fprintf(td->iolog_f, "%u,%llu,%u\n", io_u->ddir, io_u->offset, io_u->buflen); } int read_iolog_get(struct thread_data *td, struct io_u *io_u) @@ -93,7 +93,7 @@ static int init_iolog_read(struct thread_data *td) FILE *f; int rw, reads, writes; - f = fopen(td->iolog_file, "r"); + f = fopen(td->read_iolog_file, "r"); if (!f) { perror("fopen read iolog"); return 1; @@ -125,9 +125,9 @@ static int init_iolog_read(struct thread_data *td) INIT_LIST_HEAD(&ipo->list); ipo->offset = offset; ipo->len = bytes; - if (bytes > td->max_bs) - td->max_bs = bytes; - ipo->ddir = rw; + ipo->ddir = (enum fio_ddir) rw; + if (bytes > td->max_bs[rw]) + td->max_bs[rw] = bytes; list_add_tail(&ipo->list, &td->io_log_list); } @@ -151,9 +151,9 @@ static int init_iolog_read(struct thread_data *td) */ static int init_iolog_write(struct thread_data *td) { - FILE *f = fopen(td->iolog_file, "w"); + FILE *f; - f = fopen(td->iolog_file, "w"); + f = fopen(td->write_iolog_file, "w+"); if (!f) { perror("fopen write iolog"); return 1; @@ -170,12 +170,17 @@ static int init_iolog_write(struct thread_data *td) int init_iolog(struct thread_data *td) { - if (td->read_iolog) - return init_iolog_read(td); - else if (td->write_iolog) - return init_iolog_write(td); + int ret = 0; - return 0; + if (td->io_ops->flags & FIO_CPUIO) + return 0; + + if (td->read_iolog_file) + ret = init_iolog_read(td); + else if (td->write_iolog_file) + ret = init_iolog_write(td); + + return ret; } int setup_rate(struct thread_data *td) @@ -190,7 +195,7 @@ int setup_rate(struct thread_data *td) return -1; } - nr_reads_per_sec = (td->rate * 1024) / td->min_bs; + nr_reads_per_sec = (td->rate * 1024) / td->min_bs[DDIR_READ]; td->rate_usec_cycle = 1000000 / nr_reads_per_sec; td->rate_pending_usleep = 0; return 0;