projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net: don't record/verify UDP sequence numbers if buffer is too small
[fio.git]
/
fio.h
diff --git
a/fio.h
b/fio.h
index 28f459750bf53949541609015d62b3cead4ea97d..d28f8ce59cf15cee75c86d13f95099894dd2b547 100644
(file)
--- a/
fio.h
+++ b/
fio.h
@@
-74,6
+74,7
@@
enum {
TD_F_COMPRESS = 128,
TD_F_NOIO = 256,
TD_F_COMPRESS_LOG = 512,
TD_F_COMPRESS = 128,
TD_F_NOIO = 256,
TD_F_COMPRESS_LOG = 512,
+ TD_F_VSTATE_SAVED = 1024,
};
enum {
};
enum {
@@
-123,6
+124,13
@@
struct thread_data {
uint64_t stat_io_blocks[DDIR_RWDIR_CNT];
struct timeval iops_sample_time;
uint64_t stat_io_blocks[DDIR_RWDIR_CNT];
struct timeval iops_sample_time;
+ /*
+ * Tracks the last iodepth number of completed writes, if data
+ * verification is enabled
+ */
+ uint64_t *last_write_comp;
+ unsigned int last_write_idx;
+
volatile int update_rusage;
struct fio_mutex *rusage_sem;
struct rusage ru_start;
volatile int update_rusage;
struct fio_mutex *rusage_sem;
struct rusage ru_start;
@@
-142,6
+150,7
@@
struct thread_data {
int error;
int sig;
int done;
int error;
int sig;
int done;
+ int stop_io;
pid_t pid;
char *orig_buffer;
size_t orig_buffer_size;
pid_t pid;
char *orig_buffer;
size_t orig_buffer_size;
@@
-171,6
+180,8
@@
struct thread_data {
unsigned int verify_batch;
unsigned int trim_batch;
unsigned int verify_batch;
unsigned int trim_batch;
+ struct thread_io_list *vstate;
+
int shm_id;
/*
int shm_id;
/*
@@
-224,7
+235,15
@@
struct thread_data {
uint64_t total_io_size;
uint64_t fill_device_size;
uint64_t total_io_size;
uint64_t fill_device_size;
- unsigned long io_issues[DDIR_RWDIR_CNT];
+ /*
+ * Issue side
+ */
+ uint64_t io_issues[DDIR_RWDIR_CNT];
+ uint64_t io_issue_bytes[DDIR_RWDIR_CNT];
+
+ /*
+ * Completions
+ */
uint64_t io_blocks[DDIR_RWDIR_CNT];
uint64_t this_io_blocks[DDIR_RWDIR_CNT];
uint64_t io_bytes[DDIR_RWDIR_CNT];
uint64_t io_blocks[DDIR_RWDIR_CNT];
uint64_t this_io_blocks[DDIR_RWDIR_CNT];
uint64_t io_bytes[DDIR_RWDIR_CNT];
@@
-241,6
+260,7
@@
struct thread_data {
struct timeval start; /* start of this loop */
struct timeval epoch; /* time job was started */
struct timeval last_issue;
struct timeval start; /* start of this loop */
struct timeval epoch; /* time job was started */
struct timeval last_issue;
+ long time_offset;
struct timeval tv_cache;
struct timeval terminate_time;
unsigned int tv_cache_nr;
struct timeval tv_cache;
struct timeval terminate_time;
unsigned int tv_cache_nr;
@@
-380,6
+400,10
@@
extern int status_interval;
extern const char fio_version_string[];
extern int helper_do_stat;
extern pthread_cond_t helper_cond;
extern const char fio_version_string[];
extern int helper_do_stat;
extern pthread_cond_t helper_cond;
+extern char *trigger_file;
+extern char *trigger_cmd;
+extern char *trigger_remote_cmd;
+extern long long trigger_timeout;
extern struct thread_data *threads;
extern struct thread_data *threads;
@@
-422,7
+446,7
@@
extern void fio_options_mem_dupe(struct thread_data *);
extern void options_mem_dupe(void *data, struct fio_option *options);
extern void td_fill_rand_seeds(struct thread_data *);
extern void add_job_opts(const char **, int);
extern void options_mem_dupe(void *data, struct fio_option *options);
extern void td_fill_rand_seeds(struct thread_data *);
extern void add_job_opts(const char **, int);
-extern char *num2str(u
nsigned long
, int, int, int, int);
+extern char *num2str(u
int64_t
, int, int, int, int);
extern int ioengine_load(struct thread_data *);
extern int parse_dryrun(void);
extern int fio_running_or_pending_io_threads(void);
extern int ioengine_load(struct thread_data *);
extern int parse_dryrun(void);
extern int fio_running_or_pending_io_threads(void);
@@
-580,7
+604,7
@@
static inline unsigned int td_min_bs(struct thread_data *td)
return min(td->o.min_bs[DDIR_TRIM], min_bs);
}
return min(td->o.min_bs[DDIR_TRIM], min_bs);
}
-static inline int is_power_of_2(u
nsigned long
val)
+static inline int is_power_of_2(u
int64_t
val)
{
return (val != 0 && ((val & (val - 1)) == 0));
}
{
return (val != 0 && ((val & (val - 1)) == 0));
}
@@
-626,6
+650,9
@@
enum {
FIO_RAND_DIST_PARETO,
};
FIO_RAND_DIST_PARETO,
};
+#define FIO_DEF_ZIPF 1.1
+#define FIO_DEF_PARETO 0.2
+
enum {
FIO_RAND_GEN_TAUSWORTHE = 0,
FIO_RAND_GEN_LFSR,
enum {
FIO_RAND_GEN_TAUSWORTHE = 0,
FIO_RAND_GEN_LFSR,
@@
-636,4
+663,7
@@
enum {
FIO_CPUS_SPLIT,
};
FIO_CPUS_SPLIT,
};
+extern void exec_trigger(const char *);
+extern void check_trigger_file(void);
+
#endif
#endif