fio: fix some struct alignment issues
[fio.git] / stat.h
diff --git a/stat.h b/stat.h
index 75d1f4e67644b3be5ffa183d224dc9eeeaf60f29..d8a08034a5faf94c5097ad1f33623fed86a08ddb 100644 (file)
--- a/stat.h
+++ b/stat.h
@@ -7,7 +7,7 @@
 struct group_run_stats {
        uint64_t max_run[DDIR_RWDIR_CNT], min_run[DDIR_RWDIR_CNT];
        uint64_t max_bw[DDIR_RWDIR_CNT], min_bw[DDIR_RWDIR_CNT];
-       uint64_t io_kb[DDIR_RWDIR_CNT];
+       uint64_t iobytes[DDIR_RWDIR_CNT];
        uint64_t agg[DDIR_RWDIR_CNT];
        uint32_t kb_base;
        uint32_t unit_base;
@@ -198,10 +198,10 @@ struct thread_stat {
         */
        union {
                uint16_t continue_on_error;
-               uint64_t pad2;
+               uint32_t pad2;
        };
-       uint64_t total_err_count;
        uint32_t first_error;
+       uint64_t total_err_count;
 
        uint64_t nr_block_infos;
        uint32_t block_infos[MAX_NR_BLOCK_INFOS];
@@ -210,9 +210,29 @@ struct thread_stat {
        uint32_t unit_base;
 
        uint32_t latency_depth;
+       uint32_t pad3;
        uint64_t latency_target;
        fio_fp64_t latency_percentile;
        uint64_t latency_window;
+
+       uint64_t ss_dur;
+       uint32_t ss_state;
+       uint32_t ss_head;
+
+       fio_fp64_t ss_limit;
+       fio_fp64_t ss_slope;
+       fio_fp64_t ss_deviation;
+       fio_fp64_t ss_criterion;
+
+       union {
+               uint64_t *ss_iops_data;
+               uint64_t pad4;
+       };
+
+       union {
+               uint64_t *ss_bw_data;
+               uint64_t pad5;
+       };
 } __attribute__((packed));
 
 struct jobs_eta {
@@ -222,17 +242,17 @@ struct jobs_eta {
        uint32_t nr_pending;
        uint32_t nr_setting_up;
 
-       uint32_t files_open;
-
        uint64_t m_rate[DDIR_RWDIR_CNT], t_rate[DDIR_RWDIR_CNT];
-       uint32_t m_iops[DDIR_RWDIR_CNT], t_iops[DDIR_RWDIR_CNT];
        uint64_t rate[DDIR_RWDIR_CNT];
+       uint32_t m_iops[DDIR_RWDIR_CNT], t_iops[DDIR_RWDIR_CNT];
        uint32_t iops[DDIR_RWDIR_CNT];
        uint64_t elapsed_sec;
        uint64_t eta_sec;
        uint32_t is_pow2;
        uint32_t unit_base;
 
+       uint32_t files_open;
+
        /*
         * Network 'copy' of run_str[]
         */