Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio
[fio.git] / fio.c
diff --git a/fio.c b/fio.c
index f699951dcf58697f87922be056bfe99191e82f96..f0665e072ccbd5f6ac3f4dcd52a5edfe015cbf31 100644 (file)
--- a/fio.c
+++ b/fio.c
@@ -733,7 +733,7 @@ static int init_io_u(struct thread_data *td)
 {
        struct io_u *io_u;
        unsigned int max_bs;
-       int i, max_units;
+       int cl_align, i, max_units;
        char *p;
 
        max_units = td->o.iodepth;
@@ -761,10 +761,20 @@ static int init_io_u(struct thread_data *td)
        else
                p = td->orig_buffer;
 
+       cl_align = os_cache_line_size();
+
        for (i = 0; i < max_units; i++) {
+               void *ptr;
+
                if (td->terminate)
                        return 1;
-               io_u = malloc(sizeof(*io_u));
+
+               if (posix_memalign(&ptr, cl_align, sizeof(*io_u))) {
+                       log_err("fio: posix_memalign=%s\n", strerror(errno));
+                       break;
+               }
+
+               io_u = ptr;
                memset(io_u, 0, sizeof(*io_u));
                INIT_FLIST_HEAD(&io_u->list);
 
@@ -876,6 +886,11 @@ static void reset_io_counters(struct thread_data *td)
         */
        if (td->o.time_based || td->o.loops)
                td->nr_done_files = 0;
+
+       /*
+        * Set the same seed to get repeatable runs
+        */
+       td_fill_rand_seeds(td);
 }
 
 void reset_all_stats(struct thread_data *td)
@@ -1081,7 +1096,7 @@ static void *thread_main(void *data)
        if (td->ts.slat_log) {
                if (td->o.lat_log_file) {
                        finish_log_named(td, td->ts.slat_log,
-                                               td->o.lat_log_file, "clat");
+                                               td->o.lat_log_file, "slat");
                } else
                        finish_log(td, td->ts.slat_log, "slat");
        }