X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=libfio.c;h=a52014ce6bd3afebcf8e5bc4adecea1fcc0794cd;hb=051b5785bc47ab216fa3db9dceb6184073dcc88a;hp=6144a474738fe9a51a530ffad691aa234138d665;hpb=2ee239fb084355e115cf8c2bf8051e8807c4222a;p=fio.git diff --git a/libfio.c b/libfio.c index 6144a474..a52014ce 100644 --- a/libfio.c +++ b/libfio.c @@ -87,13 +87,14 @@ static void reset_io_counters(struct thread_data *td, int all) td->this_io_bytes[ddir] = 0; td->stat_io_blocks[ddir] = 0; td->this_io_blocks[ddir] = 0; - td->rate_bytes[ddir] = 0; - td->rate_blocks[ddir] = 0; + td->last_rate_check_bytes[ddir] = 0; + td->last_rate_check_blocks[ddir] = 0; td->bytes_done[ddir] = 0; td->rate_io_issue_bytes[ddir] = 0; td->rate_next_io_time[ddir] = 0; td->last_usec[ddir] = 0; } + td->bytes_verified = 0; } td->zone_bytes = 0; @@ -104,7 +105,7 @@ static void reset_io_counters(struct thread_data *td, int all) /* * reset file done count if we are to start over */ - if (td->o.time_based || td->o.loops || td->o.do_verify) + if (td->o.time_based || td->loops > 1 || td->o.do_verify) td->nr_done_files = 0; } @@ -140,10 +141,9 @@ void reset_all_stats(struct thread_data *td) td->io_issues[i] = 0; td->ts.total_io_u[i] = 0; td->ts.runtime[i] = 0; - td->rwmix_issues = 0; } - set_epoch_time(td, td->o.log_unix_epoch); + set_epoch_time(td, td->o.log_unix_epoch | td->o.log_alternate_epoch, td->o.log_alternate_epoch_clock_id); memcpy(&td->start, &td->epoch, sizeof(td->epoch)); memcpy(&td->iops_sample_time, &td->epoch, sizeof(td->epoch)); memcpy(&td->bw_sample_time, &td->epoch, sizeof(td->epoch)); @@ -240,13 +240,11 @@ void fio_mark_td_terminate(struct thread_data *td) void fio_terminate_threads(unsigned int group_id, unsigned int terminate) { - struct thread_data *td; pid_t pid = getpid(); - int i; dprint(FD_PROCESS, "terminate group_id=%d\n", group_id); - for_each_td(td, i) { + for_each_td(td) { if ((terminate == TERMINATE_GROUP && group_id == TERMINATE_ALL) || (terminate == TERMINATE_GROUP && group_id == td->groupid) || (terminate == TERMINATE_STONEWALL && td->runstate >= TD_RUNNING) || @@ -274,22 +272,20 @@ void fio_terminate_threads(unsigned int group_id, unsigned int terminate) ops->terminate(td); } } - } + } end_for_each(); } int fio_running_or_pending_io_threads(void) { - struct thread_data *td; - int i; int nr_io_threads = 0; - for_each_td(td, i) { + for_each_td(td) { if (td->io_ops_init && td_ioengine_flagged(td, FIO_NOIO)) continue; nr_io_threads++; if (td->runstate < TD_EXITED) return 1; - } + } end_for_each(); if (!nr_io_threads) return -1; /* we only had cpuio threads to begin with */