Commit | Line | Data |
---|---|---|
16e56d25 VF |
1 | #ifndef FIO_STEADYSTATE_H |
2 | #define FIO_STEADYSTATE_H | |
3 | ||
bb49c8bd | 4 | #include "stat.h" |
4cd5b75b | 5 | #include "thread_options.h" |
bb49c8bd | 6 | #include "lib/ieee754.h" |
4cd5b75b | 7 | |
16e56d25 VF |
8 | extern void steadystate_check(void); |
9 | extern void steadystate_setup(void); | |
56a90eba | 10 | extern int td_steadystate_init(struct thread_data *); |
9d193019 VF |
11 | extern uint64_t steadystate_bw_mean(struct thread_stat *); |
12 | extern uint64_t steadystate_iops_mean(struct thread_stat *); | |
4cd5b75b | 13 | |
84784e07 | 14 | extern bool steadystate_enabled; |
0a70e050 | 15 | |
0a70e050 JA |
16 | struct steadystate_data { |
17 | double limit; | |
18 | unsigned long long dur; | |
19 | unsigned long long ramp_time; | |
0a70e050 | 20 | |
bb49c8bd | 21 | uint32_t state; |
0a70e050 JA |
22 | |
23 | unsigned int head; | |
24 | unsigned int tail; | |
bb49c8bd VF |
25 | uint64_t *iops_data; |
26 | uint64_t *bw_data; | |
0a70e050 JA |
27 | |
28 | double slope; | |
0a70e050 | 29 | double deviation; |
bb49c8bd | 30 | double criterion; |
0a70e050 | 31 | |
9d193019 VF |
32 | uint64_t sum_y; |
33 | uint64_t sum_x; | |
34 | uint64_t sum_x_sq; | |
35 | uint64_t sum_xy; | |
36 | uint64_t oldest_y; | |
0a70e050 JA |
37 | |
38 | struct timeval prev_time; | |
9d193019 VF |
39 | uint64_t prev_iops; |
40 | uint64_t prev_bytes; | |
0a70e050 JA |
41 | }; |
42 | ||
4cd5b75b | 43 | enum { |
ad743db4 JA |
44 | __FIO_SS_IOPS = 1, |
45 | __FIO_SS_BW = 2, | |
46 | __FIO_SS_SLOPE = 4, | |
47 | __FIO_SS_ATTAINED = 8, | |
5b4b6586 | 48 | __FIO_SS_RAMP_OVER = 16, |
ec55e631 | 49 | __FIO_SS_DATA = 32, |
e6a6a984 | 50 | __FIO_SS_PCT = 64, |
17df7023 | 51 | __FIO_SS_BUFFER_FULL = 128, |
f0c50c66 JA |
52 | |
53 | FIO_SS_IOPS = __FIO_SS_IOPS, | |
54 | FIO_SS_IOPS_SLOPE = __FIO_SS_IOPS | __FIO_SS_SLOPE, | |
55 | FIO_SS_BW = __FIO_SS_BW, | |
56 | FIO_SS_BW_SLOPE = __FIO_SS_BW | __FIO_SS_SLOPE, | |
4cd5b75b JA |
57 | }; |
58 | ||
84784e07 JA |
59 | #define STEADYSTATE_MSEC 1000 |
60 | ||
16e56d25 | 61 | #endif |