summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
3f199b0)
Causes fio to exit after a single block verification failure, instead of
checking the remainder as well.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
width of the pattern, fio will fill 1/2/3/4 bytes of the
buffer at the time. The verify_pattern cannot be larger than
a 32-bit quantity.
width of the pattern, fio will fill 1/2/3/4 bytes of the
buffer at the time. The verify_pattern cannot be larger than
a 32-bit quantity.
+
+verify_fatal=int Normally fio will keep checking the entire contents
+ before quitting on a block verification failure. If this
+ option is set, fio will exit the job on the first observed
+ failure.
stonewall Wait for preceeding jobs in the job file to exit, before
starting this one. Can be used to insert serialization
stonewall Wait for preceeding jobs in the job file to exit, before
starting this one. Can be used to insert serialization
unsigned int verify_offset;
unsigned int verify_pattern;
unsigned int verify_pattern_bytes;
unsigned int verify_offset;
unsigned int verify_pattern;
unsigned int verify_pattern_bytes;
+ unsigned int verify_fatal;
unsigned int use_thread;
unsigned int unlink;
unsigned int do_disk_util;
unsigned int use_thread;
unsigned int unlink;
unsigned int do_disk_util;
.help = "Fill pattern for IO buffers",
.parent = "verify",
},
.help = "Fill pattern for IO buffers",
.parent = "verify",
},
+ {
+ .name = "verify_fatal",
+ .type = FIO_OPT_INT,
+ .off1 = td_var_offset(verify_fatal),
+ .def = "0",
+ .help = "Exit on a single verify failure, don't continue",
+ .parent = "verify",
+ },
{
.name = "write_iolog",
.type = FIO_OPT_STR_STORE,
{
.name = "write_iolog",
.type = FIO_OPT_STR_STORE,
if (td->o.verify_interval)
hdr_inc = td->o.verify_interval;
if (td->o.verify_interval)
hdr_inc = td->o.verify_interval;
for (p = io_u->buf; p < io_u->buf + io_u->buflen; p += hdr_inc, hdr_num++) {
for (p = io_u->buf; p < io_u->buf + io_u->buflen; p += hdr_inc, hdr_num++) {
+ if (ret && td->o.verify_fatal) {
+ td->terminate = 1;
+ break;
+ }
hdr_size = __hdr_size(td->o.verify);
if (td->o.verify_offset)
memswp(p, p + td->o.verify_offset, hdr_size);
hdr_size = __hdr_size(td->o.verify);
if (td->o.verify_offset)
memswp(p, p + td->o.verify_offset, hdr_size);
}
static void fill_meta(struct verify_header *hdr, struct thread_data *td,
}
static void fill_meta(struct verify_header *hdr, struct thread_data *td,