X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;ds=sidebyside;f=iolog.h;h=6068384386af40373c36fc27b7667b6ca2bc8387;hb=5a812f9b9d987d1cacbb6f17a65835cbe0d66361;hp=bb5c9b785813bd4b4dd0e18eb20c26f231872fd5;hpb=6eaf09d6e9ca1f8accb057cdb18620b7e53ae33f;p=fio.git diff --git a/iolog.h b/iolog.h index bb5c9b78..60683843 100644 --- a/iolog.h +++ b/iolog.h @@ -1,6 +1,7 @@ #ifndef FIO_IOLOG_H #define FIO_IOLOG_H +#include "lib/rbtree.h" #include "lib/ieee754.h" /* @@ -25,6 +26,14 @@ struct io_sample { unsigned int bs; }; +enum { + IO_LOG_TYPE_LAT = 1, + IO_LOG_TYPE_CLAT, + IO_LOG_TYPE_SLAT, + IO_LOG_TYPE_BW, + IO_LOG_TYPE_IOPS, +}; + /* * Dynamically growing data sample log */ @@ -36,6 +45,8 @@ struct io_log { unsigned long max_samples; struct io_sample *log; + int log_type; + /* * Windowed average, for logging single entries average over some * period of time. @@ -84,6 +95,7 @@ enum file_log_act { FIO_LOG_UNLINK_FILE, }; +struct io_u; extern int __must_check read_iolog_get(struct thread_data *, struct io_u *); extern void log_io_u(struct thread_data *, struct io_u *); extern void log_file(struct thread_data *, struct fio_file *, enum file_log_act); @@ -107,7 +119,7 @@ extern void add_bw_sample(struct thread_data *, enum fio_ddir, unsigned int, extern void add_iops_sample(struct thread_data *, enum fio_ddir, struct timeval *); extern void init_disk_util(struct thread_data *); extern void update_rusage_stat(struct thread_data *); -extern void setup_log(struct io_log **, unsigned long); +extern void setup_log(struct io_log **, unsigned long, int); extern void finish_log(struct thread_data *, struct io_log *, const char *); extern void finish_log_named(struct thread_data *, struct io_log *, const char *, const char *); extern void __finish_log(struct io_log *, const char *);