Allow reset of offset_increment counter
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index 544916f209bafe8317d54c970da5b3f321c58e8a..dfbad6d6896e0a8181119b765c33fde2a4d9bc3d 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -30,7 +30,7 @@
 #include "helpers.h"
 #include "options.h"
 #include "profile.h"
-#include "time.h"
+#include "fio_time.h"
 #include "gettime.h"
 #include "lib/getopt.h"
 #include "lib/rand.h"
@@ -73,6 +73,7 @@ enum {
        TD_F_PROFILE_OPS        = 64,
        TD_F_COMPRESS           = 128,
        TD_F_NOIO               = 256,
+       TD_F_COMPRESS_LOG       = 512,
 };
 
 enum {
@@ -101,6 +102,7 @@ struct thread_data {
        char verror[FIO_VERROR_SIZE];
        pthread_t thread;
        unsigned int thread_number;
+       unsigned int subjob_number;
        unsigned int groupid;
        struct thread_stat ts;
 
@@ -112,6 +114,8 @@ struct thread_data {
        struct io_log *bw_log;
        struct io_log *iops_log;
 
+       struct tp_data *tp_data;
+
        uint64_t stat_io_bytes[DDIR_RWDIR_CNT];
        struct timeval bw_sample_time;
 
@@ -251,6 +255,7 @@ struct thread_data {
        struct timeval epoch;   /* time job was started */
        struct timeval last_issue;
        struct timeval tv_cache;
+       struct timeval terminate_time;
        unsigned int tv_cache_nr;
        unsigned int tv_cache_mask;
        unsigned int ramp_time_over;
@@ -441,7 +446,7 @@ extern char *num2str(unsigned long, 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 void fio_set_fd_nonblocking(int, const char *);
+extern int fio_set_fd_nonblocking(int, const char *);
 
 extern uintptr_t page_mask;
 extern uintptr_t page_size;
@@ -483,8 +488,15 @@ extern void td_set_runstate(struct thread_data *, int);
 extern int td_bump_runstate(struct thread_data *, int);
 extern void td_restore_runstate(struct thread_data *, int);
 
+/*
+ * Allow 60 seconds for a job to quit on its own, otherwise reap with
+ * a vengeance.
+ */
+#define FIO_REAP_TIMEOUT       60
+
 #define TERMINATE_ALL          (-1)
 extern void fio_terminate_threads(int);
+extern void fio_mark_td_terminate(struct thread_data *);
 
 /*
  * Memory helpers
@@ -618,7 +630,9 @@ static inline void td_io_u_free_notify(struct thread_data *td)
 extern const char *fio_get_arch_string(int);
 extern const char *fio_get_os_string(int);
 
+#ifdef FIO_INTERNAL
 #define ARRAY_SIZE(x) (sizeof((x)) / (sizeof((x)[0])))
+#endif
 
 enum {
        FIO_OUTPUT_TERSE        = 0,