steadystate: fix alignment in stat.h
[fio.git] / steadystate.h
index aea8969b6d342d847878d083d66098d9e8ebc888..f390b073eec564b015519d0626d0baeb981705b0 100644 (file)
@@ -1,33 +1,33 @@
 #ifndef FIO_STEADYSTATE_H
 #define FIO_STEADYSTATE_H
 
+#include "stat.h"
 #include "thread_options.h"
+#include "lib/ieee754.h"
 
 extern void steadystate_check(void);
 extern void steadystate_setup(void);
 extern int td_steadystate_init(struct thread_data *);
+extern unsigned long long steadystate_bw_mean(struct thread_stat *);
+extern unsigned long long steadystate_iops_mean(struct thread_stat *);
 
 extern bool steadystate_enabled;
 
-/*
- * For steady state detection
- */
 struct steadystate_data {
        double limit;
        unsigned long long dur;
        unsigned long long ramp_time;
-       bool pct;
 
-       unsigned int state;
+       uint32_t state;
 
        unsigned int head;
        unsigned int tail;
-       unsigned long *iops_data;
-       unsigned long *bw_data;
+       uint64_t *iops_data;
+       uint64_t *bw_data;
 
        double slope;
-       double criterion;
        double deviation;
+       double criterion;
 
        unsigned long long sum_y;
        unsigned long long sum_x;
@@ -47,6 +47,8 @@ enum {
        __FIO_SS_ATTAINED       = 8,
        __FIO_SS_RAMP_OVER      = 16,
        __FIO_SS_DATA           = 32,
+       __FIO_SS_PCT            = 64,
+       __FIO_SS_BUFFER_FULL    = 128,
 
        FIO_SS_IOPS             = __FIO_SS_IOPS,
        FIO_SS_IOPS_SLOPE       = __FIO_SS_IOPS | __FIO_SS_SLOPE,