Fix end-of-job slowdown for random IO with a random map
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index c2a0d4d25efb20fc219cdc391a4b0e7ddf3d0453..08f17331d081ef6e086c34f9615fb6d3dfe8d225 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -14,6 +14,8 @@
 #include <inttypes.h>
 #include <assert.h>
 
+struct thread_data;
+
 #include "compiler/compiler.h"
 #include "flist.h"
 #include "fifo.h"
@@ -126,7 +128,7 @@ struct thread_stat {
        unsigned long total_complete;
 
        unsigned long long io_bytes[2];
-       unsigned long runtime[2];
+       unsigned long long runtime[2];
        unsigned long total_run_time;
 
        /*
@@ -195,6 +197,7 @@ struct thread_options {
        char verify_pattern[MAX_PATTERN_SIZE];
        unsigned int verify_pattern_bytes;
        unsigned int verify_fatal;
+       unsigned int verify_dump;
        unsigned int verify_async;
        unsigned long long verify_backlog;
        unsigned int verify_batch;
@@ -217,6 +220,7 @@ struct thread_options {
        unsigned int thinktime_blocks;
        unsigned int fsync_blocks;
        unsigned int fdatasync_blocks;
+       unsigned int barrier_blocks;
        unsigned long start_delay;
        unsigned long long timeout;
        unsigned long long ramp_time;
@@ -518,6 +522,7 @@ extern char *job_section;
 extern int fio_gtod_offload;
 extern int fio_gtod_cpu;
 extern enum fio_cs fio_clock_source;
+extern int warnings_fatal;
 
 extern struct thread_data *threads;
 
@@ -526,7 +531,7 @@ static inline void fio_ro_check(struct thread_data *td, struct io_u *io_u)
        assert(!(io_u->ddir == DDIR_WRITE && !td_write(td)));
 }
 
-#define BLOCKS_PER_MAP         (8 * sizeof(int))
+#define BLOCKS_PER_MAP         (8 * sizeof(unsigned long))
 #define TO_MAP_BLOCK(f, b)     (b)
 #define RAND_MAP_IDX(f, b)     (TO_MAP_BLOCK(f, b) / BLOCKS_PER_MAP)
 #define RAND_MAP_BIT(f, b)     (TO_MAP_BLOCK(f, b) & (BLOCKS_PER_MAP - 1))