X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;ds=sidebyside;f=iolog.h;h=0c9a983cdd2481275ea159bcb4c09a1354706226;hb=bead01d7dcd76467f0aba0d32b173442bbdaa020;hp=b1c13bf7e16b7230c11a9c9dd3c459236a5bef05;hpb=3a5db9201bf7b1717f63cb8f7dbd025903117f70;p=fio.git diff --git a/iolog.h b/iolog.h index b1c13bf7..0c9a983c 100644 --- a/iolog.h +++ b/iolog.h @@ -122,7 +122,8 @@ static inline size_t log_entry_sz(struct io_log *log) static inline struct io_sample *__get_sample(void *samples, int log_offset, uint64_t sample) { - return samples + sample * __log_entry_sz(log_offset); + uint64_t sample_offset = sample * __log_entry_sz(log_offset); + return (struct io_sample *) ((char *) samples + sample_offset); } static inline struct io_sample *get_sample(struct io_log *iolog, @@ -183,6 +184,8 @@ extern void trim_io_piece(struct thread_data *, const struct io_u *); extern void queue_io_piece(struct thread_data *, struct io_piece *); extern void prune_io_piece_log(struct thread_data *); extern void write_iolog_close(struct thread_data *); +extern int iolog_compress_init(struct thread_data *, struct sk_out *); +extern void iolog_compress_exit(struct thread_data *); #ifdef CONFIG_ZLIB extern int iolog_file_inflate(const char *); @@ -202,24 +205,10 @@ struct log_params { }; extern void finalize_logs(struct thread_data *td); -extern void add_lat_sample(struct thread_data *, enum fio_ddir, unsigned long, - unsigned int, uint64_t); -extern void add_clat_sample(struct thread_data *, enum fio_ddir, unsigned long, - unsigned int, uint64_t); -extern void add_slat_sample(struct thread_data *, enum fio_ddir, unsigned long, - unsigned int, uint64_t); -extern void add_bw_sample(struct thread_data *, enum fio_ddir, unsigned int, - struct timeval *); -extern void add_iops_sample(struct thread_data *, enum fio_ddir, unsigned int, - 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 **, struct log_params *, const char *); extern void flush_log(struct io_log *, int); +extern void flush_samples(FILE *, void *, uint64_t); extern void free_log(struct io_log *); -extern struct io_log *agg_io_log[DDIR_RWDIR_CNT]; -extern int write_bw_log; -extern void add_agg_sample(unsigned long, enum fio_ddir, unsigned int); extern void fio_writeout_logs(struct thread_data *); extern int iolog_flush(struct io_log *, int);