Revert "[PATCH] Move disk utilization setup to thread itself"
[fio.git] / fio.c
diff --git a/fio.c b/fio.c
index 8a4a44dc902f0f0dde0695deceaefb1dbab9ae4a..dd52626469a0358cdbacc062d02058b19f148825 100644 (file)
--- a/fio.c
+++ b/fio.c
@@ -379,7 +379,6 @@ static void do_io(struct thread_data *td)
        td_set_runstate(td, TD_RUNNING);
 
        while (td->this_io_bytes[td->ddir] < td->io_size) {
-               struct timespec ts = { .tv_sec = 0, .tv_nsec = 0};
                struct timespec *timeout;
                int min_evts = 0;
                struct io_u *io_u;
@@ -407,6 +406,8 @@ static void do_io(struct thread_data *td)
                add_slat_sample(td, io_u->ddir, mtime_since(&io_u->start_time, &io_u->issue_time));
 
                if (td->cur_depth < td->iodepth) {
+                       struct timespec ts = { .tv_sec = 0, .tv_nsec = 0};
+
                        timeout = &ts;
                        min_evts = 0;
                } else {
@@ -447,8 +448,13 @@ static void do_io(struct thread_data *td)
                if (runtime_exceeded(td, &icd.time))
                        break;
 
-               if (td->thinktime)
-                       usec_sleep(td, td->thinktime);
+               if (td->thinktime) {
+                       unsigned long long b;
+
+                       b = td->io_blocks[0] + td->io_blocks[1];
+                       if (!(b % td->thinktime_blocks))
+                               usec_sleep(td, td->thinktime);
+               }
        }
 
        if (!td->error) {
@@ -510,7 +516,7 @@ static int init_io_u(struct thread_data *td)
        td->orig_buffer_size = max_bs * max_units;
 
        if (td->mem_type == MEM_SHMHUGE || td->mem_type == MEM_MMAPHUGE)
-               td->orig_buffer_size = (td->orig_buffer_size + FIO_HUGE_PAGE - 1) & ~(FIO_HUGE_PAGE - 1);
+               td->orig_buffer_size = (td->orig_buffer_size + td->hugepage_size - 1) & ~(td->hugepage_size - 1);
        else
                td->orig_buffer_size += MASK;