Commit | Line | Data |
---|---|---|
16e56d25 VF |
1 | #ifndef FIO_STEADYSTATE_H |
2 | #define FIO_STEADYSTATE_H | |
3 | ||
4cd5b75b JA |
4 | #include "thread_options.h" |
5 | ||
c27cc65f | 6 | extern void steadystate_free(struct thread_data *); |
966f8ef9 | 7 | extern int steadystate_check(void); |
16e56d25 | 8 | extern void steadystate_setup(void); |
56a90eba | 9 | extern int td_steadystate_init(struct thread_data *); |
9d193019 VF |
10 | extern uint64_t steadystate_bw_mean(struct thread_stat *); |
11 | extern uint64_t steadystate_iops_mean(struct thread_stat *); | |
4cd5b75b | 12 | |
84784e07 | 13 | extern bool steadystate_enabled; |
90e678ba | 14 | extern unsigned int ss_check_interval; |
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 | 37 | |
8b6a404c | 38 | struct timespec prev_time; |
9d193019 VF |
39 | uint64_t prev_iops; |
40 | uint64_t prev_bytes; | |
0a70e050 JA |
41 | }; |
42 | ||
4cd5b75b | 43 | enum { |
c8caba48 JA |
44 | __FIO_SS_IOPS = 0, |
45 | __FIO_SS_BW, | |
46 | __FIO_SS_SLOPE, | |
47 | __FIO_SS_ATTAINED, | |
48 | __FIO_SS_RAMP_OVER, | |
49 | __FIO_SS_DATA, | |
50 | __FIO_SS_PCT, | |
51 | __FIO_SS_BUFFER_FULL, | |
52 | }; | |
53 | ||
54 | enum { | |
55 | FIO_SS_IOPS = 1 << __FIO_SS_IOPS, | |
56 | FIO_SS_BW = 1 << __FIO_SS_BW, | |
57 | FIO_SS_SLOPE = 1 << __FIO_SS_SLOPE, | |
58 | FIO_SS_ATTAINED = 1 << __FIO_SS_ATTAINED, | |
59 | FIO_SS_RAMP_OVER = 1 << __FIO_SS_RAMP_OVER, | |
60 | FIO_SS_DATA = 1 << __FIO_SS_DATA, | |
61 | FIO_SS_PCT = 1 << __FIO_SS_PCT, | |
62 | FIO_SS_BUFFER_FULL = 1 << __FIO_SS_BUFFER_FULL, | |
63 | ||
64 | FIO_SS_IOPS_SLOPE = FIO_SS_IOPS | FIO_SS_SLOPE, | |
65 | FIO_SS_BW_SLOPE = FIO_SS_BW | FIO_SS_SLOPE, | |
4cd5b75b JA |
66 | }; |
67 | ||
16e56d25 | 68 | #endif |