X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=thread_options.h;h=ee6e4d6d6b142745dba7e244e22a44bdf836f515;hb=402f08876d93be12f18703acfadb603eec7a5791;hp=92a3cfdb1bd16d68cee4ef5800c8a93fa91514b0;hpb=98e7161cda6a1f5b0cbd8979c261db8eb3a4ab72;p=fio.git diff --git a/thread_options.h b/thread_options.h index 92a3cfdb..ee6e4d6d 100644 --- a/thread_options.h +++ b/thread_options.h @@ -10,6 +10,14 @@ #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]; @@ -132,7 +140,6 @@ struct thread_options { unsigned int rand_repeatable; unsigned int allrand_repeatable; unsigned long long rand_seed; - unsigned int dep_use_os_rand; unsigned int log_avg_msec; unsigned int log_hist_msec; unsigned int log_hist_coarseness; @@ -164,7 +171,7 @@ 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 thinktime; unsigned int thinktime_spin; unsigned int thinktime_blocks; @@ -187,6 +194,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; @@ -248,6 +256,9 @@ struct thread_options { char *read_iolog_file; bool read_iolog_chunked; char *write_iolog_file; + char *merge_blktrace_file; + fio_fp64_t merge_blktrace_scalars[FIO_IO_U_LIST_MAX_LEN]; + fio_fp64_t merge_blktrace_iters[FIO_IO_U_LIST_MAX_LEN]; unsigned int write_bw_log; unsigned int write_lat_log; @@ -302,6 +313,7 @@ struct thread_options { int flow_watermark; unsigned int flow_sleep; + unsigned int offset_increment_percent; unsigned long long offset_increment; unsigned long long number_ios; @@ -324,6 +336,12 @@ struct thread_options { 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 @@ -364,10 +382,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]; @@ -411,8 +429,8 @@ struct thread_options_pack { uint32_t override_sync; uint32_t rand_repeatable; uint32_t allrand_repeatable; + uint32_t pad; uint64_t rand_seed; - uint32_t dep_use_os_rand; uint32_t log_avg_msec; uint32_t log_hist_msec; uint32_t log_hist_coarseness; @@ -444,7 +462,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; @@ -523,6 +542,9 @@ struct thread_options_pack { uint8_t read_iolog_file[FIO_TOP_STR_MAX]; uint8_t write_iolog_file[FIO_TOP_STR_MAX]; + uint8_t merge_blktrace_file[FIO_TOP_STR_MAX]; + fio_fp64_t merge_blktrace_scalars[FIO_IO_U_LIST_MAX_LEN]; + fio_fp64_t merge_blktrace_iters[FIO_IO_U_LIST_MAX_LEN]; uint32_t write_bw_log; uint32_t write_lat_log; @@ -549,7 +571,7 @@ struct thread_options_pack { uint32_t rate_iops_min[DDIR_RWDIR_CNT]; uint32_t rate_process; uint32_t rate_ign_think; - uint32_t pad; + uint32_t pad3; uint8_t ioscheduler[FIO_TOP_STR_MAX]; @@ -578,6 +600,8 @@ struct thread_options_pack { int32_t flow_watermark; uint32_t flow_sleep; + uint32_t offset_increment_percent; + uint32_t pad4; uint64_t offset_increment; uint64_t number_ios; @@ -599,6 +623,8 @@ struct thread_options_pack { 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);