From: Jens Axboe Date: Fri, 10 Feb 2012 20:58:46 +0000 (+0100) Subject: Change iolog overlap assert to a debug dump X-Git-Tag: fio-2.0.4~38 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=86f40280e27474c666fea75cc705caeaf94f6346;ds=sidebyside Change iolog overlap assert to a debug dump Signed-off-by: Jens Axboe --- diff --git a/iolog.c b/iolog.c index 1d61ba23..c1764bac 100644 --- a/iolog.c +++ b/iolog.c @@ -176,6 +176,12 @@ void prune_io_piece_log(struct thread_data *td) } } +static void dump_ipo(struct io_piece *ipo, const char *msg) +{ + printf("%s\n", msg); + printf("\toffset %llu, len %lu, fl %x, ddir %d\n", ipo->offset, ipo->len, ipo->flags, ipo->ddir); +} + /* * log a successful write, so we can unwind the log for verify */ @@ -239,7 +245,12 @@ restart: else if (ipo->offset > __ipo->offset) p = &(*p)->rb_right; else { - assert(ipo->len == __ipo->len); + if (ipo->len != __ipo->len) { + log_err("fio: unexpected ipo overlap!\n"); + log_err("fio: please report this issue.\n"); + dump_ipo(ipo, "ipo"); + dump_ipo(__ipo, "__ipo"); + } td->io_hist_len--; rb_erase(parent, &td->io_hist_tree); remove_trim_entry(td, __ipo);