diff --git a/lib/ftl/Makefile b/lib/ftl/Makefile index 168975da4..6e914317c 100644 --- a/lib/ftl/Makefile +++ b/lib/ftl/Makefile @@ -17,7 +17,7 @@ CFLAGS += -I. FTL_SUBDIRS := mngt utils -C_SRCS = ftl_core.c ftl_init.c ftl_layout.c +C_SRCS = ftl_core.c ftl_init.c ftl_layout.c ftl_debug.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 C_SRCS += utils/ftl_conf.c utils/ftl_md.c diff --git a/lib/ftl/ftl_core.c b/lib/ftl/ftl_core.c index a3a997019..ffe9c22d0 100644 --- a/lib/ftl/ftl_core.c +++ b/lib/ftl/ftl_core.c @@ -13,6 +13,7 @@ #include "spdk/crc32.h" #include "ftl_core.h" +#include "ftl_debug.h" #include "ftl_internal.h" #include "mngt/ftl_mngt.h" diff --git a/lib/ftl/ftl_debug.c b/lib/ftl/ftl_debug.c new file mode 100644 index 000000000..72db1a768 --- /dev/null +++ b/lib/ftl/ftl_debug.c @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright (c) Intel Corporation. + * All rights reserved. + */ + +#include "spdk/ftl.h" +#include "ftl_debug.h" + +void +ftl_dev_dump_stats(const struct spdk_ftl_dev *dev) +{ + size_t total = 0; + char uuid[SPDK_UUID_STRING_LEN]; + + spdk_uuid_fmt_lower(uuid, sizeof(uuid), &dev->conf.uuid); + FTL_NOTICELOG(dev, "\n"); + FTL_NOTICELOG(dev, "device UUID: %s\n", uuid); + FTL_NOTICELOG(dev, "total valid LBAs: %zu\n", total); +} diff --git a/lib/ftl/ftl_debug.h b/lib/ftl/ftl_debug.h new file mode 100644 index 000000000..7af6ea05f --- /dev/null +++ b/lib/ftl/ftl_debug.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright (c) Intel Corporation. + * All rights reserved. + */ + +#ifndef FTL_DEBUG_H +#define FTL_DEBUG_H + +#include "ftl_internal.h" +#include "ftl_core.h" + +void ftl_dev_dump_stats(const struct spdk_ftl_dev *dev); + +#endif /* FTL_DEBUG_H */ diff --git a/lib/ftl/ftl_init.c b/lib/ftl/ftl_init.c index 92f6157b8..41af8d9ad 100644 --- a/lib/ftl/ftl_init.c +++ b/lib/ftl/ftl_init.c @@ -16,6 +16,7 @@ #include "spdk/config.h" #include "ftl_core.h" +#include "ftl_debug.h" #include "ftl_utils.h" #include "mngt/ftl_mngt.h" diff --git a/lib/ftl/mngt/ftl_mngt_misc.c b/lib/ftl/mngt/ftl_mngt_misc.c index 1aa423ef4..e4371098f 100644 --- a/lib/ftl/mngt/ftl_mngt_misc.c +++ b/lib/ftl/mngt/ftl_mngt_misc.c @@ -8,6 +8,7 @@ #include "ftl_mngt.h" #include "ftl_mngt_steps.h" #include "ftl_internal.h" +#include "ftl_debug.h" void ftl_mngt_check_conf(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) @@ -60,3 +61,10 @@ ftl_mngt_finalize_startup(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mng ftl_mngt_next_step(mngt); } + +void +ftl_mngt_dump_stats(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) +{ + ftl_dev_dump_stats(dev); + ftl_mngt_next_step(mngt); +} diff --git a/lib/ftl/mngt/ftl_mngt_shutdown.c b/lib/ftl/mngt/ftl_mngt_shutdown.c index 917ac0ed8..a72cbb138 100644 --- a/lib/ftl/mngt/ftl_mngt_shutdown.c +++ b/lib/ftl/mngt/ftl_mngt_shutdown.c @@ -15,6 +15,10 @@ static const struct ftl_mngt_process_desc desc_shutdown = { .name = "FTL shutdown", .error_handler = ftl_mngt_rollback_device, .steps = { + { + .name = "Dump statistics", + .action = ftl_mngt_dump_stats + }, { .name = "Rollback FTL device", .action = ftl_mngt_rollback_device diff --git a/lib/ftl/mngt/ftl_mngt_steps.h b/lib/ftl/mngt/ftl_mngt_steps.h index a3cc98d64..a91366938 100644 --- a/lib/ftl/mngt/ftl_mngt_steps.h +++ b/lib/ftl/mngt/ftl_mngt_steps.h @@ -30,4 +30,6 @@ void ftl_mngt_deinit_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) void ftl_mngt_rollback_device(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); +void ftl_mngt_dump_stats(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); + #endif /* FTL_MNGT_STEPS_H */