X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=iolog.h;h=eb5fdf3605b4b8895714d58ba079c0c3079d8cfb;hb=b07f6ad1ff4a22c12f9de2592ee35607bf45105f;hp=fcd6794278edd6a39e1c6fd73997370e314b120b;hpb=49e98daa3e1d46c13b570ab3676a22ac849fc4c0;p=fio.git diff --git a/iolog.h b/iolog.h index fcd67942..eb5fdf36 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, @@ -174,12 +175,12 @@ enum file_log_act { 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_io_u(const struct thread_data *, const struct io_u *); extern void log_file(struct thread_data *, struct fio_file *, enum file_log_act); extern int __must_check init_iolog(struct thread_data *td); extern void log_io_piece(struct thread_data *, struct io_u *); extern void unlog_io_piece(struct thread_data *, struct io_u *); -extern void trim_io_piece(struct thread_data *, struct io_u *); +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 *); @@ -202,24 +203,9 @@ 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 *); +extern void flush_log(struct io_log *, int); 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);