Commit 8c41c403 authored by Kozlowski Mateusz's avatar Kozlowski Mateusz Committed by Jim Harris
Browse files

ftl: Add md upgrade templates for P2L/Band/Chunk from version 0 to version 1



Since P2L, Band, Chunks start at version 1, adding some code blocking the loading
of version 0 for them.

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


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent c8ab874d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -33,7 +33,8 @@ C_SRCS += mngt/ftl_mngt_md.c mngt/ftl_mngt_misc.c mngt/ftl_mngt_ioch.c mngt/ftl_
C_SRCS += mngt/ftl_mngt_band.c mngt/ftl_mngt_self_test.c mngt/ftl_mngt_p2l.c
C_SRCS += mngt/ftl_mngt_recovery.c mngt/ftl_mngt_upgrade.c
C_SRCS += utils/ftl_conf.c utils/ftl_md.c utils/ftl_mempool.c utils/ftl_bitmap.c
C_SRCS += upgrade/ftl_layout_upgrade.c upgrade/ftl_sb_upgrade.c
C_SRCS += upgrade/ftl_layout_upgrade.c upgrade/ftl_sb_upgrade.c upgrade/ftl_p2l_upgrade.c
C_SRCS += upgrade/ftl_band_upgrade.c upgrade/ftl_chunk_upgrade.c

SPDK_MAP_FILE = $(abspath $(CURDIR)/spdk_ftl.map)

+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ superblock_md_region_overflow(struct spdk_ftl_dev *dev, struct ftl_superblock_md
	}

	/* Make sure the entry doesn't overflow the pointer value (probably overkill to check) */
	if (UINT64_MAX - (uintptr_t)sb_reg < sizeof(*sb_reg)) {
	if (UINT64_MAX - (uintptr_t)sb_reg <= sizeof(*sb_reg)) {
		return true;
	}

+16 −0
Original line number Diff line number Diff line
/*   SPDX-License-Identifier: BSD-3-Clause
 *   Copyright (c) Intel Corporation.
 *   All rights reserved.
 */

#include "ftl_band.h"
#include "ftl_layout_upgrade.h"

struct ftl_region_upgrade_desc band_upgrade_desc[] = {
	[FTL_BAND_VERSION_0] = {
		.verify = ftl_region_upgrade_disabled,
	},
};

SPDK_STATIC_ASSERT(SPDK_COUNTOF(band_upgrade_desc) == FTL_BAND_VERSION_CURRENT,
		   "Missing band region upgrade descriptors");
+16 −0
Original line number Diff line number Diff line
/*   SPDX-License-Identifier: BSD-3-Clause
 *   Copyright (c) Intel Corporation.
 *   All rights reserved.
 */

#include "ftl_nv_cache.h"
#include "ftl_layout_upgrade.h"

struct ftl_region_upgrade_desc nvc_upgrade_desc[] = {
	[FTL_NVC_VERSION_0] = {
		.verify = ftl_region_upgrade_disabled,
	},
};

SPDK_STATIC_ASSERT(SPDK_COUNTOF(nvc_upgrade_desc) == FTL_NVC_VERSION_CURRENT,
		   "Missing NVC region upgrade descriptors");
+32 −8
Original line number Diff line number Diff line
@@ -45,17 +45,41 @@ static struct ftl_layout_upgrade_desc_list layout_upgrade_desc[] = {
		.desc = sb_upgrade_desc,
	},
	[FTL_LAYOUT_REGION_TYPE_L2P] = {},
	[FTL_LAYOUT_REGION_TYPE_BAND_MD] = {},
	[FTL_LAYOUT_REGION_TYPE_BAND_MD_MIRROR] = {},
	[FTL_LAYOUT_REGION_TYPE_BAND_MD] = {
		.count = FTL_BAND_VERSION_CURRENT,
		.desc = band_upgrade_desc,
	},
	[FTL_LAYOUT_REGION_TYPE_BAND_MD_MIRROR] = {
		.count = FTL_BAND_VERSION_CURRENT,
		.desc = band_upgrade_desc,
	},
	[FTL_LAYOUT_REGION_TYPE_VALID_MAP] = {},
	[FTL_LAYOUT_REGION_TYPE_NVC_MD] = {},
	[FTL_LAYOUT_REGION_TYPE_NVC_MD_MIRROR] = {},
	[FTL_LAYOUT_REGION_TYPE_NVC_MD] = {
		.count = FTL_NVC_VERSION_CURRENT,
		.desc = nvc_upgrade_desc,
	},
	[FTL_LAYOUT_REGION_TYPE_NVC_MD_MIRROR] = {
		.count = FTL_NVC_VERSION_CURRENT,
		.desc = nvc_upgrade_desc,
	},
	[FTL_LAYOUT_REGION_TYPE_DATA_NVC] = {},
	[FTL_LAYOUT_REGION_TYPE_DATA_BASE] = {},
	[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_GC] = {},
	[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_GC_NEXT] = {},
	[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_COMP] = {},
	[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_COMP_NEXT] = {},
	[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_GC] = {
		.count = FTL_P2L_VERSION_CURRENT,
		.desc = p2l_upgrade_desc,
	},
	[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_GC_NEXT] = {
		.count = FTL_P2L_VERSION_CURRENT,
		.desc = p2l_upgrade_desc,
	},
	[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_COMP] = {
		.count = FTL_P2L_VERSION_CURRENT,
		.desc = p2l_upgrade_desc,
	},
	[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_COMP_NEXT] = {
		.count = FTL_P2L_VERSION_CURRENT,
		.desc = p2l_upgrade_desc,
	},
	[FTL_LAYOUT_REGION_TYPE_TRIM_MD] = {},
	[FTL_LAYOUT_REGION_TYPE_TRIM_MD_MIRROR] = {},
};
Loading