X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=b396450e7836da890cd0e21f462654c0c12b7d58;hp=c4facfbe995b2f0ed20e88353fb645a528721ec9;hb=c685b5b2912bfbd3cdc8729d16a98438b1ff7593;hpb=74b025b071b5bfbffa7ad7682b66b749e8d1f955 diff --git a/fio.h b/fio.h index c4facfbe..b396450e 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; @@ -125,6 +129,7 @@ enum fio_memtype { 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 */ }; /* @@ -141,6 +146,8 @@ enum fio_ioengine_flags { FIO_CPUIO = 1 << 1, FIO_MMAPIO = 1 << 2, FIO_RAWIO = 1 << 3, + FIO_NETIO = 1 << 4, + FIO_NULLIO = 1 << 5, }; struct fio_file { @@ -163,12 +170,20 @@ struct fio_file { unsigned int num_maps; unsigned int unlink; + + unsigned int last_free_lookup; }; +/* + * 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; @@ -213,8 +228,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; @@ -224,6 +241,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; @@ -258,6 +277,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; @@ -451,7 +472,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