X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.h;h=6da22f039c8b1216762ec7ae349fb66b0d5bf229;hb=602f754cded0a3c73b8fad28f1efd25094178bbf;hp=a9286b86729d6231c899ab533b4ab13110513266;hpb=ed33585509a97c4a65e46967cb49419b6a4f8870;p=fio.git diff --git a/fio.h b/fio.h index a9286b86..6da22f03 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 @@ -192,6 +194,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; @@ -257,6 +261,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; }; @@ -299,6 +310,7 @@ struct thread_data { struct frand_state __next_file_state; }; int error; + int sig; int done; pid_t pid; char *orig_buffer; @@ -347,10 +359,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 +481,8 @@ struct thread_data { unsigned int total_err_count; int first_error; + struct fio_flow *flow; + /* * Can be overloaded by profiles */ @@ -501,7 +528,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; @@ -567,8 +594,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 *);