From: Jens Axboe Date: Thu, 15 Mar 2007 11:09:39 +0000 (+0100) Subject: Improve rate accounting X-Git-Tag: fio-1.15~88 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=a998c869545503e733f4ff0f2bf6fc1e2dceec6c;hp=4e991c23d2d06484f581eb5e2105bc102cb35941 Improve rate accounting Don't assume usec_sleep() is extremely precise. Signed-off-by: Jens Axboe --- diff --git a/time.c b/time.c index c5b67ff1..80f8ca49 100644 --- a/time.c +++ b/time.c @@ -130,9 +130,13 @@ void rate_throttle(struct thread_data *td, unsigned long time_spent, unsigned long s = usec_cycle - time_spent; td->rate_pending_usleep += s; + if (td->rate_pending_usleep >= 100000) { + struct timeval t; + + fio_gettime(&t, NULL); usec_sleep(td, td->rate_pending_usleep); - td->rate_pending_usleep = 0; + td->rate_pending_usleep -= utime_since_now(&t); } } else { long overtime = time_spent - usec_cycle;