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:
parent
53777de855
commit
6708b70938
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
@ -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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user