lib/ftl: fix the unclear PAGE_SIZE

In lib/ftl PAGE_SIZE is used in many places. But I think there's no relation with
the host memory PAGE_SIZE.
In most changes, PAGE_SIZE is replaced by FTL_BLOCK_SIZE for ftl block size.
In ftl/ftl-anm.c, PAGE_SIZE is replaced by 4096 for alignment.

Change-Id: I72e7c65c83b9fe1a4e50944dc5d90b9459b4e593
Signed-off-by: Richael Zhuang <richael.zhuang@arm.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/455347
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Wojciech Malikowski <wojciech.malikowski@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
This commit is contained in:
Richael Zhuang 2019-05-22 15:06:07 +08:00 committed by Ben Walker
parent 53777de855
commit 6708b70938
3 changed files with 11 additions and 11 deletions

View File

@ -314,7 +314,7 @@ ftl_anm_ctrlr_alloc(struct spdk_ftl_dev *dev)
} }
ctrlr->log = spdk_dma_zmalloc(sizeof(*ctrlr->log) * FTL_ANM_LOG_ENTRIES, ctrlr->log = spdk_dma_zmalloc(sizeof(*ctrlr->log) * FTL_ANM_LOG_ENTRIES,
PAGE_SIZE, NULL); 4096, NULL);
if (!ctrlr->log) { if (!ctrlr->log) {
goto free_ctrlr; goto free_ctrlr;
} }

View File

@ -228,7 +228,7 @@ ftl_retrieve_punit_chunk_info(struct spdk_ftl_dev *dev, const struct ftl_punit *
struct spdk_ocssd_chunk_information_entry *info) struct spdk_ocssd_chunk_information_entry *info)
{ {
uint32_t i = 0; uint32_t i = 0;
unsigned int num_entries = PAGE_SIZE / sizeof(*info); unsigned int num_entries = FTL_BLOCK_SIZE / sizeof(*info);
struct ftl_ppa chunk_ppa = punit->start_ppa; struct ftl_ppa chunk_ppa = punit->start_ppa;
for (i = 0; i < dev->geo.num_chk; i += num_entries, chunk_ppa.chk += num_entries) { for (i = 0; i < dev->geo.num_chk; i += num_entries, chunk_ppa.chk += num_entries) {

View File

@ -108,7 +108,7 @@ ftl_io_advance(struct ftl_io *io, size_t lbk_cnt)
if (io->iov_cnt != 0) { if (io->iov_cnt != 0) {
while (lbk_left > 0) { while (lbk_left > 0) {
assert(io->iov_pos < io->iov_cnt); assert(io->iov_pos < io->iov_cnt);
iov_lbks = iov[io->iov_pos].iov_len / PAGE_SIZE; iov_lbks = iov[io->iov_pos].iov_len / FTL_BLOCK_SIZE;
if (io->iov_off + lbk_left < iov_lbks) { if (io->iov_off + lbk_left < iov_lbks) {
io->iov_off += lbk_left; io->iov_off += lbk_left;
@ -133,7 +133,7 @@ ftl_iovec_num_lbks(struct iovec *iov, size_t iov_cnt)
size_t lbks = 0, i = 0; size_t lbks = 0, i = 0;
for (; i < iov_cnt; ++i) { for (; i < iov_cnt; ++i) {
lbks += iov[i].iov_len / PAGE_SIZE; lbks += iov[i].iov_len / FTL_BLOCK_SIZE;
} }
return lbks; return lbks;
@ -143,17 +143,17 @@ void *
ftl_io_iovec_addr(struct ftl_io *io) ftl_io_iovec_addr(struct ftl_io *io)
{ {
assert(io->iov_pos < io->iov_cnt); assert(io->iov_pos < io->iov_cnt);
assert(io->iov_off * PAGE_SIZE < ftl_io_iovec(io)[io->iov_pos].iov_len); assert(io->iov_off * FTL_BLOCK_SIZE < ftl_io_iovec(io)[io->iov_pos].iov_len);
return (char *)ftl_io_iovec(io)[io->iov_pos].iov_base + return (char *)ftl_io_iovec(io)[io->iov_pos].iov_base +
io->iov_off * PAGE_SIZE; io->iov_off * FTL_BLOCK_SIZE;
} }
size_t size_t
ftl_io_iovec_len_left(struct ftl_io *io) ftl_io_iovec_len_left(struct ftl_io *io)
{ {
struct iovec *iov = ftl_io_iovec(io); struct iovec *iov = ftl_io_iovec(io);
return iov[io->iov_pos].iov_len / PAGE_SIZE - io->iov_off; return iov[io->iov_pos].iov_len / FTL_BLOCK_SIZE - io->iov_off;
} }
static void static void
@ -169,7 +169,7 @@ _ftl_io_init_iovec(struct ftl_io *io, const struct iovec *iov, size_t iov_cnt, s
if (lbk_cnt == 0) { if (lbk_cnt == 0) {
for (iov_off = 0; iov_off < iov_cnt; ++iov_off) { for (iov_off = 0; iov_off < iov_cnt; ++iov_off) {
io->lbk_cnt += iov[iov_off].iov_len / PAGE_SIZE; io->lbk_cnt += iov[iov_off].iov_len / FTL_BLOCK_SIZE;
} }
} }
} }
@ -240,11 +240,11 @@ ftl_io_shrink_iovec(struct ftl_io *io, size_t lbk_cnt)
assert(io->pos == 0 && io->iov_pos == 0 && io->iov_off == 0); assert(io->pos == 0 && io->iov_pos == 0 && io->iov_off == 0);
for (; iov_off < io->iov_cnt; ++iov_off) { for (; iov_off < io->iov_cnt; ++iov_off) {
size_t num_iov = io->iov[iov_off].iov_len / PAGE_SIZE; size_t num_iov = io->iov[iov_off].iov_len / FTL_BLOCK_SIZE;
size_t num_left = lbk_cnt - lbk_off; size_t num_left = lbk_cnt - lbk_off;
if (num_iov >= num_left) { if (num_iov >= num_left) {
io->iov[iov_off].iov_len = num_left * PAGE_SIZE; io->iov[iov_off].iov_len = num_left * FTL_BLOCK_SIZE;
io->iov_cnt = iov_off + 1; io->iov_cnt = iov_off + 1;
io->lbk_cnt = lbk_cnt; io->lbk_cnt = lbk_cnt;
break; break;
@ -275,7 +275,7 @@ ftl_io_init_internal(const struct ftl_io_init_opts *opts)
struct spdk_ftl_dev *dev = opts->dev; struct spdk_ftl_dev *dev = opts->dev;
struct iovec iov = { struct iovec iov = {
.iov_base = opts->data, .iov_base = opts->data,
.iov_len = opts->lbk_cnt * PAGE_SIZE .iov_len = opts->lbk_cnt * FTL_BLOCK_SIZE
}; };
if (!io) { if (!io) {