Add gtod_cpu option for pinning gettimeofday() to a single CPU
Similar to what real life products sometimes do, offload gettimeofday()
calls to a single CPU and have that update the current time into a shared
memory location. This option pins a specific CPU for that job, and excludes
it from participating in any of the IO jobs.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/fio.h b/fio.h
index f8e6a4a..d21f5e4 100644
--- a/fio.h
+++ b/fio.h
@@ -500,6 +500,8 @@
unsigned int disable_slat;
unsigned int disable_bw;
unsigned int gtod_reduce;
+ unsigned int gtod_cpu;
+ unsigned int gtod_offload;
char *read_iolog_file;
char *write_iolog_file;
@@ -699,6 +701,8 @@
extern int eta_print;
extern unsigned long done_secs;
extern char *job_section;
+extern int fio_gtod_offload;
+extern int fio_gtod_cpu;
extern struct thread_data *threads;
@@ -828,6 +832,8 @@
extern void rate_throttle(struct thread_data *, unsigned long, unsigned int);
extern void fill_start_time(struct timeval *);
extern void fio_gettime(struct timeval *, void *);
+extern void fio_gtod_init(void);
+extern void fio_gtod_update(void);
extern void set_genesis_time(void);
extern int ramp_time_over(struct thread_data *);
extern int in_ramp_time(struct thread_data *);