X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.c;h=7b03250bd22ddce7b01c6a3e8e306ca108ef447e;hb=d708ac5e21c97a92c9c7b6b7593d9f2b0d7c9d3f;hp=6ab0f4ada7229205d6a1774b0f56ff7cfb3fce1f;hpb=304a47c7d94f407cc72a87025679a67f02288447;p=fio.git diff --git a/fio.c b/fio.c index 6ab0f4ad..7b03250b 100644 --- a/fio.c +++ b/fio.c @@ -38,6 +38,7 @@ #include "hash.h" #include "smalloc.h" #include "verify.h" +#include "trim.h" #include "diskutil.h" #include "cgroup.h" #include "profile.h" @@ -176,6 +177,8 @@ static int __check_min_rate(struct thread_data *td, struct timeval *now, unsigned int rate_iops = 0; unsigned int rate_iops_min = 0; + assert(ddir_rw(ddir)); + if (!td->o.ratemin[ddir] && !td->o.rate_iops_min[ddir]) return 0; @@ -491,7 +494,8 @@ static void do_verify(struct thread_data *td) io_u->xfer_buf += bytes; io_u->offset += bytes; - td->ts.short_io_u[io_u->ddir]++; + if (ddir_rw(io_u->ddir)) + td->ts.short_io_u[io_u->ddir]++; if (io_u->offset == f->real_file_size) goto sync_done; @@ -576,6 +580,7 @@ static void do_io(struct thread_data *td) td_set_runstate(td, TD_RUNNING); while ( (td->o.read_iolog_file && !flist_empty(&td->io_log_list)) || + (!flist_empty(&td->trim_list)) || ((td->this_io_bytes[0] + td->this_io_bytes[1]) < td->o.size) ) { struct timeval comp_time; unsigned long bytes_done[2] = { 0, 0 }; @@ -636,7 +641,8 @@ static void do_io(struct thread_data *td) io_u->xfer_buf += bytes; io_u->offset += bytes; - td->ts.short_io_u[io_u->ddir]++; + if (ddir_rw(io_u->ddir)) + td->ts.short_io_u[io_u->ddir]++; if (io_u->offset == f->real_file_size) goto sync_done; @@ -730,6 +736,9 @@ sync_done: } } + if (td->trim_entries) + printf("trim entries %ld\n", td->trim_entries); + if (td->o.fill_device && td->error == ENOSPC) { td->error = 0; td->terminate = 1; @@ -1018,6 +1027,7 @@ static void *thread_main(void *data) INIT_FLIST_HEAD(&td->io_log_list); INIT_FLIST_HEAD(&td->io_hist_list); INIT_FLIST_HEAD(&td->verify_list); + INIT_FLIST_HEAD(&td->trim_list); pthread_mutex_init(&td->io_u_lock, NULL); td->io_hist_tree = RB_ROOT;