X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=steadystate.h;h=bbb86fbb30a301299882e655e98b00c951cca8d5;hb=a71ad043a3f4ad405911841e1fe5bb09823e3be2;hp=20ccd3035f11d67ca751d78be6135be85517d6e0;hpb=c7334fa3f3be87854354044615b0c0e473c50713;p=fio.git diff --git a/steadystate.h b/steadystate.h index 20ccd303..bbb86fbb 100644 --- a/steadystate.h +++ b/steadystate.h @@ -1,11 +1,10 @@ #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_free(struct thread_data *); +extern int steadystate_check(void); extern void steadystate_setup(void); extern int td_steadystate_init(struct thread_data *); extern uint64_t steadystate_bw_mean(struct thread_stat *); @@ -35,25 +34,34 @@ struct steadystate_data { uint64_t sum_xy; uint64_t oldest_y; - struct timeval prev_time; + struct timespec prev_time; uint64_t prev_iops; uint64_t prev_bytes; }; enum { - __FIO_SS_IOPS = 1, - __FIO_SS_BW = 2, - __FIO_SS_SLOPE = 4, - __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, - FIO_SS_BW = __FIO_SS_BW, - FIO_SS_BW_SLOPE = __FIO_SS_BW | __FIO_SS_SLOPE, + __FIO_SS_IOPS = 0, + __FIO_SS_BW, + __FIO_SS_SLOPE, + __FIO_SS_ATTAINED, + __FIO_SS_RAMP_OVER, + __FIO_SS_DATA, + __FIO_SS_PCT, + __FIO_SS_BUFFER_FULL, +}; + +enum { + FIO_SS_IOPS = 1 << __FIO_SS_IOPS, + FIO_SS_BW = 1 << __FIO_SS_BW, + FIO_SS_SLOPE = 1 << __FIO_SS_SLOPE, + FIO_SS_ATTAINED = 1 << __FIO_SS_ATTAINED, + FIO_SS_RAMP_OVER = 1 << __FIO_SS_RAMP_OVER, + FIO_SS_DATA = 1 << __FIO_SS_DATA, + FIO_SS_PCT = 1 << __FIO_SS_PCT, + FIO_SS_BUFFER_FULL = 1 << __FIO_SS_BUFFER_FULL, + + FIO_SS_IOPS_SLOPE = FIO_SS_IOPS | FIO_SS_SLOPE, + FIO_SS_BW_SLOPE = FIO_SS_BW | FIO_SS_SLOPE, }; #define STEADYSTATE_MSEC 1000