-int setup_rate(struct thread_data *td)
-{
- unsigned long long rate;
- int nr_reads_per_msec;
- unsigned int bs;
-
- if (!td->rate)
- return 0;
-
- if (td->rate < td->ratemin) {
- log_err("min rate larger than nominal rate\n");
- return -1;
- }
-
- 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];
-
- rate = td->rate;
- nr_reads_per_msec = (rate * 1024 * 1000) / bs;
- 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;
-}
-