+ /*
+ * Entries already logged
+ */
+ struct flist_head io_logs;
+ uint32_t cur_log_max;
+
+ /*
+ * When the current log runs out of space, store events here until
+ * we have a chance to regrow
+ */
+ struct io_logs *pending;
+
+ unsigned int log_ddir_mask;
+
+ char *filename;
+
+ struct thread_data *td;
+
+ unsigned int log_type;
+
+ /*
+ * If we fail extending the log, stop collecting more entries.
+ */
+ bool disabled;
+
+ /*
+ * Log offsets
+ */
+ unsigned int log_offset;
+
+ /*
+ * Max size of log entries before a chunk is compressed
+ */
+ unsigned int log_gz;
+
+ /*
+ * Don't deflate for storing, just store the compressed bits
+ */
+ unsigned int log_gz_store;
+
+ /*
+ * Windowed average, for logging single entries average over some
+ * period of time.
+ */
+ struct io_stat avg_window[DDIR_RWDIR_CNT];
+ unsigned long avg_msec;
+ unsigned long avg_last;
+
+ /*
+ * Windowed latency histograms, for keeping track of when we need to
+ * save a copy of the histogram every approximately hist_msec
+ * milliseconds.
+ */
+ struct io_hist hist_window[DDIR_RWDIR_CNT];
+ unsigned long hist_msec;
+ unsigned int hist_coarseness;
+
+ pthread_mutex_t chunk_lock;
+ unsigned int chunk_seq;
+ struct flist_head chunk_list;