X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=136b43089285e1887a417c60d8f63a3d635e1176;hp=df0d020089dede57b7c5ea700e6ea1b658f04e3d;hb=79816cf7aca1e96b2f1dbb846f1d8aa0c1bbcd9f;hpb=aee2ab6775d96609a4632703827c409a7f9abcca diff --git a/fio.h b/fio.h index df0d0200..136b4308 100644 --- a/fio.h +++ b/fio.h @@ -89,6 +89,7 @@ enum { FIO_RAND_SEQ_RAND_WRITE_OFF, FIO_RAND_SEQ_RAND_TRIM_OFF, FIO_RAND_START_DELAY, + FIO_DEDUPE_OFF, FIO_RAND_NR_OFFS, }; @@ -102,6 +103,7 @@ struct thread_data { char verror[FIO_VERROR_SIZE]; pthread_t thread; unsigned int thread_number; + unsigned int subjob_number; unsigned int groupid; struct thread_stat ts; @@ -176,6 +178,8 @@ struct thread_data { }; struct frand_state buf_state; + struct frand_state buf_state_prev; + struct frand_state dedupe_state; unsigned int verify_batch; unsigned int trim_batch; @@ -254,6 +258,7 @@ struct thread_data { struct timeval epoch; /* time job was started */ struct timeval last_issue; struct timeval tv_cache; + struct timeval terminate_time; unsigned int tv_cache_nr; unsigned int tv_cache_mask; unsigned int ramp_time_over; @@ -486,8 +491,15 @@ extern void td_set_runstate(struct thread_data *, int); extern int td_bump_runstate(struct thread_data *, int); extern void td_restore_runstate(struct thread_data *, int); +/* + * Allow 60 seconds for a job to quit on its own, otherwise reap with + * a vengeance. + */ +#define FIO_REAP_TIMEOUT 60 + #define TERMINATE_ALL (-1) extern void fio_terminate_threads(int); +extern void fio_mark_td_terminate(struct thread_data *); /* * Memory helpers