X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.c;h=41b602020b9c93a68a13a0b02bbcf945102f3dcc;hp=28864bdf72ebf8c6f5d610e5e068c0d0cab5d506;hb=0268b8ba7b2c79c669323cb1fcc0b045b84313f1;hpb=690089990d051d86b4ef2b6fd5c1972c0dd4897b diff --git a/fio.c b/fio.c index 28864bdf..41b60202 100644 --- a/fio.c +++ b/fio.c @@ -105,7 +105,7 @@ static int check_min_rate(struct thread_data *td, struct timeval *now) rate = (td->this_io_bytes[ddir] - td->rate_bytes) / spent; if (rate < td->ratemin) { - fprintf(f_out, "%s: min rate %d not met, got %ldKiB/sec\n", td->name, td->ratemin, rate); + fprintf(f_out, "%s: min rate %u not met, got %luKiB/sec\n", td->name, td->ratemin, rate); return 1; } } @@ -242,7 +242,7 @@ static int fio_io_sync(struct thread_data *td, struct fio_file *f) * The main verify engine. Runs over the writes we previusly submitted, * reads the blocks back in, and checks the crc/md5 of the data. */ -void do_verify(struct thread_data *td) +static void do_verify(struct thread_data *td) { struct io_u *io_u, *v_io_u = NULL; struct io_completion_data icd; @@ -507,7 +507,12 @@ static int init_io_u(struct thread_data *td) max_units = td->iodepth; max_bs = max(td->max_bs[DDIR_READ], td->max_bs[DDIR_WRITE]); - td->orig_buffer_size = max_bs * max_units + MASK; + td->orig_buffer_size = max_bs * max_units; + + if (td->mem_type == MEM_SHMHUGE) + td->orig_buffer_size = (td->orig_buffer_size + FIO_HUGE_PAGE - 1) & ~(FIO_HUGE_PAGE - 1); + else + td->orig_buffer_size += MASK; if (allocate_io_mem(td)) return 1; @@ -663,10 +668,10 @@ static void *thread_main(void *data) system(td->exec_prerun); fio_gettime(&td->epoch, NULL); + getrusage(RUSAGE_SELF, &td->ru_start); runtime[0] = runtime[1] = 0; while (td->loops--) { - getrusage(RUSAGE_SELF, &td->ru_start); fio_gettime(&td->start, NULL); memcpy(&td->stat_sample_time, &td->start, sizeof(td->start)); @@ -685,8 +690,6 @@ static void *thread_main(void *data) if (td_rw(td) && td->io_bytes[td->ddir ^ 1]) runtime[td->ddir ^ 1] = runtime[td->ddir]; - update_rusage_stat(td); - if (td->error || td->terminate) break; @@ -704,6 +707,7 @@ static void *thread_main(void *data) break; } + update_rusage_stat(td); fio_gettime(&td->end_time, NULL); td->runtime[0] = runtime[0] / 1000; td->runtime[1] = runtime[1] / 1000;