X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=log.c;h=f61215eae73e2b63e3868e713f99bf95eddeb240;hp=91ac0830582625af31a8c78c730ee78ffc53ccd8;hb=6104ddb6b14be6f3d97bf0faa5b7e06dea22f5f4;hpb=b4a6a59a939f0e6554632de311e7d1d1b7633ccf diff --git a/log.c b/log.c index 91ac0830..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; @@ -172,14 +172,15 @@ int init_iolog(struct thread_data *td) { int ret = 0; - if (td->read_iolog) + if (td->io_ops->flags & FIO_CPUIO) + return 0; + + if (td->read_iolog_file) ret = init_iolog_read(td); - else if (td->write_iolog) + else if (td->write_iolog_file) ret = init_iolog_write(td); - free(td->iolog_file); - td->iolog_file = NULL; - return 0; + return ret; } int setup_rate(struct thread_data *td) @@ -194,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;