From f209b343b636b20ddb3864db4f3634c656fea67d Mon Sep 17 00:00:00 2001 From: Jin Yu Date: Wed, 4 Dec 2019 02:41:04 +0800 Subject: [PATCH] bdev: add the tsc trace Add the tsc trace for the parent bdev_io. Change-Id: Idf5c5df3953fa1697c384a4f83b591584dd30a80 Signed-off-by: Jin Yu Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/476588 Tested-by: SPDK CI Jenkins Reviewed-by: Shuhei Matsumoto Reviewed-by: Jim Harris --- lib/bdev/bdev.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index 1ca0229aa..fc616aca0 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -1751,6 +1751,8 @@ _bdev_io_split(void *_bdev_io) } else { bdev_io->internal.status = SPDK_BDEV_IO_STATUS_FAILED; if (bdev_io->u.bdev.split_outstanding == 0) { + spdk_trace_record_tsc(spdk_get_ticks(), TRACE_BDEV_IO_DONE, 0, 0, + (uintptr_t)bdev_io, 0); TAILQ_REMOVE(&bdev_io->internal.ch->io_submitted, bdev_io, internal.ch_link); bdev_io->internal.cb(bdev_io, false, bdev_io->internal.caller_ctx); } @@ -1781,6 +1783,8 @@ bdev_io_split_done(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg) */ if (parent_io->u.bdev.split_remaining_num_blocks == 0) { assert(parent_io->internal.cb != bdev_io_split_done); + spdk_trace_record_tsc(spdk_get_ticks(), TRACE_BDEV_IO_DONE, 0, 0, + (uintptr_t)parent_io, 0); TAILQ_REMOVE(&parent_io->internal.ch->io_submitted, parent_io, internal.ch_link); parent_io->internal.cb(parent_io, parent_io->internal.status == SPDK_BDEV_IO_STATUS_SUCCESS, parent_io->internal.caller_ctx); @@ -1886,6 +1890,8 @@ bdev_io_submit(struct spdk_bdev_io *bdev_io) if (bdev->split_on_optimal_io_boundary && bdev_io_should_split(bdev_io)) { bdev_io->internal.submit_tsc = spdk_get_ticks(); + spdk_trace_record_tsc(bdev_io->internal.submit_tsc, TRACE_BDEV_IO_START, 0, 0, + (uintptr_t)bdev_io, bdev_io->type); bdev_io_split(NULL, bdev_io); return; }