return utime_since_now(&genesis);
}
-int in_ramp_time(struct thread_data *td)
+bool in_ramp_time(struct thread_data *td)
{
return td->o.ramp_time && !td->ramp_time_over;
}
td_set_runstate(parent, TD_RAMP);
}
-int ramp_time_over(struct thread_data *td)
+bool ramp_time_over(struct thread_data *td)
{
struct timeval tv;
if (!td->o.ramp_time || td->ramp_time_over)
- return 1;
+ return true;
fio_gettime(&tv, NULL);
if (utime_since(&td->epoch, &tv) >= td->o.ramp_time) {
reset_all_stats(td);
td_set_runstate(td, TD_RAMP);
parent_update_ramp(td);
- return 1;
+ return true;
}
- return 0;
+ return false;
}
void fio_time_init(void)
fio_gettime(&genesis, NULL);
}
+void set_epoch_time(struct thread_data *td, int log_unix_epoch)
+{
+ fio_gettime(&td->epoch, NULL);
+ if (log_unix_epoch) {
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ td->unix_epoch = (unsigned long long)(tv.tv_sec) * 1000 +
+ (unsigned long long)(tv.tv_usec) / 1000;
+ }
+}
+
void fill_start_time(struct timeval *t)
{
memcpy(t, &genesis, sizeof(genesis));