- td->rate_pending_usleep += s;
- if (td->rate_pending_usleep >= 100000) {
- usec_sleep(td, td->rate_pending_usleep);
- td->rate_pending_usleep = 0;
- }
- } else {
- long overtime = time_spent - usec_cycle;
+ fio_gettime(&tv, NULL);
+ if (mtime_since(&td->epoch, &tv) >= td->o.ramp_time * 1000) {
+ td->ramp_time_over = 1;
+ reset_all_stats(td);
+ td_set_runstate(td, TD_RAMP);
+ return 1;
+ }
+
+ return 0;
+}
+
+static void fio_init time_init(void)
+{
+ int i;
+
+ /*
+ * Check the granularity of the nanosleep function
+ */
+ for (i = 0; i < 10; i++) {
+ struct timeval tv;
+ struct timespec ts;
+ unsigned long elapsed;
+
+ fio_gettime(&tv, NULL);
+ ts.tv_sec = 0;
+ ts.tv_nsec = 1000;