X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=f2a5a1f1ee70b91353734c9c5f8f8308ca10d338;hp=afffb9aaf120caf390927ed163533ed20e0aed67;hb=47ea504af7710960e4019254cb910f69a32cb242;hpb=b8bc8cba9512c6dce4891fda86de675053605ca2 diff --git a/fio.h b/fio.h index afffb9aa..f2a5a1f1 100644 --- a/fio.h +++ b/fio.h @@ -33,10 +33,12 @@ struct thread_data; #include "options.h" #include "profile.h" #include "time.h" +#include "gettime.h" #include "lib/getopt.h" #include "lib/rand.h" #include "server.h" #include "stat.h" +#include "flow.h" #ifdef FIO_HAVE_GUASI #include @@ -123,6 +125,7 @@ struct thread_options { unsigned int create_serialize; unsigned int create_fsync; unsigned int create_on_open; + unsigned int create_only; unsigned int end_fsync; unsigned int pre_read; unsigned int sync_io; @@ -168,6 +171,7 @@ struct thread_options { unsigned int bw_avg_time; unsigned int iops_avg_time; unsigned int loops; + unsigned long long zone_range; unsigned long long zone_size; unsigned long long zone_skip; enum fio_memtype mem_type; @@ -191,6 +195,8 @@ struct thread_options { unsigned int zero_buffers; unsigned int refill_buffers; unsigned int scramble_buffers; + unsigned int compress_percentage; + unsigned int compress_chunk; unsigned int time_based; unsigned int disable_lat; unsigned int disable_clat; @@ -256,6 +262,13 @@ struct thread_options { unsigned int uid; unsigned int gid; + int flow_id; + int flow; + int flow_watermark; + unsigned int flow_sleep; + + unsigned long long offset_increment; + unsigned int sync_file_range; }; @@ -298,6 +311,7 @@ struct thread_data { struct frand_state __next_file_state; }; int error; + int sig; int done; pid_t pid; char *orig_buffer; @@ -346,10 +360,23 @@ struct thread_data { struct ioengine_ops *io_ops; /* - * Current IO depth and list of free and busy io_u's. + * Queue depth of io_u's that fio MIGHT do */ unsigned int cur_depth; + + /* + * io_u's about to be committed + */ unsigned int io_u_queued; + + /* + * io_u's submitted but not completed yet + */ + unsigned int io_u_in_flight; + + /* + * List of free and busy io_u's + */ struct flist_head io_u_freelist; struct flist_head io_u_busylist; struct flist_head io_u_requeues; @@ -455,6 +482,8 @@ struct thread_data { unsigned int total_err_count; int first_error; + struct fio_flow *flow; + /* * Can be overloaded by profiles */ @@ -500,7 +529,7 @@ extern int groupid; extern int terse_output; extern int temp_stall_ts; extern unsigned long long mlock_size; -extern unsigned long page_mask, page_size; +extern uintptr_t page_mask, page_size; extern int read_only; extern int eta_print; extern unsigned long done_secs; @@ -566,8 +595,9 @@ static inline int should_fsync(struct thread_data *td) extern int __must_check parse_options(int, char **); extern int parse_jobs_ini(char *, int, int); extern int parse_cmd_line(int, char **); -extern int exec_run(void); +extern int fio_backend(void); extern void reset_fio_state(void); +extern void clear_io_state(struct thread_data *); extern int fio_options_parse(struct thread_data *, char **, int); extern void fio_keywords_init(void); extern int fio_cmd_option_parse(struct thread_data *, const char *, char *);