Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com> Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com> Change-Id: I6edef1e8e822f8428dff5f5f5da2df923191f6fc Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13328 Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
66 lines
1.4 KiB
C
66 lines
1.4 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright (c) Intel Corporation.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
#include "spdk/ftl.h"
|
|
#include "ftl_debug.h"
|
|
#include "ftl_band.h"
|
|
|
|
/* TODO: Switch to INFOLOG instead, we can control the printing via spdk_log_get_flag */
|
|
#if defined(DEBUG)
|
|
|
|
static const char *ftl_band_state_str[] = {
|
|
"free",
|
|
"prep",
|
|
"opening",
|
|
"open",
|
|
"full",
|
|
"closing",
|
|
"closed",
|
|
"max"
|
|
};
|
|
|
|
void
|
|
ftl_dev_dump_bands(struct spdk_ftl_dev *dev)
|
|
{
|
|
uint64_t i;
|
|
|
|
if (!dev->bands) {
|
|
return;
|
|
}
|
|
|
|
FTL_NOTICELOG(dev, "Bands validity:\n");
|
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
|
FTL_NOTICELOG(dev, " Band %3zu: %8zu / %zu \twr_cnt: %"PRIu64
|
|
"\tstate: %s\n",
|
|
i + 1, dev->bands[i].p2l_map.num_valid,
|
|
ftl_band_user_blocks(&dev->bands[i]),
|
|
dev->bands[i].md->wr_cnt,
|
|
ftl_band_state_str[dev->bands[i].md->state]);
|
|
}
|
|
}
|
|
|
|
#endif /* defined(DEBUG) */
|
|
|
|
void
|
|
ftl_dev_dump_stats(const struct spdk_ftl_dev *dev)
|
|
{
|
|
uint64_t i, total = 0;
|
|
char uuid[SPDK_UUID_STRING_LEN];
|
|
|
|
if (!dev->bands) {
|
|
return;
|
|
}
|
|
|
|
/* Count the number of valid LBAs */
|
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
|
total += dev->bands[i].p2l_map.num_valid;
|
|
}
|
|
|
|
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);
|
|
}
|