X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.h;h=4d7e6ea7d8410132e787e577631c44a24b1b440d;hb=41128405394ccb8dc43080c50288a86b5faa1486;hp=736fefb1dd0c6256b98f8a73864af6982ee493ac;hpb=d23bb327374520295509bbd98912c8091b701a3e;p=fio.git diff --git a/fio.h b/fio.h index 736fefb1..4d7e6ea7 100644 --- a/fio.h +++ b/fio.h @@ -14,6 +14,7 @@ #include #include "list.h" +#include "rbtree.h" #include "md5.h" #include "crc32.h" #include "arch.h" @@ -78,7 +79,10 @@ struct io_log { * When logging io actions, this matches a single sent io_u */ struct io_piece { - struct list_head list; + union { + struct rb_node rb_node; + struct list_head list; + }; struct fio_file *file; unsigned long long offset; unsigned long len; @@ -98,6 +102,8 @@ enum { IO_U_F_FLIGHT = 1 << 1, }; +struct thread_data; + /* * The io unit */ @@ -158,7 +164,7 @@ struct io_u { /* * Callback for io completion */ - int (*end_io)(struct io_u *); + int (*end_io)(struct thread_data *, struct io_u *); }; /* @@ -176,6 +182,7 @@ enum { VERIFY_NONE = 0, /* no verification */ VERIFY_MD5, /* md5 sum data blocks */ VERIFY_CRC32, /* crc32 sum data blocks */ + VERIFY_NULL, /* pretend to verify */ }; /* @@ -510,7 +517,7 @@ struct thread_data { /* * IO historic logs */ - struct list_head io_hist_list; + struct rb_root io_hist_tree; struct list_head io_log_list; /* @@ -740,7 +747,7 @@ enum { */ extern void populate_verify_io_u(struct thread_data *, struct io_u *); extern int __must_check get_next_verify(struct thread_data *td, struct io_u *); -extern int __must_check verify_io_u(struct io_u *); +extern int __must_check verify_io_u(struct thread_data *, struct io_u *); /* * Memory helpers