X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=56ed248551a5f6158dedf99eb0e4033f2bf0bf2d;hp=16d5523feb6bf2af4f5f3684010645ceae95ccec;hb=cec6b55da1c282b5b91ad346c7804171fccf151e;hpb=1e97cce9f5a87a67293a05ec4533ed6968698b2e diff --git a/fio.h b/fio.h index 16d5523f..56ed2485 100644 --- a/fio.h +++ b/fio.h @@ -25,11 +25,12 @@ enum fio_ddir { }; struct io_stat { - unsigned long val; - unsigned long val_sq; unsigned long max_val; unsigned long min_val; unsigned long samples; + + double mean; + double S; }; struct io_sample { @@ -74,6 +75,9 @@ struct io_u { unsigned int buflen; unsigned long long offset; + void *xfer_buf; + unsigned int xfer_buflen; + unsigned int resid; unsigned int error; @@ -123,7 +127,9 @@ struct group_run_stats { enum fio_memtype { MEM_MALLOC = 0, /* ordinary malloc */ MEM_SHM, /* use shared memory segments */ + MEM_SHMHUGE, /* use shared memory segments with huge pages */ MEM_MMAP, /* use anonynomous mmap */ + MEM_MMAPHUGE, /* memory mapped huge file */ }; /* @@ -140,6 +146,7 @@ enum fio_ioengine_flags { FIO_CPUIO = 1 << 1, FIO_MMAPIO = 1 << 2, FIO_RAWIO = 1 << 3, + FIO_NETIO = 1 << 4, }; struct fio_file { @@ -160,12 +167,20 @@ struct fio_file { unsigned long *file_map; unsigned int num_maps; + + unsigned int unlink; }; +/* + * How many depth levels to log + */ +#define FIO_IO_U_MAP_NR 8 + /* * This describes a single thread/process executing a fio job. */ struct thread_data { + char *description; char *name; char *directory; char *filename; @@ -210,8 +225,10 @@ struct thread_data { unsigned int bs[2]; unsigned int min_bs[2]; unsigned int max_bs[2]; + unsigned int hugepage_size; unsigned int rw_min_bs; unsigned int thinktime; + unsigned int thinktime_blocks; unsigned int fsync_blocks; unsigned int start_delay; unsigned long timeout; @@ -221,6 +238,8 @@ struct thread_data { unsigned long long zone_size; unsigned long long zone_skip; enum fio_memtype mem_type; + char *mmapfile; + int mmapfd; unsigned int stonewall; unsigned int numjobs; unsigned int iodepth; @@ -255,6 +274,8 @@ struct thread_data { * Current IO depth and list of free and busy io_u's. */ unsigned int cur_depth; + unsigned int io_u_map[FIO_IO_U_MAP_NR]; + unsigned long total_io_u; struct list_head io_u_freelist; struct list_head io_u_busylist; @@ -448,7 +469,11 @@ extern void update_io_ticks(void); extern void disk_util_timer_arm(void); extern void setup_log(struct io_log **); extern void finish_log(struct thread_data *, struct io_log *, const char *); +extern void __finish_log(struct io_log *, const char *); extern int setup_rate(struct thread_data *); +extern struct io_log *agg_io_log[2]; +extern int write_bw_log; +extern void add_agg_sample(unsigned long, enum fio_ddir); /* * Time functions