> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On
> Behalf Of John OCallaghan
> Sent: Friday, 15 August, 2014 11:55 AM
> To: [email protected]
> Subject: Re: runtime and status-interval
> 
> 
> 
> FYI I found the problem in fio/backend.c. Seems to be working fine now.
> 
> 
> The fix I put together is this:
> 
>               if (td_read(td) && td->io_bytes[DDIR_READ]) {
>                       elapsed = utime_since_now(&td->start);
>                       td->ts.runtime[DDIR_READ] += elapsed/1000;
>               }
>               if (td_write(td) && td->io_bytes[DDIR_WRITE]) {
>                       elapsed = utime_since_now(&td->start);
>                       td->ts.runtime[DDIR_WRITE] += elapsed/1000;
>               }
>               if (td_trim(td) && td->io_bytes[DDIR_TRIM]) {
>                       elapsed = utime_since_now(&td->start);
>                       td->ts.runtime[DDIR_TRIM] += elapsed/1000;
>               }


> 
> The problem is is that runtime is holding milliseconds but
> utime_since_now() returns microseconds. I added the "/1000" to make the
> conversion.
> 
> My change is a simple fix but quite possibly there are other places
> within fio making the same mistake?

These lines could just call mtime_since_now rather than utime_since_now.

There's one more a few lines down:
                fio_gettime(&td->start, NULL);

                do_verify(td, verify_bytes);

                td->ts.runtime[DDIR_READ] += utime_since_now(&td->start);


---
Rob Elliott    HP Server Storage




Reply via email to