Fix verify state for multiple files
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index 66211e9da74d80cafc2398ddf001ed8ff0499a8c..829cc81812dc491cb0d6db50eca4b409c6460b3f 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -32,7 +32,7 @@
 #include "profile.h"
 #include "fio_time.h"
 #include "gettime.h"
-#include "lib/getopt.h"
+#include "oslib/getopt.h"
 #include "lib/rand.h"
 #include "lib/rbtree.h"
 #include "client.h"
@@ -96,6 +96,7 @@ enum {
        FIO_RAND_START_DELAY,
        FIO_DEDUPE_OFF,
        FIO_RAND_POISSON_OFF,
+       FIO_RAND_ZONE_OFF,
        FIO_RAND_NR_OFFS,
 };
 
@@ -115,6 +116,11 @@ struct sk_out;
 void sk_out_assign(struct sk_out *);
 void sk_out_drop(void);
 
+struct zone_split_index {
+       uint8_t size_perc;
+       uint8_t size_perc_prev;
+};
+
 /*
  * This describes a single thread/process executing a fio job.
  */
@@ -148,13 +154,6 @@ struct thread_data {
        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;
@@ -200,6 +199,9 @@ struct thread_data {
        struct frand_state buf_state;
        struct frand_state buf_state_prev;
        struct frand_state dedupe_state;
+       struct frand_state zone_state;
+
+       struct zone_split_index **zone_state_index;
 
        unsigned int verify_batch;
        unsigned int trim_batch;
@@ -712,6 +714,7 @@ enum {
        FIO_RAND_DIST_ZIPF,
        FIO_RAND_DIST_PARETO,
        FIO_RAND_DIST_GAUSS,
+       FIO_RAND_DIST_ZONED,
 };
 
 #define FIO_DEF_ZIPF           1.1