Merge branch 'master' of ssh://router/data/git/fio
[fio.git] / init.c
diff --git a/init.c b/init.c
index 6ae78be1ed3e59dca7e5acfc78ada8e88e4c1bc1..7785e9e42649f9c509e1358c5c159edba43bad2f 100644 (file)
--- a/init.c
+++ b/init.c
@@ -20,7 +20,7 @@
 #include "filehash.h"
 #include "verify.h"
 
-static char fio_version_string[] = "fio 1.36-rc2";
+static char fio_version_string[] = "fio 1.37";
 
 #define FIO_RANDSEED           (0xb1899bedUL)
 
@@ -205,21 +205,19 @@ static void put_job(struct thread_data *td)
 static int __setup_rate(struct thread_data *td, enum fio_ddir ddir)
 {
        unsigned int bs = td->o.min_bs[ddir];
-       unsigned long long rate;
-       unsigned long ios_per_msec;
+       unsigned long long bytes_per_sec;
 
-       if (td->o.rate[ddir]) {
-               rate = td->o.rate[ddir];
-               ios_per_msec = (rate * 1000LL) / bs;
-       } else
-               ios_per_msec = td->o.rate_iops[ddir] * 1000UL;
+       if (td->o.rate[ddir])
+               bytes_per_sec = td->o.rate[ddir];
+       else
+               bytes_per_sec = td->o.rate_iops[ddir] * bs;
 
-       if (!ios_per_msec) {
+       if (!bytes_per_sec) {
                log_err("rate lower than supported\n");
                return -1;
        }
 
-       td->rate_usec_cycle[ddir] = 1000000000ULL / ios_per_msec;
+       td->rate_nsec_cycle[ddir] = 1000000000ULL / bytes_per_sec;
        td->rate_pending_usleep[ddir] = 0;
        return 0;
 }
@@ -384,6 +382,17 @@ static int fixup_options(struct thread_data *td)
                                 " that isn't seekable. Pre-read disabled.\n");
        }
 
+#ifndef FIO_HAVE_FDATASYNC
+       if (td->o.fdatasync_blocks) {
+               log_info("fio: this platform does not support fdatasync()"
+                        " falling back to using fsync().  Use the 'fsync'"
+                        " option instead of 'fdatasync' to get rid of"
+                        " this warning\n");
+               td->o.fsync_blocks = td->o.fdatasync_blocks;
+               td->o.fdatasync_blocks = 0;
+       }
+#endif
+
        return 0;
 }
 
@@ -1026,7 +1035,7 @@ static int load_profile(const char *profile)
        int i, in_global = 1;
        char jobname[32];
 
-       dprint(FD_PARSE, "loading profile %s\n", profile);
+       dprint(FD_PARSE, "loading profile '%s'\n", profile);
 
        for (i = 0; i < PROFILE_END; i++) {
                if (!strcmp(profile, profiles[i]))
@@ -1034,7 +1043,7 @@ static int load_profile(const char *profile)
        }
 
        if (i == PROFILE_END) {
-               log_err("fio: unknown profile %s\n", profile);
+               log_err("fio: unknown profile '%s'\n", profile);
                return 1;
        }