X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=22d670ef1cacb02e708a53b6fe804725970e7dd8;hp=11338eb7496e64d3207eb240dd3182b154b241ad;hb=3bfb53dd20223015916e9ade388a5f9d49b87172;hpb=a086c25771b195d04651d293f299f0a63f7d2a23 diff --git a/fio.h b/fio.h index 11338eb7..22d670ef 100644 --- a/fio.h +++ b/fio.h @@ -75,6 +75,7 @@ struct io_sample { unsigned long time; unsigned long val; enum fio_ddir ddir; + unsigned int bs; }; /* @@ -144,7 +145,6 @@ struct io_u { void *buf; unsigned long buflen; unsigned long long offset; - unsigned long long endpos; /* * IO engine state, may be different from above when we get @@ -429,10 +429,11 @@ struct thread_options { unsigned long long start_offset; unsigned int bs[2]; + unsigned int ba[2]; unsigned int min_bs[2]; unsigned int max_bs[2]; - struct bssplit *bssplit; - unsigned int bssplit_nr; + struct bssplit *bssplit[2]; + unsigned int bssplit_nr[2]; unsigned int nr_files; unsigned int open_files; @@ -443,7 +444,9 @@ struct thread_options { unsigned int invalidate_cache; unsigned int create_serialize; unsigned int create_fsync; + unsigned int create_on_open; unsigned int end_fsync; + unsigned int pre_read; unsigned int sync_io; unsigned int verify; unsigned int do_verify; @@ -542,6 +545,7 @@ struct thread_data { int groupid; struct thread_stat ts; struct fio_file **files; + unsigned int files_size; unsigned int files_index; unsigned int nr_open_files; unsigned int nr_done_files; @@ -569,6 +573,8 @@ struct thread_data { char *sysfs_root; + unsigned long rand_seeds[6]; + os_random_state_t bsrange_state; os_random_state_t verify_state; @@ -805,9 +811,12 @@ extern void write_iolog_close(struct thread_data *); /* * Logging */ -extern void add_clat_sample(struct thread_data *, enum fio_ddir, unsigned long); -extern void add_slat_sample(struct thread_data *, enum fio_ddir, unsigned long); -extern void add_bw_sample(struct thread_data *, enum fio_ddir, struct timeval *); +extern void add_clat_sample(struct thread_data *, enum fio_ddir, unsigned long, + unsigned int); +extern void add_slat_sample(struct thread_data *, enum fio_ddir, unsigned long, + unsigned int); +extern void add_bw_sample(struct thread_data *, enum fio_ddir, unsigned int, + struct timeval *); extern void show_run_stats(void); extern void init_disk_util(struct thread_data *); extern void update_rusage_stat(struct thread_data *); @@ -818,7 +827,7 @@ extern void finish_log_named(struct thread_data *, struct io_log *, const char * extern void __finish_log(struct io_log *, const char *); extern struct io_log *agg_io_log[2]; extern int write_bw_log; -extern void add_agg_sample(unsigned long, enum fio_ddir); +extern void add_agg_sample(unsigned long, enum fio_ddir, unsigned int); /* * Time functions @@ -851,6 +860,7 @@ 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 *); +extern void td_fill_rand_seeds(struct thread_data *); #define FIO_GETOPT_JOB 0x89988998 #define FIO_NR_OPTIONS 128 @@ -860,10 +870,11 @@ extern void options_mem_free(struct thread_data *); extern void close_files(struct thread_data *); extern void close_and_free_files(struct thread_data *); extern int __must_check setup_files(struct thread_data *); -extern int __must_check open_files(struct thread_data *); extern int __must_check file_invalidate_cache(struct thread_data *, struct fio_file *); extern int __must_check generic_open_file(struct thread_data *, struct fio_file *); extern int __must_check generic_close_file(struct thread_data *, struct fio_file *); +extern int __must_check generic_get_file_size(struct thread_data *, struct fio_file *); +extern int __must_check pre_read_files(struct thread_data *); extern int add_file(struct thread_data *, const char *); extern void get_file(struct fio_file *); extern int __must_check put_file(struct thread_data *, struct fio_file *); @@ -907,6 +918,7 @@ enum { TD_INITIALIZED, TD_RAMP, TD_RUNNING, + TD_PRE_READING, TD_VERIFYING, TD_FSYNCING, TD_EXITED, @@ -963,6 +975,7 @@ extern int __must_check td_io_getevents(struct thread_data *, unsigned int, unsi extern int __must_check td_io_commit(struct thread_data *); extern int __must_check td_io_open_file(struct thread_data *, struct fio_file *); extern int td_io_close_file(struct thread_data *, struct fio_file *); +extern int __must_check td_io_get_file_size(struct thread_data *, struct fio_file *); /* * blktrace support @@ -988,11 +1001,12 @@ struct ioengine_ops { void (*cleanup)(struct thread_data *); int (*open_file)(struct thread_data *, struct fio_file *); int (*close_file)(struct thread_data *, struct fio_file *); + int (*get_file_size)(struct thread_data *, struct fio_file *); void *data; void *dlhandle; }; -#define FIO_IOOPS_VERSION 9 +#define FIO_IOOPS_VERSION 10 extern struct ioengine_ops *load_ioengine(struct thread_data *, const char *); extern void register_ioengine(struct ioengine_ops *); @@ -1028,6 +1042,8 @@ static inline void fio_file_reset(struct fio_file *f) { f->last_free_lookup = 0; f->last_pos = f->file_offset; + if (f->file_map) + memset(f->file_map, 0, f->num_maps * sizeof(int)); } static inline void clear_error(struct thread_data *td)