#include "lib/getrusage.h"
#include "idletime.h"
#include "err.h"
+#include "lib/tp.h"
static pthread_t disk_util_thread;
static struct fio_mutex *disk_thread_mutex;
} else
td->pid = gettid();
- /*
- * fio_time_init() may not have been called yet if running as a server
- */
- fio_time_init();
-
fio_local_clock_init(o->use_thread);
dprint(FD_PROCESS, "jobs pid=%d started\n", (int) td->pid);
goto err;
}
+ if (td->flags & TD_F_COMPRESS_LOG)
+ tp_init(&td->tp_data);
+
fio_verify_init(td);
fio_gettime(&td->epoch, NULL);
fio_writeout_logs(td);
+ if (td->flags & TD_F_COMPRESS_LOG)
+ tp_exit(&td->tp_data);
+
if (o->exec_postrun)
exec_string(o, o->exec_postrun, (const char *)"postrun");
struct thread_data *td;
void *data, *ret;
-#ifndef __hpux
+#if !defined(__hpux) && !defined(CONFIG_NO_SHM)
data = shmat(shmid, NULL, 0);
if (data == (void *) -1) {
int __err = errno;
return 0;
if (write_bw_log) {
- setup_log(&agg_io_log[DDIR_READ], 0, IO_LOG_TYPE_BW);
- setup_log(&agg_io_log[DDIR_WRITE], 0, IO_LOG_TYPE_BW);
- setup_log(&agg_io_log[DDIR_TRIM], 0, IO_LOG_TYPE_BW);
+ struct log_params p = {
+ .log_type = IO_LOG_TYPE_BW,
+ };
+
+ setup_log(&agg_io_log[DDIR_READ], &p, "agg-read_bw.log");
+ setup_log(&agg_io_log[DDIR_WRITE], &p, "agg-write_bw.log");
+ setup_log(&agg_io_log[DDIR_TRIM], &p, "agg-trim_bw.log");
}
startup_mutex = fio_mutex_init(FIO_MUTEX_LOCKED);
if (!fio_abort) {
show_run_stats();
if (write_bw_log) {
- __finish_log(agg_io_log[DDIR_READ], "agg-read_bw.log");
- __finish_log(agg_io_log[DDIR_WRITE],
- "agg-write_bw.log");
- __finish_log(agg_io_log[DDIR_TRIM],
- "agg-write_bw.log");
+ int i;
+
+ for (i = 0; i < DDIR_RWDIR_CNT; i++) {
+ struct io_log *log = agg_io_log[i];
+
+ flush_log(log);
+ free_log(log);
+ }
}
}