system to make sure that the written data is also
correctly read back.
+verifysort=bool If set, fio will sort written verify blocks when it deems
+ it faster to read them back in a sorted manner. This is
+ often the case when overwriting an existing file, since
+ the blocks are already laid out in the file system. You
+ can ignore this option unless doing huge amounts of really
+ fast IO where the red-black tree sorting CPU time becomes
+ significant.
+
stonewall Wait for preceeding jobs in the job file to exit, before
starting this one. Can be used to insert serialization
points in the job file. A stone wall also implies starting
if (td->o.unlink)
f->flags |= FIO_FILE_UNLINK;
+ f->flags |= FIO_FILE_NOSORT;
err = create_file(td, f);
if (err)
break;
FIO_FILE_UNLINK = 1 << 1, /* unlink on close */
FIO_FILE_CLOSING = 1 << 2, /* file being closed */
FIO_FILE_EXISTS = 1 << 3, /* no need to create */
+ FIO_FILE_NOSORT = 1 << 4, /* don't sort verify blocks */
};
/*
unsigned int end_fsync;
unsigned int sync_io;
unsigned int verify;
+ unsigned int verifysort;
unsigned int use_thread;
unsigned int unlink;
unsigned int do_disk_util;
* For both these cases, just reading back data in the order we
* wrote it out is the fastest.
*/
- if (!td_random(td) || !td->o.overwrite) {
+ if (!td_random(td) || !td->o.overwrite ||
+ (io_u->file->flags & FIO_FILE_NOSORT)) {
INIT_LIST_HEAD(&ipo->list);
list_add_tail(&ipo->list, &td->io_hist_list);
return;
},
},
},
+ {
+ .name = "verifysort",
+ .type = FIO_OPT_BOOL,
+ .off1 = td_var_offset(verifysort),
+ .help = "Sort written verify blocks for read back",
+ .def = "1",
+ },
{
.name = "write_iolog",
.type = FIO_OPT_STR_STORE,