Add missing trailing \n in log_err/info()
[fio.git] / backend.c
index ac71521e94fc4420714823aab73c45a924e0432d..a46101ca5aebc04d51523f3e4eb61c01c907c368 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -180,8 +180,8 @@ static bool __check_min_rate(struct thread_data *td, struct timeval *now,
                         * check bandwidth specified rate
                         */
                        if (bytes < td->rate_bytes[ddir]) {
-                               log_err("%s: min rate %u not met\n", td->o.name,
-                                                               ratemin);
+                               log_err("%s: rate_min=%uB/s not met, only transferred %lluB\n",
+                                       td->o.name, ratemin, bytes);
                                return true;
                        } else {
                                if (spent)
@@ -191,9 +191,8 @@ static bool __check_min_rate(struct thread_data *td, struct timeval *now,
 
                                if (rate < ratemin ||
                                    bytes < td->rate_bytes[ddir]) {
-                                       log_err("%s: min rate %u not met, got"
-                                               " %luKB/sec\n", td->o.name,
-                                                       ratemin, rate);
+                                       log_err("%s: rate_min=%uB/s not met, got %luB/s\n",
+                                               td->o.name, ratemin, rate);
                                        return true;
                                }
                        }
@@ -202,8 +201,8 @@ static bool __check_min_rate(struct thread_data *td, struct timeval *now,
                         * checks iops specified rate
                         */
                        if (iops < rate_iops) {
-                               log_err("%s: min iops rate %u not met\n",
-                                               td->o.name, rate_iops);
+                               log_err("%s: rate_iops_min=%u not met, only performed %lu IOs\n",
+                                               td->o.name, rate_iops, iops);
                                return true;
                        } else {
                                if (spent)
@@ -213,9 +212,8 @@ static bool __check_min_rate(struct thread_data *td, struct timeval *now,
 
                                if (rate < rate_iops_min ||
                                    iops < td->rate_blocks[ddir]) {
-                                       log_err("%s: min iops rate %u not met,"
-                                               " got %lu\n", td->o.name,
-                                                       rate_iops_min, rate);
+                                       log_err("%s: rate_iops_min=%u not met, got %lu IOPS\n",
+                                               td->o.name, rate_iops_min, rate);
                                        return true;
                                }
                        }
@@ -1665,6 +1663,7 @@ static void *thread_main(void *data)
        fio_getrusage(&td->ru_start);
        memcpy(&td->bw_sample_time, &td->epoch, sizeof(td->epoch));
        memcpy(&td->iops_sample_time, &td->epoch, sizeof(td->epoch));
+       memcpy(&td->ss.prev_time, &td->epoch, sizeof(td->epoch));
 
        if (o->ratemin[DDIR_READ] || o->ratemin[DDIR_WRITE] ||
                        o->ratemin[DDIR_TRIM]) {
@@ -2064,7 +2063,7 @@ static bool check_mount_writes(struct thread_data *td)
 
        return false;
 mounted:
-       log_err("fio: %s appears mounted, and 'allow_mounted_write' isn't set. Aborting.", f->file_name);
+       log_err("fio: %s appears mounted, and 'allow_mounted_write' isn't set. Aborting.\n", f->file_name);
        return true;
 }
 
@@ -2415,6 +2414,12 @@ int fio_backend(struct sk_out *sk_out)
        }
 
        for_each_td(td, i) {
+               if (td->ss.dur) {
+                       if (td->ss.iops_data != NULL) {
+                               free(td->ss.iops_data);
+                               free(td->ss.bw_data);
+                       }
+               }
                fio_options_free(td);
                if (td->rusage_sem) {
                        fio_mutex_remove(td->rusage_sem);