X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=iolog.h;h=297daf588c281ab34e2e67c674411b29f32d791c;hp=b1c13bf7e16b7230c11a9c9dd3c459236a5bef05;hb=0cba0f919ee6af7dd65df436884336cff9c903f9;hpb=3a5db9201bf7b1717f63cb8f7dbd025903117f70 diff --git a/iolog.h b/iolog.h index b1c13bf7..297daf58 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,9 @@ 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 *); +extern size_t log_chunk_sizes(struct io_log *); #ifdef CONFIG_ZLIB extern int iolog_file_inflate(const char *); @@ -202,24 +206,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); @@ -229,4 +219,11 @@ static inline void init_ipo(struct io_piece *ipo) INIT_FLIST_HEAD(&ipo->trim_list); } +struct iolog_compress { + struct flist_head list; + void *buf; + size_t len; + unsigned int seq; +}; + #endif