Add support for giving bw/clat/slat log prefixes
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index 63cd83f5e1be23d4548739a682947667f131533e..f8e6a4a066c346eb3aa693150b385eadab8b4f31 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -496,9 +496,15 @@ struct thread_options {
        unsigned int zero_buffers;
        unsigned int refill_buffers;
        unsigned int time_based;
+       unsigned int disable_clat;
+       unsigned int disable_slat;
+       unsigned int disable_bw;
+       unsigned int gtod_reduce;
 
        char *read_iolog_file;
        char *write_iolog_file;
+       char *bw_log_file;
+       char *lat_log_file;
 
        /*
         * Pre-run and post-run shell
@@ -609,6 +615,9 @@ struct thread_data {
        struct timeval epoch;   /* time job was started */
        struct timeval rw_end[2];
        struct timeval last_issue;
+       struct timeval tv_cache;
+       unsigned int tv_cache_nr;
+       unsigned int tv_cache_mask;
        unsigned int rw_end_set[2];
        unsigned int ramp_time_over;
 
@@ -632,12 +641,6 @@ struct thread_data {
         */
        struct flist_head io_log_list;
 
-       /*
-        * timeout handling
-        */
-       struct timeval timeout_end;
-       struct itimerval timer;
-
        /*
         * for fileservice, how often to switch to a new file
         */
@@ -668,13 +671,6 @@ enum {
        FIO_ETA_NEVER,
 };
 
-/*
- * 30 second per-io_u timeout, with 5 second intervals to avoid resetting
- * the timer on each queue operation.
- */
-#define IO_U_TIMEOUT_INC       5
-#define IO_U_TIMEOUT           30
-
 #define __td_verror(td, err, msg, func)                                        \
        do {                                                            \
                if ((td)->error)                                        \
@@ -812,6 +808,7 @@ extern void update_rusage_stat(struct thread_data *);
 extern void update_io_ticks(void);
 extern void setup_log(struct io_log **);
 extern void finish_log(struct thread_data *, struct io_log *, const char *);
+extern void finish_log_named(struct thread_data *, struct io_log *, const char *, const char *);
 extern void __finish_log(struct io_log *, const char *);
 extern struct io_log *agg_io_log[2];
 extern int write_bw_log;
@@ -937,8 +934,6 @@ extern long __must_check io_u_sync_complete(struct thread_data *, struct io_u *)
 extern long __must_check io_u_queued_complete(struct thread_data *, int);
 extern void io_u_queued(struct thread_data *, struct io_u *);
 extern void io_u_log_error(struct thread_data *, struct io_u *);
-extern void io_u_init_timeout(void);
-extern void io_u_set_timeout(struct thread_data *);
 extern void io_u_mark_depth(struct thread_data *, unsigned int);
 extern void io_u_fill_buffer(struct thread_data *td, struct io_u *, unsigned int);
 void io_u_mark_complete(struct thread_data *, unsigned int);
@@ -1052,4 +1047,13 @@ static inline void dprint_io_u(struct io_u *io_u, const char *p)
 #define dprint_io_u(io_u, p)
 #endif
 
+static inline int fio_fill_issue_time(struct thread_data *td)
+{
+       if (td->o.read_iolog_file ||
+           !td->o.disable_clat || !td->o.disable_slat || !td->o.disable_bw)
+               return 1;
+
+       return 0;
+}
+
 #endif