On 30/08/2013, at 13.55, Juan Casse <jcasse@xxxxxxxxxx> wrote: > >> 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. It's a feature. It allows you to run a write only workload, then run a later identical workload as read only but verifying the previously written data. -- 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