[PATCH] Add support for writing aggregate bandwidth log
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index 2f41eda23742b0499c10441ac93c2082b8a5bb3c..6e0c5b18cb8fefef632396431164fc3633554491 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -25,11 +25,12 @@ enum fio_ddir {
 };
 
 struct io_stat {
-       unsigned long long val;
-       unsigned long long val_sq;
        unsigned long max_val;
        unsigned long min_val;
        unsigned long samples;
+
+       double mean;
+       double S;
 };
 
 struct io_sample {
@@ -166,6 +167,11 @@ 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.
  */
@@ -263,6 +269,8 @@ struct thread_data {
         * 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;
 
@@ -456,7 +464,11 @@ extern void update_io_ticks(void);
 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