projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Only call into log_io_piece() when verify is set
[fio.git]
/
fio.h
diff --git
a/fio.h
b/fio.h
index d0629ece3fe6d3f2463a22fbc4dd16628c1ce2ae..4d7e6ea7d8410132e787e577631c44a24b1b440d 100644
(file)
--- a/
fio.h
+++ b/
fio.h
@@
-14,6
+14,7
@@
#include <getopt.h>
#include "list.h"
#include <getopt.h>
#include "list.h"
+#include "rbtree.h"
#include "md5.h"
#include "crc32.h"
#include "arch.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 {
* 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;
struct fio_file *file;
unsigned long long offset;
unsigned long len;
@@
-98,6
+102,8
@@
enum {
IO_U_F_FLIGHT = 1 << 1,
};
IO_U_F_FLIGHT = 1 << 1,
};
+struct thread_data;
+
/*
* The io unit
*/
/*
* The io unit
*/
@@
-158,7
+164,7
@@
struct io_u {
/*
* Callback for io completion
*/
/*
* 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_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
*/
/*
* IO historic logs
*/
- struct
list_head io_hist_list
;
+ struct
rb_root io_hist_tree
;
struct list_head io_log_list;
/*
struct list_head io_log_list;
/*
@@
-691,6
+698,8
@@
extern int fio_cmd_option_parse(struct thread_data *, const char *, char *);
extern void fio_fill_default_options(struct thread_data *);
extern int fio_show_option_help(const char *);
extern void fio_options_dup_and_init(struct option *);
extern void fio_fill_default_options(struct thread_data *);
extern int fio_show_option_help(const char *);
extern void fio_options_dup_and_init(struct option *);
+extern void options_mem_dupe(struct thread_data *);
+extern void options_mem_free(struct thread_data *);
#define FIO_GETOPT_JOB 0x89988998
#define FIO_NR_OPTIONS 128
#define FIO_GETOPT_JOB 0x89988998
#define FIO_NR_OPTIONS 128
@@
-708,6
+717,7
@@
extern void get_file(struct fio_file *);
extern void put_file(struct thread_data *, struct fio_file *);
extern int add_dir_files(struct thread_data *, const char *);
extern int init_random_map(struct thread_data *);
extern void put_file(struct thread_data *, struct fio_file *);
extern int add_dir_files(struct thread_data *, const char *);
extern int init_random_map(struct thread_data *);
+extern void dup_files(struct thread_data *, struct thread_data *);
/*
* ETA/status stuff
/*
* ETA/status stuff
@@
-737,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 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
/*
* Memory helpers