bdev: Consolidate two TRACE_BDEV_IO_START calls into a single call

For I/Os controlled by QoS, TRACE_BDEV_IO_DONE is collected after
redirecting to the original thread. Hence, TRACE_BDEV_IO_START should
be collected on the original thread too.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I15411be823450ee5ddaa7582509a7aa068476fc5
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14824
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Shuhei Matsumoto 2022-10-26 06:10:37 +09:00 committed by Tomasz Zawadzki
parent c730f1040e
commit 0ac95a684b

View File

@ -2846,14 +2846,6 @@ _bdev_io_submit(void *ctx)
struct spdk_bdev_io *bdev_io = ctx; struct spdk_bdev_io *bdev_io = ctx;
struct spdk_bdev *bdev = bdev_io->bdev; struct spdk_bdev *bdev = bdev_io->bdev;
struct spdk_bdev_channel *bdev_ch = bdev_io->internal.ch; struct spdk_bdev_channel *bdev_ch = bdev_io->internal.ch;
uint64_t tsc;
tsc = spdk_get_ticks();
bdev_io->internal.submit_tsc = tsc;
spdk_trace_record_tsc(tsc, TRACE_BDEV_IO_START, 0, 0, (uintptr_t)bdev_io,
(uint64_t)bdev_io->type, bdev_io->internal.caller_ctx,
bdev_io->u.bdev.offset_blocks, bdev_io->u.bdev.num_blocks,
spdk_bdev_get_name(bdev));
if (spdk_likely(bdev_ch->flags == 0)) { if (spdk_likely(bdev_ch->flags == 0)) {
bdev_io_do_submit(bdev_ch, bdev_io); bdev_io_do_submit(bdev_ch, bdev_io);
@ -2956,12 +2948,13 @@ bdev_io_submit(struct spdk_bdev_io *bdev_io)
TAILQ_INSERT_TAIL(&ch->io_submitted, bdev_io, internal.ch_link); TAILQ_INSERT_TAIL(&ch->io_submitted, bdev_io, internal.ch_link);
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, (uint64_t)bdev_io->type, bdev_io->internal.caller_ctx,
bdev_io->u.bdev.offset_blocks, bdev_io->u.bdev.num_blocks,
spdk_bdev_get_name(bdev));
if (bdev_io_should_split(bdev_io)) { if (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, (uint64_t)bdev_io->type, bdev_io->internal.caller_ctx,
bdev_io->u.bdev.offset_blocks, bdev_io->u.bdev.num_blocks,
spdk_bdev_get_name(bdev));
bdev_io_split(NULL, bdev_io); bdev_io_split(NULL, bdev_io);
return; return;
} }