1 #ifndef FIO_STEADYSTATE_H
2 #define FIO_STEADYSTATE_H
5 #include "thread_options.h"
6 #include "lib/ieee754.h"
8 extern void steadystate_free(struct thread_data *);
9 extern void steadystate_check(void);
10 extern void steadystate_setup(void);
11 extern int td_steadystate_init(struct thread_data *);
12 extern uint64_t steadystate_bw_mean(struct thread_stat *);
13 extern uint64_t steadystate_iops_mean(struct thread_stat *);
15 extern bool steadystate_enabled;
17 struct steadystate_data {
19 unsigned long long dur;
20 unsigned long long ramp_time;
39 struct timespec prev_time;
56 FIO_SS_IOPS = 1 << __FIO_SS_IOPS,
57 FIO_SS_BW = 1 << __FIO_SS_BW,
58 FIO_SS_SLOPE = 1 << __FIO_SS_SLOPE,
59 FIO_SS_ATTAINED = 1 << __FIO_SS_ATTAINED,
60 FIO_SS_RAMP_OVER = 1 << __FIO_SS_RAMP_OVER,
61 FIO_SS_DATA = 1 << __FIO_SS_DATA,
62 FIO_SS_PCT = 1 << __FIO_SS_PCT,
63 FIO_SS_BUFFER_FULL = 1 << __FIO_SS_BUFFER_FULL,
65 FIO_SS_IOPS_SLOPE = FIO_SS_IOPS | FIO_SS_SLOPE,
66 FIO_SS_BW_SLOPE = FIO_SS_BW | FIO_SS_SLOPE,
69 #define STEADYSTATE_MSEC 1000