Dunno why it ended up in there, doesn't make any sense.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
extern void setup_log(struct io_log **);
extern void finish_log(struct thread_data *, struct io_log *, const char *);
extern void __finish_log(struct io_log *, const char *);
-extern int setup_rate(struct thread_data *);
extern struct io_log *agg_io_log[2];
extern int write_bw_log;
extern void add_agg_sample(unsigned long, enum fio_ddir);
thread_number--;
}
+static int setup_rate(struct thread_data *td)
+{
+ unsigned long nr_reads_per_msec;
+ unsigned long long rate;
+ unsigned int bs;
+
+ if (!td->rate && !td->rate_iops)
+ return 0;
+
+ if (td_rw(td))
+ bs = td->rw_min_bs;
+ else if (td_read(td))
+ bs = td->min_bs[DDIR_READ];
+ else
+ bs = td->min_bs[DDIR_WRITE];
+
+ if (td->rate) {
+ rate = td->rate;
+ nr_reads_per_msec = (rate * 1024 * 1000LL) / bs;
+ } else
+ nr_reads_per_msec = td->rate_iops * 1000UL;
+
+ if (!nr_reads_per_msec) {
+ log_err("rate lower than supported\n");
+ return -1;
+ }
+
+ td->rate_usec_cycle = 1000000000ULL / nr_reads_per_msec;
+ td->rate_pending_usleep = 0;
+ return 0;
+}
+
/*
* Lazy way of fixing up options that depend on each other. We could also
* define option callback handlers, but this is easier.
return ret;
}
-int setup_rate(struct thread_data *td)
-{
- unsigned long long rate;
- int nr_reads_per_msec;
- unsigned int bs;
-
- if (!td->rate && !td->rate_iops)
- return 0;
-
- if (td_rw(td))
- bs = td->rw_min_bs;
- else if (td_read(td))
- bs = td->min_bs[DDIR_READ];
- else
- bs = td->min_bs[DDIR_WRITE];
-
- if (td->rate) {
- rate = td->rate;
- nr_reads_per_msec = (rate * 1024 * 1000) / bs;
- } else
- nr_reads_per_msec = td->rate_iops * 1000;
-
- if (!nr_reads_per_msec) {
- log_err("rate lower than supported\n");
- return -1;
- }
-
- td->rate_usec_cycle = 1000000000ULL / nr_reads_per_msec;
- td->rate_pending_usleep = 0;
- return 0;
-}
-
void setup_log(struct io_log **log)
{
struct io_log *l = malloc(sizeof(*l));