#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>
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;
unsigned int write_lat_log;
unsigned int write_bw_log;
unsigned int write_iops_log;
+ unsigned int log_avg_msec;
unsigned int norandommap;
unsigned int softrandommap;
unsigned int bs_unaligned;
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;
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;
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;
};
struct frand_state __next_file_state;
};
int error;
+ int sig;
int done;
pid_t pid;
char *orig_buffer;
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;
unsigned int total_err_count;
int first_error;
+ struct fio_flow *flow;
+
/*
* Can be overloaded by profiles
*/
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;
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 *);