Apparently they do happen. Log a warning (once) and just discard
them.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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)
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;
FIO_WARN_ZONED_BUG = 4,
FIO_WARN_IOLOG_DROP = 8,
FIO_WARN_FADVISE = 16,
+ FIO_WARN_BTRACE_ZERO = 32,
};
#ifdef FIO_INC_DEBUG