From 19a8064ef4a2a826ee06ed061af970d1737cf840 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 4 Jul 2018 14:59:18 -0600 Subject: [PATCH 1/1] blktrace: just ignore zero byte traces Apparently they do happen. Log a warning (once) and just discard them. Signed-off-by: Jens Axboe --- blktrace.c | 11 ++++++++++- debug.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/blktrace.c b/blktrace.c index cda111a3..36a71809 100644 --- a/blktrace.c +++ b/blktrace.c @@ -303,6 +303,11 @@ static void handle_trace_discard(struct thread_data *td, queue_io_piece(td, ipo); } +static void dump_trace(struct blk_io_trace *t) +{ + log_err("blktrace: ignoring zero byte trace: action=%x\n", t->action); +} + static void handle_trace_fs(struct thread_data *td, struct blk_io_trace *t, unsigned long long ttime, unsigned long *ios, unsigned int *rw_bs) @@ -323,7 +328,11 @@ static void handle_trace_fs(struct thread_data *td, struct blk_io_trace *t, return; } - assert(t->bytes); + if (!t->bytes) { + if (!fio_did_warn(FIO_WARN_BTRACE_ZERO)) + dump_trace(t); + return; + } if (t->bytes > rw_bs[rw]) rw_bs[rw] = t->bytes; diff --git a/debug.h b/debug.h index 8a8cf871..e5e80400 100644 --- a/debug.h +++ b/debug.h @@ -42,6 +42,7 @@ enum { FIO_WARN_ZONED_BUG = 4, FIO_WARN_IOLOG_DROP = 8, FIO_WARN_FADVISE = 16, + FIO_WARN_BTRACE_ZERO = 32, }; #ifdef FIO_INC_DEBUG -- 2.25.1