X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=5c912d0aab89da4c3b8c0510e5220107e083a067;hp=a9286b86729d6231c899ab533b4ab13110513266;hb=16de1bf91ca80e62ce257a24cae471fab140bbe0;hpb=ed33585509a97c4a65e46967cb49419b6a4f8870 diff --git a/fio.h b/fio.h index a9286b86..5c912d0a 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 @@ -257,6 +259,11 @@ struct thread_options { unsigned int uid; unsigned int gid; + int flow_id; + int flow; + int flow_watermark; + unsigned int flow_sleep; + unsigned int sync_file_range; }; @@ -347,10 +354,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; @@ -456,6 +476,8 @@ struct thread_data { unsigned int total_err_count; int first_error; + struct fio_flow *flow; + /* * Can be overloaded by profiles */ @@ -567,8 +589,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 *);