Re: Fix for a race when fio prints I/O statistics periodically

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey,
I just want to close the loop here. Last week up until now I've
successfully run several hundred jobs and not a single skewed output
has come across.

Is this patch integrated into the main code base or the latest release?

Regards
Michael

On Mon, Nov 10, 2014 at 7:33 AM, Jens Axboe <axboe@xxxxxxxxx> wrote:
> On 2014-11-10 07:19, Vasily Tarasov wrote:
>>
>> Hi Jens,
>>
>> td->start is used in  __show_running_run_stats() to compute the time
>> that passed since the beginning of the loop (stored in td->start) to
>> the moment when periodical statistics need to be printed. Then
>> td->ts.runtime[] is temporarily updated based on the computed value.
>>
>> In thread_main(), similar actions are taken to update td->ts.runtime[]
>> based on the td->start and the loop's elapsed time. Without the patch,
>> td->start is set in the very beginning of the loop in thread_main().
>> So, it leaves a time window between the end of the current loop and
>> the beginning of the next loop when td->ts.runtime[] is already
>> updated while td->start still stores the start of the previous lop. If
>> __show_running_run_stats() is called during that window - the time can
>> be (temporarily) added twice to td->ts.runtime[].
>>
>> However, if we reset the start time in the end of the loop under the
>> stat_mutex it should not happen.
>>
>> I would agree that having a per-td mutex might be an overkill
>> considering that people usually print statistics periodically with
>> relatively long intervals: 1, 5, 10, 60 seconds.
>
>
> Thanks, I missed the change in addition after IO was done, hence the
> question on ->start. I did commit the patch as-is yesterday, thanks!
>
> --
> Jens Axboe
>
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux