Lines Matching refs:geo

185 	struct nvm_geo *geo = &dev->geo;  in pblk_rwb_init()  local
189 threshold = geo->mw_cunits * geo->all_luns; in pblk_rwb_init()
190 pgs_in_buffer = (max(geo->mw_cunits, geo->ws_opt) + geo->ws_opt) in pblk_rwb_init()
191 * geo->all_luns; in pblk_rwb_init()
198 return pblk_rb_init(&pblk->rwb, buffer_size, threshold, geo->csecs); in pblk_rwb_init()
201 static int pblk_set_addrf_12(struct pblk *pblk, struct nvm_geo *geo, in pblk_set_addrf_12() argument
204 struct nvm_addrf_12 *src = (struct nvm_addrf_12 *)&geo->addrf; in pblk_set_addrf_12()
208 power_len = get_count_order(geo->num_ch); in pblk_set_addrf_12()
209 if (1 << power_len != geo->num_ch) { in pblk_set_addrf_12()
215 power_len = get_count_order(geo->num_lun); in pblk_set_addrf_12()
216 if (1 << power_len != geo->num_lun) { in pblk_set_addrf_12()
244 static int pblk_set_addrf_20(struct nvm_geo *geo, struct nvm_addrf *adst, in pblk_set_addrf_20() argument
247 struct nvm_addrf *src = &geo->addrf; in pblk_set_addrf_20()
249 adst->ch_len = get_count_order(geo->num_ch); in pblk_set_addrf_20()
250 adst->lun_len = get_count_order(geo->num_lun); in pblk_set_addrf_20()
264 udst->sec_stripe = geo->ws_opt; in pblk_set_addrf_20()
265 udst->ch_stripe = geo->num_ch; in pblk_set_addrf_20()
266 udst->lun_stripe = geo->num_lun; in pblk_set_addrf_20()
277 struct nvm_geo *geo = &dev->geo; in pblk_set_addrf() local
280 switch (geo->version) { in pblk_set_addrf()
282 div_u64_rem(geo->clba, pblk->min_write_pgs, &mod); in pblk_set_addrf()
288 pblk->addrf_len = pblk_set_addrf_12(pblk, geo, in pblk_set_addrf()
292 pblk->addrf_len = pblk_set_addrf_20(geo, (void *)&pblk->addrf, in pblk_set_addrf()
297 geo->version); in pblk_set_addrf()
379 struct nvm_geo *geo = &dev->geo; in pblk_core_init() local
392 pblk->min_write_pgs = geo->ws_opt; in pblk_core_init()
394 max_write_ppas = pblk->min_write_pgs * geo->all_luns; in pblk_core_init()
397 queue_max_hw_sectors(dev->q) / (geo->csecs >> SECTOR_SHIFT)); in pblk_core_init()
400 pblk->oob_meta_size = geo->sos; in pblk_core_init()
450 ret = mempool_init_slab_pool(&pblk->rec_pool, geo->all_luns, in pblk_core_init()
455 ret = mempool_init_slab_pool(&pblk->r_rq_pool, geo->all_luns, in pblk_core_init()
460 ret = mempool_init_slab_pool(&pblk->e_rq_pool, geo->all_luns, in pblk_core_init()
465 ret = mempool_init_slab_pool(&pblk->w_rq_pool, geo->all_luns, in pblk_core_init()
594 struct nvm_geo *geo = &dev->geo; in pblk_luns_init() local
599 if (geo->num_lun < 0) { in pblk_luns_init()
604 pblk->luns = kcalloc(geo->all_luns, sizeof(struct pblk_lun), in pblk_luns_init()
609 for (i = 0; i < geo->all_luns; i++) { in pblk_luns_init()
611 int ch = i % geo->num_ch; in pblk_luns_init()
612 int lun_raw = i / geo->num_ch; in pblk_luns_init()
613 int lunid = lun_raw + ch * geo->num_lun; in pblk_luns_init()
630 struct nvm_geo *geo = &dev->geo; in calc_emeta_len() local
635 sizeof(struct wa_counters), geo->csecs); in calc_emeta_len()
636 lm->emeta_len[1] = lm->emeta_sec[1] * geo->csecs; in calc_emeta_len()
641 geo->csecs); in calc_emeta_len()
642 lm->emeta_len[2] = lm->emeta_sec[2] * geo->csecs; in calc_emeta_len()
645 geo->csecs); in calc_emeta_len()
646 lm->emeta_len[3] = lm->emeta_sec[3] * geo->csecs; in calc_emeta_len()
658 struct nvm_geo *geo = &dev->geo; in pblk_set_provision() local
663 if (geo->op == NVM_TARGET_DEFAULT_OP) in pblk_set_provision()
666 pblk->op = geo->op; in pblk_set_provision()
674 if (geo->op != NVM_TARGET_DEFAULT_OP) { in pblk_set_provision()
698 blk_meta = DIV_ROUND_UP(sec_meta, geo->clba); in pblk_set_provision()
700 clba = (geo->clba / pblk->min_write_pgs) * pblk->min_write_pgs_data; in pblk_set_provision()
713 struct nvm_geo *geo = &dev->geo; in pblk_setup_line_meta_chk() local
725 pos = pblk_ppa_to_pos(geo, ppa); in pblk_setup_line_meta_chk()
824 struct nvm_geo *geo = &dev->geo; in pblk_line_mg_init() local
829 l_mg->nr_lines = geo->num_chk; in pblk_line_mg_init()
911 bb_distance = (geo->all_luns) * geo->ws_opt; in pblk_line_mg_init()
913 bitmap_set(l_mg->bb_template, i, geo->ws_opt); in pblk_line_mg_init()
941 struct nvm_geo *geo = &dev->geo; in pblk_line_meta_init() local
946 lm->sec_per_line = geo->clba * geo->all_luns; in pblk_line_meta_init()
947 lm->blk_per_line = geo->all_luns; in pblk_line_meta_init()
948 lm->blk_bitmap_len = BITS_TO_LONGS(geo->all_luns) * sizeof(long); in pblk_line_meta_init()
950 lm->lun_bitmap_len = BITS_TO_LONGS(geo->all_luns) * sizeof(long); in pblk_line_meta_init()
953 lm->meta_distance = (geo->all_luns / 2) * pblk->min_write_pgs; in pblk_line_meta_init()
960 lm->smeta_sec = i * geo->ws_opt; in pblk_line_meta_init()
961 lm->smeta_len = lm->smeta_sec * geo->csecs; in pblk_line_meta_init()
974 lm->emeta_sec[0] = i * geo->ws_opt; in pblk_line_meta_init()
975 lm->emeta_len[0] = lm->emeta_sec[0] * geo->csecs; in pblk_line_meta_init()
983 lm->emeta_bb = geo->all_luns > i ? geo->all_luns - i : 0; in pblk_line_meta_init()
986 if (geo->all_luns > 1) in pblk_line_meta_init()
988 lm->emeta_sec[0], geo->clba); in pblk_line_meta_init()
1152 struct nvm_geo *geo = &dev->geo; in pblk_init() local
1168 if (!(geo->version == NVM_OCSSD_SPEC_12 || in pblk_init()
1169 geo->version == NVM_OCSSD_SPEC_20)) { in pblk_init()
1171 geo->version); in pblk_init()
1176 if (geo->ext) { in pblk_init()
1252 tqueue->limits.discard_granularity = geo->clba * geo->csecs; in pblk_init()
1258 geo->all_luns, pblk->l_mg.nr_lines, in pblk_init()