lib/ftl: Rename ftl_dev_num_bands() to ftl_get_num_bands()
This patch is part of name refactoring associated with moving FTL to work with zone bdev API. Change-Id: Ia4c6ec7b245600bca895f7802fb7f68c8d0400e4 Signed-off-by: Wojciech Malikowski <wojciech.malikowski@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/479845 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
This commit is contained in:
parent
2c2a005695
commit
0637e2d9be
@ -511,7 +511,7 @@ ftl_band_user_lbks(const struct ftl_band *band)
|
|||||||
struct ftl_band *
|
struct ftl_band *
|
||||||
ftl_band_from_addr(struct spdk_ftl_dev *dev, struct ftl_addr addr)
|
ftl_band_from_addr(struct spdk_ftl_dev *dev, struct ftl_addr addr)
|
||||||
{
|
{
|
||||||
assert(addr.zone_id < ftl_dev_num_bands(dev));
|
assert(addr.zone_id < ftl_get_num_bands(dev));
|
||||||
return &dev->bands[addr.zone_id];
|
return &dev->bands[addr.zone_id];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -264,7 +264,7 @@ ftl_md_write_cb(struct ftl_io *io, void *arg, int status)
|
|||||||
* onto current band and update their counters to allow them to be used for writing
|
* onto current band and update their counters to allow them to be used for writing
|
||||||
* (once they're closed and empty).
|
* (once they're closed and empty).
|
||||||
*/
|
*/
|
||||||
for (id = 0; id < ftl_dev_num_bands(dev); ++id) {
|
for (id = 0; id < ftl_get_num_bands(dev); ++id) {
|
||||||
if (spdk_bit_array_get(band->reloc_bitmap, id)) {
|
if (spdk_bit_array_get(band->reloc_bitmap, id)) {
|
||||||
assert(dev->bands[id].num_reloc_bands > 0);
|
assert(dev->bands[id].num_reloc_bands > 0);
|
||||||
dev->bands[id].num_reloc_bands--;
|
dev->bands[id].num_reloc_bands--;
|
||||||
|
@ -451,7 +451,7 @@ ftl_l2p_get(struct spdk_ftl_dev *dev, uint64_t lba)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
static inline size_t
|
static inline size_t
|
||||||
ftl_dev_num_bands(const struct spdk_ftl_dev *dev)
|
ftl_get_num_bands(const struct spdk_ftl_dev *dev)
|
||||||
{
|
{
|
||||||
return dev->geo.num_chk;
|
return dev->geo.num_chk;
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ ftl_dev_dump_bands(struct spdk_ftl_dev *dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ftl_debug("Bands validity:\n");
|
ftl_debug("Bands validity:\n");
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
if (dev->bands[i].state == FTL_BAND_STATE_FREE &&
|
if (dev->bands[i].state == FTL_BAND_STATE_FREE &&
|
||||||
dev->bands[i].wr_cnt == 0) {
|
dev->bands[i].wr_cnt == 0) {
|
||||||
continue;
|
continue;
|
||||||
@ -146,7 +146,7 @@ ftl_dev_dump_stats(const struct spdk_ftl_dev *dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Count the number of valid LBAs */
|
/* Count the number of valid LBAs */
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
total += dev->bands[i].lba_map.num_vld;
|
total += dev->bands[i].lba_map.num_vld;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,8 +273,8 @@ ftl_dev_init_bands(struct spdk_ftl_dev *dev)
|
|||||||
LIST_INIT(&dev->shut_bands);
|
LIST_INIT(&dev->shut_bands);
|
||||||
|
|
||||||
dev->num_free = 0;
|
dev->num_free = 0;
|
||||||
dev->num_bands = ftl_dev_num_bands(dev);
|
dev->num_bands = ftl_get_num_bands(dev);
|
||||||
dev->bands = calloc(ftl_dev_num_bands(dev), sizeof(*dev->bands));
|
dev->bands = calloc(ftl_get_num_bands(dev), sizeof(*dev->bands));
|
||||||
if (!dev->bands) {
|
if (!dev->bands) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -284,7 +284,7 @@ ftl_dev_init_bands(struct spdk_ftl_dev *dev)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
band = &dev->bands[i];
|
band = &dev->bands[i];
|
||||||
band->id = i;
|
band->id = i;
|
||||||
band->dev = dev;
|
band->dev = dev;
|
||||||
@ -311,7 +311,7 @@ ftl_dev_init_bands(struct spdk_ftl_dev *dev)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
band->reloc_bitmap = spdk_bit_array_create(ftl_dev_num_bands(dev));
|
band->reloc_bitmap = spdk_bit_array_create(ftl_get_num_bands(dev));
|
||||||
if (!band->reloc_bitmap) {
|
if (!band->reloc_bitmap) {
|
||||||
SPDK_ERRLOG("Failed to allocate band relocation bitmap\n");
|
SPDK_ERRLOG("Failed to allocate band relocation bitmap\n");
|
||||||
goto out;
|
goto out;
|
||||||
@ -324,7 +324,7 @@ ftl_dev_init_bands(struct spdk_ftl_dev *dev)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j = 0; j < ftl_dev_num_bands(dev); ++j) {
|
for (j = 0; j < ftl_get_num_bands(dev); ++j) {
|
||||||
band = &dev->bands[j];
|
band = &dev->bands[j];
|
||||||
zone = &band->zone_buf[i];
|
zone = &band->zone_buf[i];
|
||||||
zone->state = ftl_get_zone_state(&info[j]);
|
zone->state = ftl_get_zone_state(&info[j]);
|
||||||
@ -339,7 +339,7 @@ ftl_dev_init_bands(struct spdk_ftl_dev *dev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
band = &dev->bands[i];
|
band = &dev->bands[i];
|
||||||
band->tail_md_addr = ftl_band_tail_md_addr(band);
|
band->tail_md_addr = ftl_band_tail_md_addr(band);
|
||||||
}
|
}
|
||||||
@ -861,7 +861,7 @@ ftl_setup_initial_state(struct spdk_ftl_dev *dev)
|
|||||||
spdk_uuid_generate(&dev->uuid);
|
spdk_uuid_generate(&dev->uuid);
|
||||||
|
|
||||||
dev->num_lbas = 0;
|
dev->num_lbas = 0;
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
dev->num_lbas += ftl_band_num_usable_lbks(&dev->bands[i]);
|
dev->num_lbas += ftl_band_num_usable_lbks(&dev->bands[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1168,7 +1168,7 @@ ftl_dev_free_sync(struct spdk_ftl_dev *dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (dev->bands) {
|
if (dev->bands) {
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
free(dev->bands[i].zone_buf);
|
free(dev->bands[i].zone_buf);
|
||||||
spdk_bit_array_free(&dev->bands[i].lba_map.vld);
|
spdk_bit_array_free(&dev->bands[i].lba_map.vld);
|
||||||
spdk_bit_array_free(&dev->bands[i].reloc_bitmap);
|
spdk_bit_array_free(&dev->bands[i].reloc_bitmap);
|
||||||
|
@ -692,12 +692,12 @@ ftl_reloc_init(struct spdk_ftl_dev *dev)
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
reloc->brelocs = calloc(ftl_dev_num_bands(dev), sizeof(*reloc->brelocs));
|
reloc->brelocs = calloc(ftl_get_num_bands(dev), sizeof(*reloc->brelocs));
|
||||||
if (!reloc->brelocs) {
|
if (!reloc->brelocs) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(reloc->dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(reloc->dev); ++i) {
|
||||||
if (ftl_band_reloc_init(reloc, &reloc->brelocs[i], &dev->bands[i])) {
|
if (ftl_band_reloc_init(reloc, &reloc->brelocs[i], &dev->bands[i])) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
@ -722,7 +722,7 @@ ftl_reloc_free(struct ftl_reloc *reloc)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(reloc->dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(reloc->dev); ++i) {
|
||||||
ftl_band_reloc_free(&reloc->brelocs[i]);
|
ftl_band_reloc_free(&reloc->brelocs[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,14 +175,14 @@ ftl_restore_init(struct spdk_ftl_dev *dev, ftl_restore_fn cb)
|
|||||||
restore->cb = cb;
|
restore->cb = cb;
|
||||||
restore->final_phase = false;
|
restore->final_phase = false;
|
||||||
|
|
||||||
restore->bands = calloc(ftl_dev_num_bands(dev), sizeof(*restore->bands));
|
restore->bands = calloc(ftl_get_num_bands(dev), sizeof(*restore->bands));
|
||||||
if (!restore->bands) {
|
if (!restore->bands) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
STAILQ_INIT(&restore->pad_bands);
|
STAILQ_INIT(&restore->pad_bands);
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
rband = &restore->bands[i];
|
rband = &restore->bands[i];
|
||||||
rband->band = &dev->bands[i];
|
rband->band = &dev->bands[i];
|
||||||
rband->parent = restore;
|
rband->parent = restore;
|
||||||
@ -190,7 +190,7 @@ ftl_restore_init(struct spdk_ftl_dev *dev, ftl_restore_fn cb)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate buffer capable of holding head mds of all bands */
|
/* Allocate buffer capable of holding head mds of all bands */
|
||||||
restore->md_buf = spdk_dma_zmalloc(ftl_dev_num_bands(dev) * ftl_head_md_num_lbks(dev) *
|
restore->md_buf = spdk_dma_zmalloc(ftl_get_num_bands(dev) * ftl_head_md_num_lbks(dev) *
|
||||||
FTL_BLOCK_SIZE, 0, NULL);
|
FTL_BLOCK_SIZE, 0, NULL);
|
||||||
if (!restore->md_buf) {
|
if (!restore->md_buf) {
|
||||||
goto error;
|
goto error;
|
||||||
@ -235,7 +235,7 @@ ftl_restore_check_seq(const struct ftl_restore *restore)
|
|||||||
const struct ftl_band *next_band;
|
const struct ftl_band *next_band;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
rband = &restore->bands[i];
|
rband = &restore->bands[i];
|
||||||
if (rband->md_status != FTL_MD_SUCCESS) {
|
if (rband->md_status != FTL_MD_SUCCESS) {
|
||||||
continue;
|
continue;
|
||||||
@ -256,7 +256,7 @@ ftl_restore_head_valid(struct spdk_ftl_dev *dev, struct ftl_restore *restore, si
|
|||||||
struct ftl_restore_band *rband;
|
struct ftl_restore_band *rband;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
rband = &restore->bands[i];
|
rband = &restore->bands[i];
|
||||||
|
|
||||||
if (rband->md_status != FTL_MD_SUCCESS &&
|
if (rband->md_status != FTL_MD_SUCCESS &&
|
||||||
@ -292,7 +292,7 @@ ftl_restore_head_complete(struct ftl_restore *restore)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Sort bands in sequence number ascending order */
|
/* Sort bands in sequence number ascending order */
|
||||||
qsort(restore->bands, ftl_dev_num_bands(dev), sizeof(struct ftl_restore_band),
|
qsort(restore->bands, ftl_get_num_bands(dev), sizeof(struct ftl_restore_band),
|
||||||
ftl_band_cmp);
|
ftl_band_cmp);
|
||||||
|
|
||||||
if (ftl_restore_check_seq(restore)) {
|
if (ftl_restore_check_seq(restore)) {
|
||||||
@ -332,9 +332,9 @@ ftl_restore_head_md(void *ctx)
|
|||||||
unsigned int num_failed = 0, num_ios;
|
unsigned int num_failed = 0, num_ios;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
restore->num_ios = ftl_dev_num_bands(dev);
|
restore->num_ios = ftl_get_num_bands(dev);
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
rband = &restore->bands[i];
|
rband = &restore->bands[i];
|
||||||
lba_map = &rband->band->lba_map;
|
lba_map = &rband->band->lba_map;
|
||||||
|
|
||||||
@ -416,7 +416,7 @@ ftl_restore_next_band(struct ftl_restore *restore)
|
|||||||
{
|
{
|
||||||
struct ftl_restore_band *rband;
|
struct ftl_restore_band *rband;
|
||||||
|
|
||||||
for (; restore->current < ftl_dev_num_bands(restore->dev); ++restore->current) {
|
for (; restore->current < ftl_get_num_bands(restore->dev); ++restore->current) {
|
||||||
rband = &restore->bands[restore->current];
|
rband = &restore->bands[restore->current];
|
||||||
|
|
||||||
if (spdk_likely(rband->band->num_zones) &&
|
if (spdk_likely(rband->band->num_zones) &&
|
||||||
|
@ -92,7 +92,7 @@ test_init_ftl_band(struct spdk_ftl_dev *dev, size_t id)
|
|||||||
band->zone_buf = calloc(ftl_get_num_punits(dev), sizeof(*band->zone_buf));
|
band->zone_buf = calloc(ftl_get_num_punits(dev), sizeof(*band->zone_buf));
|
||||||
SPDK_CU_ASSERT_FATAL(band->zone_buf != NULL);
|
SPDK_CU_ASSERT_FATAL(band->zone_buf != NULL);
|
||||||
|
|
||||||
band->reloc_bitmap = spdk_bit_array_create(ftl_dev_num_bands(dev));
|
band->reloc_bitmap = spdk_bit_array_create(ftl_get_num_bands(dev));
|
||||||
SPDK_CU_ASSERT_FATAL(band->reloc_bitmap != NULL);
|
SPDK_CU_ASSERT_FATAL(band->reloc_bitmap != NULL);
|
||||||
|
|
||||||
for (size_t i = 0; i < ftl_get_num_punits(dev); ++i) {
|
for (size_t i = 0; i < ftl_get_num_punits(dev); ++i) {
|
||||||
|
@ -209,9 +209,9 @@ setup_reloc(struct spdk_ftl_dev **_dev, struct ftl_reloc **_reloc,
|
|||||||
dev->conf.max_active_relocs = MAX_ACTIVE_RELOCS;
|
dev->conf.max_active_relocs = MAX_ACTIVE_RELOCS;
|
||||||
dev->conf.max_reloc_qdepth = MAX_RELOC_QDEPTH;
|
dev->conf.max_reloc_qdepth = MAX_RELOC_QDEPTH;
|
||||||
|
|
||||||
SPDK_CU_ASSERT_FATAL(ftl_dev_num_bands(dev) > 0);
|
SPDK_CU_ASSERT_FATAL(ftl_get_num_bands(dev) > 0);
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
test_init_ftl_band(dev, i);
|
test_init_ftl_band(dev, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -229,13 +229,13 @@ cleanup_reloc(struct spdk_ftl_dev *dev, struct ftl_reloc *reloc)
|
|||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(reloc->dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(reloc->dev); ++i) {
|
||||||
SPDK_CU_ASSERT_FATAL(reloc->brelocs[i].state == FTL_BAND_RELOC_STATE_INACTIVE);
|
SPDK_CU_ASSERT_FATAL(reloc->brelocs[i].state == FTL_BAND_RELOC_STATE_INACTIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
ftl_reloc_free(reloc);
|
ftl_reloc_free(reloc);
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
test_free_ftl_band(&dev->bands[i]);
|
test_free_ftl_band(&dev->bands[i]);
|
||||||
}
|
}
|
||||||
test_free_ftl_dev(dev);
|
test_free_ftl_dev(dev);
|
||||||
|
@ -111,7 +111,7 @@ setup_wptr_test(struct spdk_ftl_dev **dev, const struct spdk_ocssd_geometry_data
|
|||||||
|
|
||||||
t_dev = test_init_ftl_dev(geo);
|
t_dev = test_init_ftl_dev(geo);
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(t_dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(t_dev); ++i) {
|
||||||
test_init_ftl_band(t_dev, i);
|
test_init_ftl_band(t_dev, i);
|
||||||
t_dev->bands[i].state = FTL_BAND_STATE_CLOSED;
|
t_dev->bands[i].state = FTL_BAND_STATE_CLOSED;
|
||||||
ftl_band_set_state(&t_dev->bands[i], FTL_BAND_STATE_FREE);
|
ftl_band_set_state(&t_dev->bands[i], FTL_BAND_STATE_FREE);
|
||||||
@ -125,7 +125,7 @@ cleanup_wptr_test(struct spdk_ftl_dev *dev)
|
|||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
dev->bands[i].lba_map.segments = NULL;
|
dev->bands[i].lba_map.segments = NULL;
|
||||||
test_free_ftl_band(&dev->bands[i]);
|
test_free_ftl_band(&dev->bands[i]);
|
||||||
}
|
}
|
||||||
@ -148,7 +148,7 @@ test_wptr(void)
|
|||||||
|
|
||||||
xfer_size = dev->xfer_size;
|
xfer_size = dev->xfer_size;
|
||||||
ftl_add_wptr(dev);
|
ftl_add_wptr(dev);
|
||||||
for (i = 0; i < ftl_dev_num_bands(dev); ++i) {
|
for (i = 0; i < ftl_get_num_bands(dev); ++i) {
|
||||||
wptr = LIST_FIRST(&dev->wptr_list);
|
wptr = LIST_FIRST(&dev->wptr_list);
|
||||||
band = wptr->band;
|
band = wptr->band;
|
||||||
ftl_band_set_state(band, FTL_BAND_STATE_OPENING);
|
ftl_band_set_state(band, FTL_BAND_STATE_OPENING);
|
||||||
@ -180,7 +180,7 @@ test_wptr(void)
|
|||||||
|
|
||||||
/* There are no free bands during the last iteration, so */
|
/* There are no free bands during the last iteration, so */
|
||||||
/* there'll be no new wptr allocation */
|
/* there'll be no new wptr allocation */
|
||||||
if (i == (ftl_dev_num_bands(dev) - 1)) {
|
if (i == (ftl_get_num_bands(dev) - 1)) {
|
||||||
CU_ASSERT_EQUAL(rc, -1);
|
CU_ASSERT_EQUAL(rc, -1);
|
||||||
} else {
|
} else {
|
||||||
CU_ASSERT_EQUAL(rc, 0);
|
CU_ASSERT_EQUAL(rc, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user