#include "io_ddir.h"
#include "ioengine.h"
#include "iolog.h"
-#include "profiles.h"
+#include "helpers.h"
+#include "options.h"
+#include "profile.h"
+#include "time.h"
#ifdef FIO_HAVE_GUASI
#include <guasi.h>
unsigned int file_service_type;
unsigned int group_reporting;
unsigned int fadvise_hint;
+ unsigned int fallocate;
unsigned int zero_buffers;
unsigned int refill_buffers;
unsigned int time_based;
unsigned int gtod_reduce;
unsigned int gtod_cpu;
unsigned int gtod_offload;
+ enum fio_cs clocksource;
char *read_iolog_file;
char *write_iolog_file;
/*
* Benchmark profile type
*/
- unsigned int profile;
+ char *profile;
+
+ /*
+ * blkio cgroup support
+ */
+ char *cgroup;
+ unsigned int cgroup_weight;
+
+ unsigned int uid;
+ unsigned int gid;
+
+ unsigned int sync_file_range;
};
#define FIO_VERROR_SIZE 128
/*
* Rate state
*/
- unsigned long rate_usec_cycle[2];
+ unsigned long rate_nsec_cycle[2];
long rate_pending_usleep[2];
unsigned long rate_bytes[2];
unsigned long rate_blocks[2];
unsigned int file_service_left;
struct fio_file *file_service_file;
+ unsigned int sync_file_range_nr;
+
/*
* For generating file sizes
*/
*/
unsigned int total_err_count;
int first_error;
+
+ /*
+ * Can be overloaded by profiles
+ */
+ struct prof_io_ops prof_io_ops;
+ void *prof_data;
};
/*
extern char *job_section;
extern int fio_gtod_offload;
extern int fio_gtod_cpu;
+extern enum fio_cs fio_clock_source;
extern struct thread_data *threads;
return 0;
}
-/*
- * Time functions
- */
-extern unsigned long long utime_since(struct timeval *, struct timeval *);
-extern unsigned long long utime_since_now(struct timeval *);
-extern unsigned long mtime_since(struct timeval *, struct timeval *);
-extern unsigned long mtime_since_now(struct timeval *);
-extern unsigned long time_since_now(struct timeval *);
-extern unsigned long mtime_since_genesis(void);
-extern void usec_spin(unsigned int);
-extern void usec_sleep(struct thread_data *, unsigned long);
-extern void fill_start_time(struct timeval *);
-extern void fio_gettime(struct timeval *, void *);
-extern void fio_gtod_init(void);
-extern void fio_gtod_update(void);
-extern void set_genesis_time(void);
-extern int ramp_time_over(struct thread_data *);
-extern int in_ramp_time(struct thread_data *);
-
/*
* Init/option functions
*/
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 *);
+extern void add_job_opts(const char **);
#define FIO_GETOPT_JOB 0x89988998
-#define FIO_NR_OPTIONS 128
+#define FIO_NR_OPTIONS (FIO_MAX_OPTS + 128)
/*
* ETA/status stuff