Re: V2 [PATCH 1/2] Adds check for numberio during verify phase.

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

 



On Fri, Aug 30, 2013 at 9:13 AM, Jens Axboe <axboe@xxxxxxxxx> wrote:
> On 08/29/2013 06:09 PM, Juan Casse wrote:
>> Jens,
>>
>> fio behaves in a way I was not expecting:
>>
>> Whenever the workload includes writes, fio will do the io and then
>> verify only the blocks that were written; this is good. However, when
>> the workload does only reads, the verify phase will verify the reads.
>>
>> So, the way the code is today, my changes to check numberio will work
>> only for workloads that do writes or read/writes, but not for
>> workloads that do only reads.
>>
>> I track the numberio in the pupulate_verify_io_u() function:
>> io_u->numberio = td->io_issues[io_u->ddir];
>> This function does not get called when doing reads.
>>
>> What are your thoughts?
>
> Just populate it always when verify is enabled?
>
I think fio should not do a verify for read-only workloads because it
cannot be certain of what data to expect if the workload does not
write anything. For workloads that write (i.e., write, rw, randwrite,
randrw), fio only verifies the blocks that it wrote, which is the
right thing to do. I think that verifying the reads is a bug of fio
when doing read-only workloads.

I propose the following easy fix. When verify is enabled for a
read-only workload, exit fio with a message indicating that there is
nothing to verify when nothing is written. This will alert the user of
the conflicting nature of their job file.

The above is for the addition of the check of numberio during the
verify phase. Data retention testing (a different option) is done on a
separate change. Here, when the data_retention_check option is given,
fio will do 2 things differently:
1. fio will do io but not actually write to storage so as not to
overwrite the data already on storage that we want to check.
2. fio will do the verify only once after all the iterations have
completed so that fio knows to check against the last numberio
computed, which is what is expected to be in each block on storage.
Of course, for this to work, the user must give the same workload
(that does writes) that was given in a previous run of fio that wrote
the data to storage.
--
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