The following piece of code (from iolog.c) suggests that fio should only verify writes. /* * log a successful write, so we can unwind the log for verify */ void log_io_piece(struct thread_data *td, struct io_u *io_u) { . . . ipo->numberio = io_u->numberio; . . . } On Thu, Aug 29, 2013 at 5:19 PM, Juan Casse <jcasse@xxxxxxxxxx> wrote: > I forgot to include the job file used in the test. Here it is. > > [global] > readwrite=read > randrepeat=1 > size=64k > bs=8k > ioengine=sync > norandommap > loops=2 > verify=meta > verify_pattern=0xffffffffffffffff > verify_dump=1 > continue_on_error=verify > > [jcasse_job] > > > On Thu, Aug 29, 2013 at 5:09 PM, Juan Casse <jcasse@xxxxxxxxxx> 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? >> >> >> On Thu, Aug 29, 2013 at 1:59 PM, Jens Axboe <axboe@xxxxxxxxx> wrote: >>> On 08/29/2013 11:33 AM, Juan Casse wrote: >>>> Currently, fio checks the block offset number in a block's header during >>>> the verify phase. >>>> We add a check for io number (numberio) to detect stale blocks. >>> >>> Any reason we can't do this unconditionally? >>> >>> -- >>> 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