X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=d1d02b038015c247e7df06f05246db7e7fdf77ed;hp=efc9e5195982009462cf8ee82b8f0cbdc3c0d779;hb=b2560f3ca4677e2908fc4111f4d04fae5df3b229;hpb=bdb4e2e99d4a87e5d3677cc09aa1ce92135125a9 diff --git a/fio.h b/fio.h index efc9e519..d1d02b03 100644 --- a/fio.h +++ b/fio.h @@ -34,7 +34,7 @@ enum td_ddir { TD_DDIR_RAND = 1 << 2, TD_DDIR_RW = TD_DDIR_READ | TD_DDIR_WRITE, TD_DDIR_RANDREAD = TD_DDIR_READ | TD_DDIR_RAND, - TD_DDIR_RANDWRITE = TD_DDIR_WRITE | TD_DDIR_READ, + TD_DDIR_RANDWRITE = TD_DDIR_WRITE | TD_DDIR_RAND, TD_DDIR_RANDRW = TD_DDIR_RW | TD_DDIR_RAND, }; @@ -216,7 +216,6 @@ enum fio_ioengine_flags { FIO_RAWIO = 1 << 3, /* some sort of direct/raw io */ FIO_DISKLESSIO = 1 << 4, /* no disk involved */ FIO_SELFOPEN = 1 << 5, /* opens its own devices */ - FIO_NULLIO = 1 << 6, /* no real data transfer (cpu/null) */ }; /* @@ -249,6 +248,12 @@ struct fio_file { unsigned int unlink; }; +/* + * How many depth levels to log + */ +#define FIO_IO_U_MAP_NR 8 +#define FIO_IO_U_LAT_NR 12 + struct thread_stat { struct io_log *slat_log; struct io_log *clat_log; @@ -272,13 +277,14 @@ struct thread_stat { unsigned long usr_time; unsigned long sys_time; unsigned long ctx; -}; -/* - * How many depth levels to log - */ -#define FIO_IO_U_MAP_NR 8 -#define FIO_IO_U_LAT_NR 12 + /* + * IO depth and latency stats + */ + unsigned int io_u_map[FIO_IO_U_MAP_NR]; + unsigned int io_u_lat[FIO_IO_U_LAT_NR]; + unsigned long total_io_u; +}; /* * This describes a single thread/process executing a fio job. @@ -289,11 +295,12 @@ struct thread_data { char *name; char *directory; char *filename; - char verror[80]; + char verror[128]; pthread_t thread; int thread_number; int groupid; - struct thread_stat ts; + struct thread_stat *ts; + struct thread_stat __ts; enum fio_filetype filetype; struct fio_file *files; unsigned int nr_files; @@ -362,6 +369,7 @@ struct thread_data { unsigned int rwmixwrite; unsigned int nice; unsigned int file_service_type; + unsigned int group_reporting; char *read_iolog_file; char *write_iolog_file; @@ -386,9 +394,6 @@ 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 int io_u_lat[FIO_IO_U_LAT_NR]; - unsigned long total_io_u; struct list_head io_u_freelist; struct list_head io_u_busylist; struct list_head io_u_requeues; @@ -673,6 +678,7 @@ extern void requeue_io_u(struct thread_data *, struct io_u **); extern long __must_check io_u_sync_complete(struct thread_data *, struct io_u *); extern long __must_check io_u_queued_complete(struct thread_data *, int); extern void io_u_queued(struct thread_data *, struct io_u *); +extern void io_u_log_error(struct thread_data *, struct io_u *); extern void io_u_init_timeout(void); extern void io_u_set_timeout(struct thread_data *);