X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=stat.h;h=d08d4dc09780720eea3f1fa5896d12a11bae5e40;hp=0dc7c4d02afe608a04fd428501b33afb59a7be92;hb=a59b12d2a5eb92c1128a5d8ebcd03b1831962ce5;hpb=df8781b62a9d0dffae40d86916feff3659a5fb7e diff --git a/stat.h b/stat.h index 0dc7c4d0..d08d4dc0 100644 --- a/stat.h +++ b/stat.h @@ -37,7 +37,7 @@ struct group_run_stats { list of percentiles */ /* - * Aggregate clat samples to report percentile(s) of them. + * Aggregate latency samples for reporting percentile(s). * * EXECUTIVE SUMMARY * @@ -58,7 +58,7 @@ struct group_run_stats { * * DETAILS * - * Suppose the clat varies from 0 to 999 (usec), the straightforward + * Suppose the lat varies from 0 to 999 (usec), the straightforward * method is to keep an array of (999 + 1) buckets, in which a counter * keeps the count of samples which fall in the bucket, e.g., * {[0],[1],...,[999]}. However this consumes a huge amount of space, @@ -146,8 +146,11 @@ enum block_info_state { #define FIO_JOBNAME_SIZE 128 #define FIO_JOBDESC_SIZE 256 #define FIO_VERROR_SIZE 128 +#define UNIFIED_SPLIT 0 +#define UNIFIED_MIXED 1 +#define UNIFIED_BOTH 2 -enum { +enum fio_lat { FIO_SLAT = 0, FIO_CLAT, FIO_LAT, @@ -189,6 +192,8 @@ struct thread_stat { */ uint32_t clat_percentiles; uint32_t lat_percentiles; + uint32_t slat_percentiles; + uint32_t pad; uint64_t percentile_precision; fio_fp64_t percentile_list[FIO_IO_U_LIST_MAX_LEN]; @@ -248,9 +253,9 @@ struct thread_stat { fio_fp64_t ss_criterion; uint64_t io_u_plat_high_prio[DDIR_RWDIR_CNT][FIO_IO_U_PLAT_NR] __attribute__((aligned(8)));; - uint64_t io_u_plat_prio[DDIR_RWDIR_CNT][FIO_IO_U_PLAT_NR]; + uint64_t io_u_plat_low_prio[DDIR_RWDIR_CNT][FIO_IO_U_PLAT_NR]; struct io_stat clat_high_prio_stat[DDIR_RWDIR_CNT] __attribute__((aligned(8))); - struct io_stat clat_prio_stat[DDIR_RWDIR_CNT]; + struct io_stat clat_low_prio_stat[DDIR_RWDIR_CNT]; union { uint64_t *ss_iops_data; @@ -317,7 +322,7 @@ extern void show_group_stats(struct group_run_stats *rs, struct buf_output *); extern bool calc_thread_status(struct jobs_eta *je, int force); extern void display_thread_status(struct jobs_eta *je); extern void __show_run_stats(void); -extern void __show_running_run_stats(void); +extern int __show_running_run_stats(void); extern void show_running_run_stats(void); extern void check_for_running_stats(void); extern void sum_thread_stats(struct thread_stat *dst, struct thread_stat *src, bool first); @@ -339,7 +344,7 @@ extern void add_lat_sample(struct thread_data *, enum fio_ddir, unsigned long lo unsigned long long, uint64_t, uint8_t); extern void add_clat_sample(struct thread_data *, enum fio_ddir, unsigned long long, unsigned long long, uint64_t, uint8_t); -extern void add_slat_sample(struct thread_data *, enum fio_ddir, unsigned long, +extern void add_slat_sample(struct thread_data *, enum fio_ddir, unsigned long long, unsigned long long, uint64_t, uint8_t); extern void add_agg_sample(union io_sample_data, enum fio_ddir, unsigned long long bs, uint8_t priority_bit);