Fio 3.15
[fio.git] / idletime.h
index acb8407d982a1242b47549c7e406a3f294713973..91ca95f5ee5ba69901b41a25346954a7bbec172b 100644 (file)
@@ -1,7 +1,9 @@
 #ifndef FIO_IDLETIME_H
 #define FIO_IDLETIME_H
 
-#include "fio.h"
+#include <sys/time.h>
+#include <sys/types.h>
+#include "os/os.h"
 
 #define CALIBRATE_RUNS  10
 #define CALIBRATE_SCALE 1000
@@ -25,15 +27,17 @@ struct idle_prof_thread {
        pthread_t thread;
        int cpu;
        int state;
-       struct timeval tps;
-       struct timeval tpe;
-       double cali_time; /* microseconds to finish a unit wrok */
+       struct timespec tps;
+       struct timespec tpe;
+       double cali_time; /* microseconds to finish a unit work */
        double loops;
        double idleness;
        unsigned char *data;             /* bytes to be touched */
        pthread_cond_t  cond;
        pthread_mutex_t init_lock;
        pthread_mutex_t start_lock;
+
+       os_cpu_mask_t cpu_mask;
 };
 
 struct idle_prof_common {
@@ -52,6 +56,8 @@ extern void fio_idle_prof_init(void);
 extern void fio_idle_prof_start(void);
 extern void fio_idle_prof_stop(void);
 
-extern void show_idle_prof_stats(int, struct json_object *);
+extern void show_idle_prof_stats(int, struct json_object *, struct buf_output *);
+
+extern void fio_idle_prof_cleanup(void);
 
 #endif