The following changes since commit cc62ea704e4de10eb595b551f29af41266cf225d: Fix a few other static code checker spotted "issues" (2012-02-09 21:17:06 +0100) are available in the git repository at: git://git.kernel.dk/fio.git master Jens Axboe (3): Fix missing ';' before slave disk utilization in terse output Slave aggregate output format fix Change iolog overlap assert to a debug dump diskutil.c | 11 +++++------ iolog.c | 13 ++++++++++++- 2 files changed, 17 insertions(+), 7 deletions(-) --- Diff of recent changes: diff --git a/diskutil.c b/diskutil.c index 4ddaa33..e4b4b8a 100644 --- a/diskutil.c +++ b/diskutil.c @@ -470,7 +470,7 @@ static void show_agg_stats(struct disk_util_agg *agg, int terse) agg->time_in_queue / agg->slavecount, agg->max_util.u.f); } else { - log_info("slaves;%u;%u;%u;%u;%u;%u;%u;%3.2f%%", + log_info(";slaves;%u;%u;%u;%u;%u;%u;%u;%3.2f%%", agg->ios[0] / agg->slavecount, agg->ios[1] / agg->slavecount, agg->merges[0] / agg->slavecount, @@ -540,10 +540,10 @@ void print_disk_util(struct disk_util_stat *dus, struct disk_util_agg *agg, if (util > 100.0) util = 100.0; - if (agg->slavecount) - log_info(" "); - if (!terse) { + if (agg->slavecount) + log_info(" "); + log_info(" %s: ios=%u/%u, merge=%u/%u, ticks=%u/%u, " "in_queue=%u, util=%3.2f%%", dus->name, dus->ios[0], dus->ios[1], @@ -562,8 +562,7 @@ void print_disk_util(struct disk_util_stat *dus, struct disk_util_agg *agg, * If the device has slaves, aggregate the stats for * those slave devices also. */ - if (agg->slavecount) - show_agg_stats(agg, terse); + show_agg_stats(agg, terse); if (!terse) log_info("\n"); diff --git a/iolog.c b/iolog.c index 1d61ba2..c1764ba 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); -- 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