client: cleanup output types
[fio.git] / thread_options.h
index 793df8a587327d0224410f90e0db0e0ef36010e6..393158340e96a52a8068cd39d0d8c3c6c4cc4da3 100644 (file)
 #include "lib/pattern.h"
 #include "td_error.h"
 
+enum fio_zone_mode {
+       ZONE_MODE_NOT_SPECIFIED = 0,
+       ZONE_MODE_NONE          = 1,
+       ZONE_MODE_STRIDED       = 2, /* perform I/O in one zone at a time */
+       /* perform I/O across multiple zones simultaneously */
+       ZONE_MODE_ZBD           = 3,
+};
+
 /*
  * What type of allocation to use for io buffers
  */
@@ -29,7 +37,7 @@ enum fio_memtype {
 #define ZONESPLIT_MAX  256
 
 struct bssplit {
-       uint32_t bs;
+       uint64_t bs;
        uint32_t perc;
 };
 
@@ -82,10 +90,10 @@ struct thread_options {
        unsigned long long start_offset;
        unsigned long long start_offset_align;
 
-       unsigned int bs[DDIR_RWDIR_CNT];
-       unsigned int ba[DDIR_RWDIR_CNT];
-       unsigned int min_bs[DDIR_RWDIR_CNT];
-       unsigned int max_bs[DDIR_RWDIR_CNT];
+       unsigned long long bs[DDIR_RWDIR_CNT];
+       unsigned long long ba[DDIR_RWDIR_CNT];
+       unsigned long long min_bs[DDIR_RWDIR_CNT];
+       unsigned long long max_bs[DDIR_RWDIR_CNT];
        struct bssplit *bssplit[DDIR_RWDIR_CNT];
        unsigned int bssplit_nr[DDIR_RWDIR_CNT];
 
@@ -110,8 +118,6 @@ struct thread_options {
        unsigned int write_hint;
        unsigned int verify;
        unsigned int do_verify;
-       unsigned int verifysort;
-       unsigned int verifysort_nr;
        unsigned int verify_interval;
        unsigned int verify_offset;
        char verify_pattern[MAX_PATTERN_SIZE];
@@ -166,7 +172,8 @@ struct thread_options {
        unsigned int perc_rand[DDIR_RWDIR_CNT];
 
        unsigned int hugepage_size;
-       unsigned int rw_min_bs;
+       unsigned long long rw_min_bs;
+       unsigned int pad2;
        unsigned int thinktime;
        unsigned int thinktime_spin;
        unsigned int thinktime_blocks;
@@ -174,6 +181,7 @@ struct thread_options {
        unsigned int fdatasync_blocks;
        unsigned int barrier_blocks;
        unsigned long long start_delay;
+       unsigned long long start_delay_orig;
        unsigned long long start_delay_high;
        unsigned long long timeout;
        unsigned long long ramp_time;
@@ -188,6 +196,7 @@ struct thread_options {
        unsigned long long zone_range;
        unsigned long long zone_size;
        unsigned long long zone_skip;
+       enum fio_zone_mode zone_mode;
        unsigned long long lockmem;
        enum fio_memtype mem_type;
        unsigned int mem_align;
@@ -247,6 +256,7 @@ struct thread_options {
        fio_fp64_t percentile_list[FIO_IO_U_LIST_MAX_LEN];
 
        char *read_iolog_file;
+       bool read_iolog_chunked;
        char *write_iolog_file;
 
        unsigned int write_bw_log;
@@ -273,6 +283,7 @@ struct thread_options {
        unsigned int rate_iops[DDIR_RWDIR_CNT];
        unsigned int rate_iops_min[DDIR_RWDIR_CNT];
        unsigned int rate_process;
+       unsigned int rate_ign_think;
 
        char *ioscheduler;
 
@@ -316,11 +327,19 @@ struct thread_options {
 
        unsigned int replay_align;
        unsigned int replay_scale;
+       unsigned int replay_time_scale;
+       unsigned int replay_skip;
 
        unsigned int per_job_logs;
 
        unsigned int allow_create;
        unsigned int allow_mounted_write;
+
+       /* Parameters that affect zonemode=zbd */
+       unsigned int read_beyond_wp;
+       int max_open_zones;
+       fio_fp64_t zrt;
+       fio_fp64_t zrf;
 };
 
 #define FIO_TOP_STR_MAX                256
@@ -361,10 +380,10 @@ struct thread_options_pack {
        uint64_t start_offset;
        uint64_t start_offset_align;
 
-       uint32_t bs[DDIR_RWDIR_CNT];
-       uint32_t ba[DDIR_RWDIR_CNT];
-       uint32_t min_bs[DDIR_RWDIR_CNT];
-       uint32_t max_bs[DDIR_RWDIR_CNT];
+       uint64_t bs[DDIR_RWDIR_CNT];
+       uint64_t ba[DDIR_RWDIR_CNT];
+       uint64_t min_bs[DDIR_RWDIR_CNT];
+       uint64_t max_bs[DDIR_RWDIR_CNT];
        struct bssplit bssplit[DDIR_RWDIR_CNT][BSSPLIT_MAX];
        uint32_t bssplit_nr[DDIR_RWDIR_CNT];
 
@@ -389,8 +408,6 @@ struct thread_options_pack {
        uint32_t write_hint;
        uint32_t verify;
        uint32_t do_verify;
-       uint32_t verifysort;
-       uint32_t verifysort_nr;
        uint32_t verify_interval;
        uint32_t verify_offset;
        uint8_t verify_pattern[MAX_PATTERN_SIZE];
@@ -443,7 +460,8 @@ struct thread_options_pack {
        uint32_t perc_rand[DDIR_RWDIR_CNT];
 
        uint32_t hugepage_size;
-       uint32_t rw_min_bs;
+       uint64_t rw_min_bs;
+       uint32_t pad2;
        uint32_t thinktime;
        uint32_t thinktime_spin;
        uint32_t thinktime_blocks;
@@ -547,6 +565,8 @@ struct thread_options_pack {
        uint32_t rate_iops[DDIR_RWDIR_CNT];
        uint32_t rate_iops_min[DDIR_RWDIR_CNT];
        uint32_t rate_process;
+       uint32_t rate_ign_think;
+       uint32_t pad;
 
        uint8_t ioscheduler[FIO_TOP_STR_MAX];
 
@@ -589,11 +609,15 @@ struct thread_options_pack {
 
        uint32_t replay_align;
        uint32_t replay_scale;
+       uint32_t replay_time_scale;
+       uint32_t replay_skip;
 
        uint32_t per_job_logs;
 
        uint32_t allow_create;
        uint32_t allow_mounted_write;
+
+       uint32_t zone_mode;
 } __attribute__((packed));
 
 extern void convert_thread_options_to_cpu(struct thread_options *o, struct thread_options_pack *top);