X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=2094d30b863ef41e01807464731e510c5dead8e8;hp=9e99da194f4f53850ec4299027f88e8bd8048e0d;hb=66b182f90c3f08dcbd0592ce70cb350ca5ac0cc0;hpb=26b3a1880d38bc24b633a643339c9ca31f303d1c diff --git a/fio.h b/fio.h index 9e99da19..2094d30b 100644 --- a/fio.h +++ b/fio.h @@ -57,7 +57,9 @@ /* * "local" is pseudo-policy */ -#define MPOL_LOCAL MPOL_MAX +#ifndef MPOL_LOCAL +#define MPOL_LOCAL 4 +#endif #endif #ifdef CONFIG_CUDA @@ -243,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; @@ -503,7 +505,7 @@ enum { #define __fio_stringify_1(x) #x #define __fio_stringify(x) __fio_stringify_1(x) -extern int exitall_on_terminate; +extern bool exitall_on_terminate; extern unsigned int thread_number; extern unsigned int stat_number; extern int shm_id; @@ -512,7 +514,7 @@ extern int output_format; extern int append_terse_output; extern int temp_stall_ts; extern uintptr_t page_mask, page_size; -extern int read_only; +extern bool read_only; extern int eta_print; extern int eta_new_line; extern unsigned int eta_interval_msec; @@ -523,10 +525,10 @@ extern enum fio_cs fio_clock_source; extern int fio_clock_source_set; extern int warnings_fatal; extern int terse_version; -extern int is_backend; -extern int is_local_backend; +extern bool is_backend; +extern bool is_local_backend; extern int nr_clients; -extern int log_syslog; +extern bool log_syslog; extern int status_interval; extern const char fio_version_string[]; extern char *trigger_file; @@ -703,16 +705,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 || @@ -770,6 +762,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 @@ -850,4 +847,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