Commit 8a76d550 authored by Artur Paszkiewicz's avatar Artur Paszkiewicz Committed by Jim Harris
Browse files

ftl: I/O tracing



Adds tracepoints in FTL.

Signed-off-by: default avatarArtur Paszkiewicz <artur.paszkiewicz@intel.com>
Signed-off-by: default avatarKozlowski Mateusz <mateusz.kozlowski@intel.com>
Change-Id: I661703e42b8b531822a2ba74a09cdc716daa1c46
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13391


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 1790ee8a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ FTL_SUBDIRS := mngt utils upgrade

C_SRCS = ftl_core.c ftl_init.c ftl_layout.c ftl_debug.c ftl_io.c ftl_sb.c ftl_l2p.c ftl_l2p_flat.c
C_SRCS += ftl_nv_cache.c ftl_band.c ftl_band_ops.c ftl_writer.c ftl_rq.c ftl_reloc.c ftl_l2p_cache.c
C_SRCS += ftl_p2l.c
C_SRCS += ftl_p2l.c ftl_trace.c
C_SRCS += mngt/ftl_mngt.c mngt/ftl_mngt_bdev.c mngt/ftl_mngt_shutdown.c mngt/ftl_mngt_startup.c
C_SRCS += mngt/ftl_mngt_md.c mngt/ftl_mngt_misc.c mngt/ftl_mngt_ioch.c mngt/ftl_mngt_l2p.c
C_SRCS += mngt/ftl_mngt_band.c mngt/ftl_mngt_self_test.c mngt/ftl_mngt_p2l.c
+6 −0
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ ftl_io_cmpl_cb(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg)
		io->status = -EIO;
	}

	ftl_trace_completion(dev, io, FTL_TRACE_COMPLETION_DISK);

	ftl_io_dec_req(io);
	if (ftl_io_done(io)) {
		ftl_io_complete(io);
@@ -129,6 +131,8 @@ ftl_apply_limits(struct spdk_ftl_dev *dev)
			break;
		}
	}

	ftl_trace_limits(dev, dev->limit, dev->num_free);
}

void
@@ -240,6 +244,8 @@ ftl_submit_read(struct ftl_io *io)

		assert(num_blocks > 0);

		ftl_trace_submission(dev, io, addr, num_blocks);

		if (ftl_addr_in_nvc(dev, addr)) {
			rc = ftl_nv_cache_read(io, addr, num_blocks, ftl_io_cmpl_cb, io);
		} else {
+4 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@

#include "ftl_internal.h"
#include "ftl_io.h"
#include "ftl_trace.h"
#include "ftl_nv_cache.h"
#include "ftl_writer.h"
#include "ftl_layout.h"
@@ -86,6 +87,9 @@ struct spdk_ftl_dev {
	/* Band md memory pool */
	struct ftl_mempool		*band_md_pool;

	/* Traces */
	struct ftl_trace		trace;

	/* Statistics */
	struct ftl_stats		stats;

+2 −0
Original line number Diff line number Diff line
@@ -181,7 +181,9 @@ ftl_io_init(struct spdk_io_channel *_ioch, struct ftl_io *io, uint64_t lba, size
	io->iov = iov;
	io->iov_cnt = iov_cnt;
	io->num_blocks = num_blocks;
	io->trace = ftl_trace_alloc_id(dev);

	ftl_trace_lba_io_init(io->dev, io);
	return 0;
}

+4 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#include "spdk/util.h"

#include "ftl_internal.h"
#include "ftl_trace.h"
#include "ftl_l2p.h"
#include "utils/ftl_md.h"

@@ -112,6 +113,9 @@ struct ftl_io {
	/* Done flag */
	bool				done;

	/* Trace group id */
	uint64_t			trace;

	/* Used by retry and write completion queues */
	TAILQ_ENTRY(ftl_io)		queue_entry;

Loading