X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.h;h=e943ad165ba01c2d4d8132009f33af5efe72da8f;hb=b10b1e70afaff8c9b00005e9238f2ad347a9c00a;hp=53bcda1315f9b88858e6cf2f41b37b03b4380bd5;hpb=2048d33fe36bf46f91785e8010f65d875501d410;p=fio.git diff --git a/fio.h b/fio.h index 53bcda13..e943ad16 100644 --- a/fio.h +++ b/fio.h @@ -245,7 +245,7 @@ struct thread_data { void *iolog_buf; FILE *iolog_f; - unsigned long rand_seeds[FIO_RAND_NR_OFFS]; + uint64_t rand_seeds[FIO_RAND_NR_OFFS]; struct frand_state bsrange_state[DDIR_RWDIR_CNT]; struct frand_state verify_state; @@ -660,8 +660,14 @@ extern const char *runstate_to_name(int runstate); */ #define FIO_REAP_TIMEOUT 300 -#define TERMINATE_ALL (-1U) -extern void fio_terminate_threads(unsigned int); +enum { + TERMINATE_NONE = 0, + TERMINATE_GROUP = 1, + TERMINATE_STONEWALL = 2, + TERMINATE_ALL = -1, +}; + +extern void fio_terminate_threads(unsigned int, unsigned int); extern void fio_mark_td_terminate(struct thread_data *); /* @@ -705,16 +711,6 @@ extern void lat_target_reset(struct thread_data *); (i) < (td)->o.nr_files && ((f) = (td)->files[i]) != NULL; \ (i)++) -#define fio_assert(td, cond) do { \ - if (!(cond)) { \ - int *__foo = NULL; \ - fprintf(stderr, "file:%s:%d, assert %s failed\n", __FILE__, __LINE__, #cond); \ - td_set_runstate((td), TD_EXITED); \ - (td)->error = EFAULT; \ - *__foo = 0; \ - } \ -} while (0) - static inline bool fio_fill_issue_time(struct thread_data *td) { if (td->o.read_iolog_file || @@ -772,6 +768,11 @@ static inline bool td_async_processing(struct thread_data *td) return (td->flags & TD_F_NEED_LOCK) != 0; } +static inline bool td_offload_overlap(struct thread_data *td) +{ + return td->o.serialize_overlap && td->o.io_submit_mode == IO_MODE_OFFLOAD; +} + /* * We currently only need to do locking if we have verifier threads * accessing our internal structures too @@ -852,4 +853,7 @@ enum { extern void exec_trigger(const char *); extern void check_trigger_file(void); +extern bool in_flight_overlap(struct io_u_queue *q, struct io_u *io_u); +extern pthread_mutex_t overlap_check; + #endif