X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=libfio.c;h=d4cad3ec5aba0a5b4d9d926bc3675e27acc5471a;hp=ed26114d452fe4488a238ac04a7c4fd6da9e5624;hb=830814d41dc8b8b9757eb2a6cf7ed7be7128d1f2;hpb=55312f9f5572611037b6254912460f64173df574 diff --git a/libfio.c b/libfio.c index ed26114d..d4cad3ec 100644 --- a/libfio.c +++ b/libfio.c @@ -89,6 +89,8 @@ static void reset_io_counters(struct thread_data *td) td->rate_bytes[ddir] = 0; td->rate_blocks[ddir] = 0; td->bytes_done[ddir] = 0; + td->rate_io_issue_bytes[ddir] = 0; + td->rate_next_io_time[ddir] = 0; } td->zone_bytes = 0; @@ -116,9 +118,10 @@ void clear_io_state(struct thread_data *td) } /* - * Set the same seed to get repeatable runs + * Re-Seed random number generator if rand_repeatable is true */ - td_fill_rand_seeds(td); + if (td->o.rand_repeatable) + td_fill_rand_seeds(td); } void reset_all_stats(struct thread_data *td) @@ -168,13 +171,38 @@ const char *fio_get_arch_string(int nr) return NULL; } +static const char *td_runstates[] = { + "NOT_CREATED", + "CREATED", + "INITIALIZED", + "RAMP", + "SETTING_UP", + "RUNNING", + "PRE_READING", + "VERIFYING", + "FSYNCING", + "FINISHING", + "EXITED", + "REAPED", +}; + +static const char *runstate_to_name(int runstate) +{ + compiletime_assert(TD_LAST == 12, "td runstate list"); + if (runstate >= 0 && runstate < TD_LAST) + return td_runstates[runstate]; + + return "invalid"; +} + void td_set_runstate(struct thread_data *td, int runstate) { if (td->runstate == runstate) return; - dprint(FD_PROCESS, "pid=%d: runstate %d -> %d\n", (int) td->pid, - td->runstate, runstate); + dprint(FD_PROCESS, "pid=%d: runstate %s -> %s\n", (int) td->pid, + runstate_to_name(td->runstate), + runstate_to_name(runstate)); td->runstate = runstate; } @@ -353,3 +381,8 @@ int initialize_fio(char *envp[]) fio_keywords_init(); return 0; } + +void deinitialize_fio(void) +{ + fio_keywords_exit(); +}