Lines Matching refs:geo
178 struct nvm_geo *geo = &dev->geo; in pblk_rwb_init() local
184 pgs_in_buffer = max(geo->mw_cunits, geo->ws_opt) * geo->all_luns; in pblk_rwb_init()
198 power_seg_sz = get_count_order(geo->csecs); in pblk_rwb_init()
206 static int pblk_set_addrf_12(struct pblk *pblk, struct nvm_geo *geo, in pblk_set_addrf_12() argument
209 struct nvm_addrf_12 *src = (struct nvm_addrf_12 *)&geo->addrf; in pblk_set_addrf_12()
213 power_len = get_count_order(geo->num_ch); in pblk_set_addrf_12()
214 if (1 << power_len != geo->num_ch) { in pblk_set_addrf_12()
220 power_len = get_count_order(geo->num_lun); in pblk_set_addrf_12()
221 if (1 << power_len != geo->num_lun) { in pblk_set_addrf_12()
249 static int pblk_set_addrf_20(struct nvm_geo *geo, struct nvm_addrf *adst, in pblk_set_addrf_20() argument
252 struct nvm_addrf *src = &geo->addrf; in pblk_set_addrf_20()
254 adst->ch_len = get_count_order(geo->num_ch); in pblk_set_addrf_20()
255 adst->lun_len = get_count_order(geo->num_lun); in pblk_set_addrf_20()
269 udst->sec_stripe = geo->ws_opt; in pblk_set_addrf_20()
270 udst->ch_stripe = geo->num_ch; in pblk_set_addrf_20()
271 udst->lun_stripe = geo->num_lun; in pblk_set_addrf_20()
282 struct nvm_geo *geo = &dev->geo; in pblk_set_addrf() local
285 switch (geo->version) { in pblk_set_addrf()
287 div_u64_rem(geo->clba, pblk->min_write_pgs, &mod); in pblk_set_addrf()
293 pblk->addrf_len = pblk_set_addrf_12(pblk, geo, in pblk_set_addrf()
297 pblk->addrf_len = pblk_set_addrf_20(geo, (void *)&pblk->addrf, in pblk_set_addrf()
302 geo->version); in pblk_set_addrf()
361 struct nvm_geo *geo = &dev->geo; in pblk_core_init() local
374 pblk->min_write_pgs = geo->ws_opt * (geo->csecs / PAGE_SIZE); in pblk_core_init()
375 max_write_ppas = pblk->min_write_pgs * geo->all_luns; in pblk_core_init()
403 ret = mempool_init_slab_pool(&pblk->rec_pool, geo->all_luns, in pblk_core_init()
408 ret = mempool_init_slab_pool(&pblk->r_rq_pool, geo->all_luns, in pblk_core_init()
413 ret = mempool_init_slab_pool(&pblk->e_rq_pool, geo->all_luns, in pblk_core_init()
418 ret = mempool_init_slab_pool(&pblk->w_rq_pool, geo->all_luns, in pblk_core_init()
567 struct nvm_geo *geo = &dev->geo; in pblk_bb_get_meta() local
572 blk_per_lun = geo->num_chk * geo->pln_mode; in pblk_bb_get_meta()
573 nr_blks = blk_per_lun * geo->all_luns; in pblk_bb_get_meta()
579 for (i = 0; i < geo->all_luns; i++) { in pblk_bb_get_meta()
596 struct nvm_geo *geo = &dev->geo; in pblk_chunk_get_meta() local
598 if (geo->version == NVM_OCSSD_SPEC_12) in pblk_chunk_get_meta()
607 struct nvm_geo *geo = &dev->geo; in pblk_luns_init() local
612 if (geo->num_lun < 0) { in pblk_luns_init()
617 pblk->luns = kcalloc(geo->all_luns, sizeof(struct pblk_lun), in pblk_luns_init()
622 for (i = 0; i < geo->all_luns; i++) { in pblk_luns_init()
624 int ch = i % geo->num_ch; in pblk_luns_init()
625 int lun_raw = i / geo->num_ch; in pblk_luns_init()
626 int lunid = lun_raw + ch * geo->num_lun; in pblk_luns_init()
643 struct nvm_geo *geo = &dev->geo; in calc_emeta_len() local
648 sizeof(struct wa_counters), geo->csecs); in calc_emeta_len()
649 lm->emeta_len[1] = lm->emeta_sec[1] * geo->csecs; in calc_emeta_len()
654 geo->csecs); in calc_emeta_len()
655 lm->emeta_len[2] = lm->emeta_sec[2] * geo->csecs; in calc_emeta_len()
658 geo->csecs); in calc_emeta_len()
659 lm->emeta_len[3] = lm->emeta_sec[3] * geo->csecs; in calc_emeta_len()
671 struct nvm_geo *geo = &dev->geo; in pblk_set_provision() local
675 if (geo->op == NVM_TARGET_DEFAULT_OP) in pblk_set_provision()
678 pblk->op = geo->op; in pblk_set_provision()
690 pblk->rl.nr_secs = nr_free_blks * geo->clba; in pblk_set_provision()
694 blk_meta = DIV_ROUND_UP(sec_meta, geo->clba); in pblk_set_provision()
696 pblk->capacity = (provisioned - blk_meta) * geo->clba; in pblk_set_provision()
706 struct nvm_geo *geo = &dev->geo; in pblk_setup_line_meta_12() local
710 chk_per_lun = geo->num_chk * geo->pln_mode; in pblk_setup_line_meta_12()
715 int pos = pblk_ppa_to_pos(geo, rlun->bppa); in pblk_setup_line_meta_12()
733 chunk->cnlb = geo->clba; in pblk_setup_line_meta_12()
750 struct nvm_geo *geo = &dev->geo; in pblk_setup_line_meta_20() local
762 pos = pblk_ppa_to_pos(geo, ppa); in pblk_setup_line_meta_20()
794 struct nvm_geo *geo = &dev->geo; in pblk_setup_line_meta() local
807 if (geo->version == NVM_OCSSD_SPEC_12) in pblk_setup_line_meta()
863 struct nvm_geo *geo = &dev->geo; in pblk_line_mg_init() local
868 l_mg->nr_lines = geo->num_chk; in pblk_line_mg_init()
954 bb_distance = (geo->all_luns) * geo->ws_opt; in pblk_line_mg_init()
956 bitmap_set(l_mg->bb_template, i, geo->ws_opt); in pblk_line_mg_init()
983 struct nvm_geo *geo = &dev->geo; in pblk_line_meta_init() local
988 lm->sec_per_line = geo->clba * geo->all_luns; in pblk_line_meta_init()
989 lm->blk_per_line = geo->all_luns; in pblk_line_meta_init()
990 lm->blk_bitmap_len = BITS_TO_LONGS(geo->all_luns) * sizeof(long); in pblk_line_meta_init()
992 lm->lun_bitmap_len = BITS_TO_LONGS(geo->all_luns) * sizeof(long); in pblk_line_meta_init()
995 lm->meta_distance = (geo->all_luns / 2) * pblk->min_write_pgs; in pblk_line_meta_init()
1002 lm->smeta_sec = i * geo->ws_opt; in pblk_line_meta_init()
1003 lm->smeta_len = lm->smeta_sec * geo->csecs; in pblk_line_meta_init()
1016 lm->emeta_sec[0] = i * geo->ws_opt; in pblk_line_meta_init()
1017 lm->emeta_len[0] = lm->emeta_sec[0] * geo->csecs; in pblk_line_meta_init()
1025 lm->emeta_bb = geo->all_luns > i ? geo->all_luns - i : 0; in pblk_line_meta_init()
1028 if (geo->all_luns > 1) in pblk_line_meta_init()
1030 lm->emeta_sec[0], geo->clba); in pblk_line_meta_init()
1190 struct nvm_geo *geo = &dev->geo; in pblk_init() local
1205 if (!(geo->version == NVM_OCSSD_SPEC_12 || in pblk_init()
1206 geo->version == NVM_OCSSD_SPEC_20)) { in pblk_init()
1208 geo->version); in pblk_init()
1213 if (geo->version == NVM_OCSSD_SPEC_12 && geo->dom & NVM_RSP_L2P) { in pblk_init()
1215 geo->dom); in pblk_init()
1290 tqueue->limits.discard_granularity = geo->clba * geo->csecs; in pblk_init()
1296 geo->all_luns, pblk->l_mg.nr_lines, in pblk_init()