Merge branch 'master' into gfio
[fio.git] / thread_options.h
index abd735af33e20d8a5c659a2730b379678158d416..5354473bce9c9cb2cdabe517f85f1e256429e781 100644 (file)
@@ -119,6 +119,12 @@ struct thread_options {
        unsigned int bs_unaligned;
        unsigned int fsync_on_close;
 
+       unsigned int random_distribution;
+       fio_fp64_t zipf_theta;
+       fio_fp64_t pareto_h;
+
+       unsigned int random_generator;
+
        unsigned int hugepage_size;
        unsigned int rw_min_bs;
        unsigned int thinktime;
@@ -141,6 +147,8 @@ struct thread_options {
        enum fio_memtype mem_type;
        unsigned int mem_align;
 
+       unsigned max_latency;
+
        unsigned int stonewall;
        unsigned int new_group;
        unsigned int numjobs;
@@ -148,6 +156,14 @@ struct thread_options {
        unsigned int cpumask_set;
        os_cpu_mask_t verify_cpumask;
        unsigned int verify_cpumask_set;
+#ifdef FIO_HAVE_LIBNUMA
+       struct bitmask *numa_cpunodesmask;
+       unsigned int numa_cpumask_set;
+       unsigned short numa_mem_mode;
+       unsigned int numa_mem_prefer_node;
+       struct bitmask *numa_memnodesmask;
+       unsigned int numa_memmask_set;
+#endif
        unsigned int iolog;
        unsigned int rwmixcycle;
        unsigned int rwmix[2];
@@ -259,12 +275,12 @@ struct thread_options_pack {
        uint64_t file_size_high;
        uint64_t start_offset;
 
-       uint32_t bs[2];
-       uint32_t ba[2];
-       uint32_t min_bs[2];
-       uint32_t max_bs[2];
-       struct bssplit bssplit[2][BSSPLIT_MAX];
-       uint32_t bssplit_nr[2];
+       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];
+       struct bssplit bssplit[DDIR_RWDIR_CNT][BSSPLIT_MAX];
+       uint32_t bssplit_nr[DDIR_RWDIR_CNT];
 
        uint32_t ignore_error[ERROR_TYPE_CNT][ERROR_STR_MAX];
        uint32_t ignore_error_nr[ERROR_TYPE_CNT];
@@ -308,6 +324,12 @@ struct thread_options_pack {
        uint32_t bs_unaligned;
        uint32_t fsync_on_close;
 
+       uint32_t random_distribution;
+       fio_fp64_t zipf_theta;
+       fio_fp64_t pareto_h;
+
+       uint32_t random_generator;
+
        uint32_t hugepage_size;
        uint32_t rw_min_bs;
        uint32_t thinktime;
@@ -330,6 +352,8 @@ struct thread_options_pack {
        uint32_t mem_type;
        uint32_t mem_align;
 
+       uint32_t max_latency;
+
        uint32_t stonewall;
        uint32_t new_group;
        uint32_t numjobs;
@@ -383,11 +407,11 @@ struct thread_options_pack {
        uint8_t exec_prerun[FIO_TOP_STR_MAX];
        uint8_t exec_postrun[FIO_TOP_STR_MAX];
 
-       uint32_t rate[2];
-       uint32_t ratemin[2];
+       uint32_t rate[DDIR_RWDIR_CNT];
+       uint32_t ratemin[DDIR_RWDIR_CNT];
        uint32_t ratecycle;
-       uint32_t rate_iops[2];
-       uint32_t rate_iops_min[2];
+       uint32_t rate_iops[DDIR_RWDIR_CNT];
+       uint32_t rate_iops_min[DDIR_RWDIR_CNT];
 
        uint8_t ioscheduler[FIO_TOP_STR_MAX];