Add buffer_compress_percentage
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index afffb9aaf120caf390927ed163533ed20e0aed67..7443bc06bdd510f79a5b3a550ea41d6d0e953874 100644 (file)
--- 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 <guasi.h>
@@ -168,6 +170,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 +194,7 @@ struct thread_options {
        unsigned int zero_buffers;
        unsigned int refill_buffers;
        unsigned int scramble_buffers;
+       unsigned int compress_percentage;
        unsigned int time_based;
        unsigned int disable_lat;
        unsigned int disable_clat;
@@ -256,6 +260,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;
 };
 
@@ -346,10 +355,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 +477,8 @@ struct thread_data {
        unsigned int total_err_count;
        int first_error;
 
+       struct fio_flow *flow;
+
        /*
         * Can be overloaded by profiles
         */
@@ -566,8 +590,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 *);