X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=thread_options.h;h=567df819a85ee6d02fe6089599fe7b1227d0b35f;hp=026b85b444587372656371475b5b231cd19123ac;hb=5d02b083f521bf7508249af8d3c7987992c7b718;hpb=65fa28ca25ff0128b13d8ab6b3a0f9f75e33825f diff --git a/thread_options.h b/thread_options.h index 026b85b4..567df819 100644 --- a/thread_options.h +++ b/thread_options.h @@ -7,6 +7,7 @@ #include "stat.h" #include "gettime.h" #include "lib/ieee754.h" +#include "lib/pattern.h" #include "td_error.h" /* @@ -18,6 +19,7 @@ enum fio_memtype { MEM_SHMHUGE, /* use shared memory segments with huge pages */ MEM_MMAP, /* use anonynomous mmap */ MEM_MMAPHUGE, /* memory mapped huge file */ + MEM_MMAPSHARED, /* use mmap with shared flag */ }; #define ERROR_STR_MAX 128 @@ -53,7 +55,8 @@ struct thread_options { unsigned int iodepth; unsigned int iodepth_low; unsigned int iodepth_batch; - unsigned int iodepth_batch_complete; + unsigned int iodepth_batch_complete_min; + unsigned int iodepth_batch_complete_max; unsigned long long size; unsigned long long io_limit; @@ -97,6 +100,8 @@ struct thread_options { unsigned int verify_offset; char verify_pattern[MAX_PATTERN_SIZE]; unsigned int verify_pattern_bytes; + struct pattern_fmt verify_fmt[8]; + unsigned int verify_fmt_sz; unsigned int verify_fatal; unsigned int verify_dump; unsigned int verify_async; @@ -223,8 +228,10 @@ struct thread_options { unsigned int rate[DDIR_RWDIR_CNT]; unsigned int ratemin[DDIR_RWDIR_CNT]; unsigned int ratecycle; + unsigned int io_submit_mode; unsigned int rate_iops[DDIR_RWDIR_CNT]; unsigned int rate_iops_min[DDIR_RWDIR_CNT]; + unsigned int rate_process; char *ioscheduler; @@ -264,6 +271,14 @@ struct thread_options { unsigned block_error_hist; unsigned int skip_bad; + + unsigned int replay_align; + unsigned int replay_scale; + + unsigned int per_job_logs; + + unsigned int allow_create; + unsigned int allow_mounted_write; }; #define FIO_TOP_STR_MAX 256 @@ -287,7 +302,9 @@ struct thread_options_pack { uint32_t iodepth; uint32_t iodepth_low; uint32_t iodepth_batch; - uint32_t iodepth_batch_complete; + uint32_t iodepth_batch_complete_min; + uint32_t iodepth_batch_complete_max; + uint32_t __proper_alignment_for_64b; uint64_t size; uint64_t io_limit; @@ -452,8 +469,11 @@ struct thread_options_pack { uint32_t rate[DDIR_RWDIR_CNT]; uint32_t ratemin[DDIR_RWDIR_CNT]; uint32_t ratecycle; + uint32_t io_submit_mode; uint32_t rate_iops[DDIR_RWDIR_CNT]; uint32_t rate_iops_min[DDIR_RWDIR_CNT]; + uint32_t rate_process; + uint32_t padding_0; /* for alignment assert */ uint8_t ioscheduler[FIO_TOP_STR_MAX]; @@ -489,11 +509,18 @@ struct thread_options_pack { uint64_t latency_target; uint64_t latency_window; - uint32_t pad3; fio_fp64_t latency_percentile; uint32_t block_error_hist; uint32_t skip_bad; + + uint32_t replay_align; + uint32_t replay_scale; + + uint32_t per_job_logs; + + uint32_t allow_create; + uint32_t allow_mounted_write; } __attribute__((packed)); extern void convert_thread_options_to_cpu(struct thread_options *o, struct thread_options_pack *top);