Re: [PATCH v2 1/2] lightnvm: specify target's logical address area

Matias Bjørling
2016-01-27T19:46:34Z

On 01/27/2016 03:58 PM, Wenwei Tao wrote:
> static int nvm_core_init(struct nvm_dev *dev)
> {
>
> ...
> dev->sec_per_pg = grp->fpg_sz / grp->csecs;
> ...
> /* calculated values */
> dev->sec_per_pl = dev->sec_per_pg * dev->nr_planes;
> dev->sec_per_blk = dev->sec_per_pl * dev->pgs_per_blk;
> dev->sec_per_lun = dev->sec_per_blk * dev->blks_per_lun;
> ...
>
> }
>
> static int rrpc_luns_init(struct rrpc *rrpc, int lun_begin, int lun_end)
> {
> ...
> for (i = 0; i < rrpc->nr_luns; i++) {
> ...
> rrpc->nr_pages += dev->sec_per_lun;
> ...
> }
> ...
> }
>
> I prefer rrpc->nr_pages to be the number of pages allocated to rrpc,
> but the code above indeed make me confuse about the sec and page
> thing.
> Hope I'm not misunderstand the code.
> ps: I'm not an expert on flash, if the confusion is caused by lack of
> knowledge about flash, pleas let me know.

rrpc->nr_pages should properly be rrpc->nr_sects, as it is indeed
confusing that it is called a page, when we actually use it for number
of sectors.

Pages refers to 4-64KB units, of which we have 1-16 sectors inside.

I have pushed an update to for-next that renames rrpc->nr_pages to
rrpc->nr_sects. That should hopefully help future readers.

I also updated dev->total_pages to total_secs.

Thanks