Add support for bs_is_seq_rand
[fio.git] / cconv.c
diff --git a/cconv.c b/cconv.c
index 2bfe6aa09d9585884f0766a6d4ff504580c24aac..8e7c69e9305a443e1b57d426776ee3a144b6c9e2 100644 (file)
--- a/cconv.c
+++ b/cconv.c
@@ -27,6 +27,7 @@ void convert_thread_options_to_cpu(struct thread_options *o,
        string_to_cpu(&o->name, top->name);
        string_to_cpu(&o->directory, top->directory);
        string_to_cpu(&o->filename, top->filename);
+       string_to_cpu(&o->filename_format, top->filename_format);
        string_to_cpu(&o->opendir, top->opendir);
        string_to_cpu(&o->ioengine, top->ioengine);
        string_to_cpu(&o->mmapfile, top->mmapfile);
@@ -45,6 +46,7 @@ void convert_thread_options_to_cpu(struct thread_options *o,
        o->td_ddir = le32_to_cpu(top->td_ddir);
        o->rw_seq = le32_to_cpu(top->rw_seq);
        o->kb_base = le32_to_cpu(top->kb_base);
+       o->unit_base = le32_to_cpu(top->kb_base);
        o->ddir_seq_nr = le32_to_cpu(top->ddir_seq_nr);
        o->ddir_seq_add = le64_to_cpu(top->ddir_seq_add);
        o->iodepth = le32_to_cpu(top->iodepth);
@@ -58,7 +60,7 @@ void convert_thread_options_to_cpu(struct thread_options *o,
        o->file_size_high = le64_to_cpu(top->file_size_high);
        o->start_offset = le64_to_cpu(top->start_offset);
 
-       for (i = 0; i < 2; i++) {
+       for (i = 0; i < DDIR_RWDIR_CNT; i++) {
                o->bs[i] = le32_to_cpu(top->bs[i]);
                o->ba[i] = le32_to_cpu(top->ba[i]);
                o->min_bs[i] = le32_to_cpu(top->min_bs[i]);
@@ -78,13 +80,14 @@ void convert_thread_options_to_cpu(struct thread_options *o,
                o->ratemin[i] = le32_to_cpu(top->ratemin[i]);
                o->rate_iops[i] = le32_to_cpu(top->rate_iops[i]);
                o->rate_iops_min[i] = le32_to_cpu(top->rate_iops_min[i]);
+
+               o->perc_rand[i] = le32_to_cpu(top->perc_rand[i]);
        }
 
        o->ratecycle = le32_to_cpu(top->ratecycle);
        o->nr_files = le32_to_cpu(top->nr_files);
        o->open_files = le32_to_cpu(top->open_files);
        o->file_lock_mode = le32_to_cpu(top->file_lock_mode);
-       o->lockfile_batch = le32_to_cpu(top->lockfile_batch);
        o->odirect = le32_to_cpu(top->odirect);
        o->invalidate_cache = le32_to_cpu(top->invalidate_cache);
        o->create_serialize = le32_to_cpu(top->create_serialize);
@@ -97,6 +100,8 @@ void convert_thread_options_to_cpu(struct thread_options *o,
        o->verify = le32_to_cpu(top->verify);
        o->do_verify = le32_to_cpu(top->do_verify);
        o->verifysort = le32_to_cpu(top->verifysort);
+       o->verifysort_nr = le32_to_cpu(top->verifysort_nr);
+       o->experimental_verify = le32_to_cpu(top->experimental_verify);
        o->verify_interval = le32_to_cpu(top->verify_interval);
        o->verify_offset = le32_to_cpu(top->verify_offset);
 
@@ -118,6 +123,11 @@ void convert_thread_options_to_cpu(struct thread_options *o,
        o->softrandommap = le32_to_cpu(top->softrandommap);
        o->bs_unaligned = le32_to_cpu(top->bs_unaligned);
        o->fsync_on_close = le32_to_cpu(top->fsync_on_close);
+       o->bs_is_seq_rand = le32_to_cpu(top->bs_is_seq_rand);
+       o->random_distribution = le32_to_cpu(top->random_distribution);
+       o->zipf_theta.u.f = fio_uint64_to_double(le64_to_cpu(top->zipf_theta.u.i));
+       o->pareto_h.u.f = fio_uint64_to_double(le64_to_cpu(top->pareto_h.u.i));
+       o->random_generator = le32_to_cpu(top->random_generator);
        o->hugepage_size = le32_to_cpu(top->hugepage_size);
        o->rw_min_bs = le32_to_cpu(top->rw_min_bs);
        o->thinktime = le32_to_cpu(top->thinktime);
@@ -143,6 +153,7 @@ void convert_thread_options_to_cpu(struct thread_options *o,
        o->loops = le32_to_cpu(top->loops);
        o->mem_type = le32_to_cpu(top->mem_type);
        o->mem_align = le32_to_cpu(top->mem_align);
+       o->max_latency = le32_to_cpu(top->max_latency);
        o->stonewall = le32_to_cpu(top->stonewall);
        o->new_group = le32_to_cpu(top->new_group);
        o->numjobs = le32_to_cpu(top->numjobs);
@@ -165,6 +176,7 @@ void convert_thread_options_to_cpu(struct thread_options *o,
        o->disable_clat = le32_to_cpu(top->disable_clat);
        o->disable_slat = le32_to_cpu(top->disable_slat);
        o->disable_bw = le32_to_cpu(top->disable_bw);
+       o->unified_rw_rep = le32_to_cpu(top->unified_rw_rep);
        o->gtod_reduce = le32_to_cpu(top->gtod_reduce);
        o->gtod_cpu = le32_to_cpu(top->gtod_cpu);
        o->gtod_offload = le32_to_cpu(top->gtod_offload);
@@ -174,7 +186,7 @@ void convert_thread_options_to_cpu(struct thread_options *o,
        o->trim_batch = le32_to_cpu(top->trim_batch);
        o->trim_zero = le32_to_cpu(top->trim_zero);
        o->clat_percentiles = le32_to_cpu(top->clat_percentiles);
-       o->overwrite_plist = le32_to_cpu(top->overwrite_plist);
+       o->percentile_precision = le32_to_cpu(top->percentile_precision);
        o->continue_on_error = le32_to_cpu(top->continue_on_error);
        o->cgroup_weight = le32_to_cpu(top->cgroup_weight);
        o->cgroup_nodelete = le32_to_cpu(top->cgroup_nodelete);
@@ -207,6 +219,7 @@ void convert_thread_options_to_net(struct thread_options_pack *top,
        string_to_net(top->name, o->name);
        string_to_net(top->directory, o->directory);
        string_to_net(top->filename, o->filename);
+       string_to_net(top->filename_format, o->filename_format);
        string_to_net(top->opendir, o->opendir);
        string_to_net(top->ioengine, o->ioengine);
        string_to_net(top->mmapfile, o->mmapfile);
@@ -225,6 +238,7 @@ void convert_thread_options_to_net(struct thread_options_pack *top,
        top->td_ddir = cpu_to_le32(o->td_ddir);
        top->rw_seq = cpu_to_le32(o->rw_seq);
        top->kb_base = cpu_to_le32(o->kb_base);
+       top->unit_base = cpu_to_le32(o->kb_base);
        top->ddir_seq_nr = cpu_to_le32(o->ddir_seq_nr);
        top->iodepth = cpu_to_le32(o->iodepth);
        top->iodepth_low = cpu_to_le32(o->iodepth_low);
@@ -236,7 +250,6 @@ void convert_thread_options_to_net(struct thread_options_pack *top,
        top->nr_files = cpu_to_le32(o->nr_files);
        top->open_files = cpu_to_le32(o->open_files);
        top->file_lock_mode = cpu_to_le32(o->file_lock_mode);
-       top->lockfile_batch = cpu_to_le32(o->lockfile_batch);
        top->odirect = cpu_to_le32(o->odirect);
        top->invalidate_cache = cpu_to_le32(o->invalidate_cache);
        top->create_serialize = cpu_to_le32(o->create_serialize);
@@ -249,6 +262,8 @@ void convert_thread_options_to_net(struct thread_options_pack *top,
        top->verify = cpu_to_le32(o->verify);
        top->do_verify = cpu_to_le32(o->do_verify);
        top->verifysort = cpu_to_le32(o->verifysort);
+       top->verifysort_nr = cpu_to_le32(o->verifysort_nr);
+       top->experimental_verify = cpu_to_le32(o->experimental_verify);
        top->verify_interval = cpu_to_le32(o->verify_interval);
        top->verify_offset = cpu_to_le32(o->verify_offset);
        top->verify_pattern_bytes = cpu_to_le32(o->verify_pattern_bytes);
@@ -267,6 +282,11 @@ void convert_thread_options_to_net(struct thread_options_pack *top,
        top->softrandommap = cpu_to_le32(o->softrandommap);
        top->bs_unaligned = cpu_to_le32(o->bs_unaligned);
        top->fsync_on_close = cpu_to_le32(o->fsync_on_close);
+       top->bs_is_seq_rand = cpu_to_le32(o->bs_is_seq_rand);
+       top->random_distribution = cpu_to_le32(o->random_distribution);
+       top->zipf_theta.u.i = __cpu_to_le64(fio_double_to_uint64(o->zipf_theta.u.f));
+       top->pareto_h.u.i = __cpu_to_le64(fio_double_to_uint64(o->pareto_h.u.f));
+       top->random_generator = cpu_to_le32(o->random_generator);
        top->hugepage_size = cpu_to_le32(o->hugepage_size);
        top->rw_min_bs = cpu_to_le32(o->rw_min_bs);
        top->thinktime = cpu_to_le32(o->thinktime);
@@ -281,6 +301,7 @@ void convert_thread_options_to_net(struct thread_options_pack *top,
        top->loops = cpu_to_le32(o->loops);
        top->mem_type = cpu_to_le32(o->mem_type);
        top->mem_align = cpu_to_le32(o->mem_align);
+       top->max_latency = cpu_to_le32(o->max_latency);
        top->stonewall = cpu_to_le32(o->stonewall);
        top->new_group = cpu_to_le32(o->new_group);
        top->numjobs = cpu_to_le32(o->numjobs);
@@ -303,6 +324,7 @@ void convert_thread_options_to_net(struct thread_options_pack *top,
        top->disable_clat = cpu_to_le32(o->disable_clat);
        top->disable_slat = cpu_to_le32(o->disable_slat);
        top->disable_bw = cpu_to_le32(o->disable_bw);
+       top->unified_rw_rep = cpu_to_le32(o->unified_rw_rep);
        top->gtod_reduce = cpu_to_le32(o->gtod_reduce);
        top->gtod_cpu = cpu_to_le32(o->gtod_cpu);
        top->gtod_offload = cpu_to_le32(o->gtod_offload);
@@ -312,7 +334,7 @@ void convert_thread_options_to_net(struct thread_options_pack *top,
        top->trim_batch = cpu_to_le32(o->trim_batch);
        top->trim_zero = cpu_to_le32(o->trim_zero);
        top->clat_percentiles = cpu_to_le32(o->clat_percentiles);
-       top->overwrite_plist = cpu_to_le32(o->overwrite_plist);
+       top->percentile_precision = cpu_to_le32(o->percentile_precision);
        top->continue_on_error = cpu_to_le32(o->continue_on_error);
        top->cgroup_weight = cpu_to_le32(o->cgroup_weight);
        top->cgroup_nodelete = cpu_to_le32(o->cgroup_nodelete);
@@ -326,7 +348,7 @@ void convert_thread_options_to_net(struct thread_options_pack *top,
        top->compress_percentage = cpu_to_le32(o->compress_percentage);
        top->compress_chunk = cpu_to_le32(o->compress_chunk);
 
-       for (i = 0; i < 2; i++) {
+       for (i = 0; i < DDIR_RWDIR_CNT; i++) {
                top->bs[i] = cpu_to_le32(o->bs[i]);
                top->ba[i] = cpu_to_le32(o->ba[i]);
                top->min_bs[i] = cpu_to_le32(o->min_bs[i]);
@@ -351,6 +373,8 @@ void convert_thread_options_to_net(struct thread_options_pack *top,
                top->ratemin[i] = cpu_to_le32(o->ratemin[i]);
                top->rate_iops[i] = cpu_to_le32(o->rate_iops[i]);
                top->rate_iops_min[i] = cpu_to_le32(o->rate_iops_min[i]);
+
+               top->perc_rand[i] = cpu_to_le32(o->perc_rand[i]);
        }
 
        memcpy(top->verify_pattern, o->verify_pattern, MAX_PATTERN_SIZE);