};
struct io_stat {
- unsigned long val;
- unsigned long val_sq;
unsigned long max_val;
unsigned long min_val;
unsigned long samples;
+
+ double mean;
+ double S;
};
struct io_sample {
FIO_CPUIO = 1 << 1,
FIO_MMAPIO = 1 << 2,
FIO_RAWIO = 1 << 3,
+ FIO_NETIO = 1 << 4,
};
struct fio_file {
unsigned int unlink;
};
+/*
+ * How many depth levels to log
+ */
+#define FIO_IO_U_MAP_NR 8
+
/*
* This describes a single thread/process executing a fio job.
*/
struct thread_data {
+ char *description;
char *name;
char *directory;
char *filename;
unsigned int bs[2];
unsigned int min_bs[2];
unsigned int max_bs[2];
+ unsigned int hugepage_size;
unsigned int rw_min_bs;
unsigned int thinktime;
+ unsigned int thinktime_blocks;
unsigned int fsync_blocks;
unsigned int start_delay;
unsigned long timeout;
unsigned long long zone_size;
unsigned long long zone_skip;
enum fio_memtype mem_type;
- char *hugefile;
- int hugefd;
+ char *mmapfile;
+ int mmapfd;
unsigned int stonewall;
unsigned int numjobs;
unsigned int iodepth;
* Current IO depth and list of free and busy io_u's.
*/
unsigned int cur_depth;
+ unsigned int io_u_map[FIO_IO_U_MAP_NR];
+ unsigned long total_io_u;
struct list_head io_u_freelist;
struct list_head io_u_busylist;
extern void disk_util_timer_arm(void);
extern void setup_log(struct io_log **);
extern void finish_log(struct thread_data *, struct io_log *, const char *);
+extern void __finish_log(struct io_log *, const char *);
extern int setup_rate(struct thread_data *);
+extern struct io_log *agg_io_log[2];
+extern int write_bw_log;
+extern void add_agg_sample(unsigned long, enum fio_ddir);
/*
* Time functions