/drivers/lightnvm/ |
D | pblk-core.c | 29 struct pblk *pblk = line_ws->pblk; in pblk_line_mark_bb() local 30 struct nvm_tgt_dev *dev = pblk->dev; in pblk_line_mark_bb() 39 line = pblk_ppa_to_line(pblk, *ppa); in pblk_line_mark_bb() 42 pblk_err(pblk, "failed to mark bb, line:%d, pos:%d\n", in pblk_line_mark_bb() 47 mempool_free(line_ws, &pblk->gen_ws_pool); in pblk_line_mark_bb() 50 static void pblk_mark_bb(struct pblk *pblk, struct pblk_line *line, in pblk_mark_bb() argument 53 struct nvm_tgt_dev *dev = pblk->dev; in pblk_mark_bb() 58 pblk_debug(pblk, "erase failed: line:%d, pos:%d\n", line->id, pos); in pblk_mark_bb() 59 atomic_long_inc(&pblk->erase_failed); in pblk_mark_bb() 63 pblk_err(pblk, "attempted to erase bb: line:%d, pos:%d\n", in pblk_mark_bb() [all …]
|
D | pblk-init.c | 52 struct pblk *pblk = q->queuedata; in pblk_make_rq() local 55 pblk_discard(pblk, bio); in pblk_make_rq() 67 pblk_submit_read(pblk, bio); in pblk_make_rq() 73 if (pblk_get_secs(bio) > pblk_rl_max_io(&pblk->rl)) in pblk_make_rq() 76 pblk_write_to_cache(pblk, bio, PBLK_IOTYPE_USER); in pblk_make_rq() 82 static size_t pblk_trans_map_size(struct pblk *pblk) in pblk_trans_map_size() argument 86 if (pblk->addrf_len < 32) in pblk_trans_map_size() 89 return entry_size * pblk->capacity; in pblk_trans_map_size() 93 static u32 pblk_l2p_crc(struct pblk *pblk) in pblk_l2p_crc() argument 98 map_size = pblk_trans_map_size(pblk); in pblk_l2p_crc() [all …]
|
D | pblk.h | 126 struct pblk *pblk; member 133 struct pblk *pblk; member 433 struct pblk *pblk; member 592 struct pblk { struct 702 struct pblk *pblk; argument 711 #define pblk_err(pblk, fmt, ...) \ argument 712 pr_err("pblk %s: " fmt, pblk->disk->disk_name, ##__VA_ARGS__) 713 #define pblk_info(pblk, fmt, ...) \ argument 714 pr_info("pblk %s: " fmt, pblk->disk->disk_name, ##__VA_ARGS__) 715 #define pblk_warn(pblk, fmt, ...) \ argument [all …]
|
D | pblk-write.c | 22 static unsigned long pblk_end_w_bio(struct pblk *pblk, struct nvm_rq *rqd, in pblk_end_w_bio() argument 26 struct pblk_rb *rwb = &pblk->rwb; in pblk_end_w_bio() 53 pblk_bio_free_pages(pblk, rqd->bio, c_ctx->nr_valid, in pblk_end_w_bio() 57 atomic_long_add(rqd->nr_ppas, &pblk->sync_writes); in pblk_end_w_bio() 60 ret = pblk_rb_sync_advance(&pblk->rwb, c_ctx->nr_valid); in pblk_end_w_bio() 63 pblk_free_rqd(pblk, rqd, PBLK_WRITE); in pblk_end_w_bio() 68 static unsigned long pblk_end_queued_w_bio(struct pblk *pblk, in pblk_end_queued_w_bio() argument 73 return pblk_end_w_bio(pblk, rqd, c_ctx); in pblk_end_queued_w_bio() 76 static void pblk_complete_write(struct pblk *pblk, struct nvm_rq *rqd, in pblk_complete_write() argument 84 atomic_long_sub(c_ctx->nr_valid, &pblk->inflight_writes); in pblk_complete_write() [all …]
|
D | pblk-recovery.c | 24 int pblk_recov_check_emeta(struct pblk *pblk, struct line_emeta *emeta_buf) in pblk_recov_check_emeta() argument 28 crc = pblk_calc_emeta_crc(pblk, emeta_buf); in pblk_recov_check_emeta() 38 static int pblk_recov_l2p_from_emeta(struct pblk *pblk, struct pblk_line *line) in pblk_recov_l2p_from_emeta() argument 40 struct nvm_tgt_dev *dev = pblk->dev; in pblk_recov_l2p_from_emeta() 42 struct pblk_line_meta *lm = &pblk->lm; in pblk_recov_l2p_from_emeta() 50 lba_list = emeta_to_lbas(pblk, emeta_buf); in pblk_recov_l2p_from_emeta() 54 data_start = pblk_line_smeta_start(pblk, line) + lm->smeta_sec; in pblk_recov_l2p_from_emeta() 62 ppa = addr_to_gen_ppa(pblk, i, line->id); in pblk_recov_l2p_from_emeta() 80 pblk_update_map(pblk, le64_to_cpu(lba_list[i]), ppa); in pblk_recov_l2p_from_emeta() 85 pblk_err(pblk, "line %d - inconsistent lba list(%llu/%llu)\n", in pblk_recov_l2p_from_emeta() [all …]
|
D | pblk-gc.c | 31 static int pblk_gc_write(struct pblk *pblk) in pblk_gc_write() argument 33 struct pblk_gc *gc = &pblk->gc; in pblk_gc_write() 48 pblk_write_gc_to_cache(pblk, gc_rq); in pblk_gc_write() 62 void pblk_put_line_back(struct pblk *pblk, struct pblk_line *line) in pblk_put_line_back() argument 64 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_put_line_back() 71 trace_pblk_line_state(pblk_disk_name(pblk), line->id, in pblk_put_line_back() 80 move_list = pblk_line_gc_list(pblk, line); in pblk_put_line_back() 90 struct pblk *pblk = gc_rq_ws->pblk; in pblk_gc_line_ws() local 91 struct pblk_gc *gc = &pblk->gc; in pblk_gc_line_ws() 99 ret = pblk_submit_read_gc(pblk, gc_rq); in pblk_gc_line_ws() [all …]
|
D | pblk-sysfs.c | 24 static ssize_t pblk_sysfs_luns_show(struct pblk *pblk, char *page) in pblk_sysfs_luns_show() argument 26 struct nvm_tgt_dev *dev = pblk->dev; in pblk_sysfs_luns_show() 35 rlun = &pblk->luns[i]; in pblk_sysfs_luns_show() 51 static ssize_t pblk_sysfs_rate_limiter(struct pblk *pblk, char *page) in pblk_sysfs_rate_limiter() argument 57 free_blocks = pblk_rl_nr_free_blks(&pblk->rl); in pblk_sysfs_rate_limiter() 58 free_user_blocks = pblk_rl_nr_user_free_blks(&pblk->rl); in pblk_sysfs_rate_limiter() 59 rb_user_max = pblk->rl.rb_user_max; in pblk_sysfs_rate_limiter() 60 rb_user_cnt = atomic_read(&pblk->rl.rb_user_cnt); in pblk_sysfs_rate_limiter() 61 rb_gc_max = pblk->rl.rb_gc_max; in pblk_sysfs_rate_limiter() 62 rb_gc_cnt = atomic_read(&pblk->rl.rb_gc_cnt); in pblk_sysfs_rate_limiter() [all …]
|
D | pblk-read.c | 28 static int pblk_read_from_cache(struct pblk *pblk, struct bio *bio, in pblk_read_from_cache() argument 37 return pblk_rb_copy_to_bio(&pblk->rwb, bio, lba, ppa); in pblk_read_from_cache() 40 static int pblk_read_ppalist_rq(struct pblk *pblk, struct nvm_rq *rqd, in pblk_read_ppalist_rq() argument 48 nr_secs = pblk_lookup_l2p_seq(pblk, rqd->ppa_list, blba, rqd->nr_ppas, in pblk_read_ppalist_rq() 55 struct pblk_sec_meta *meta = pblk_get_meta(pblk, meta_list, i); in pblk_read_ppalist_rq() 68 if (!pblk_read_from_cache(pblk, bio, lba, in pblk_read_ppalist_rq() 91 atomic_long_inc(&pblk->cache_reads); in pblk_read_ppalist_rq() 98 if (pblk_io_aligned(pblk, nr_secs)) in pblk_read_ppalist_rq() 102 atomic_long_add(nr_secs, &pblk->inflight_reads); in pblk_read_ppalist_rq() 109 static void pblk_read_check_seq(struct pblk *pblk, struct nvm_rq *rqd, in pblk_read_check_seq() argument [all …]
|
D | pblk-map.c | 22 static int pblk_map_page_data(struct pblk *pblk, unsigned int sentry, in pblk_map_page_data() argument 28 struct pblk_line *line = pblk_line_get_data(pblk); in pblk_map_page_data() 33 int nr_secs = pblk->min_write_pgs; in pblk_map_page_data() 45 line = pblk_line_replace_data(pblk); in pblk_map_page_data() 46 pblk_line_close_meta(pblk, prev_line); in pblk_map_page_data() 49 pblk_pipeline_stop(pblk); in pblk_map_page_data() 56 lba_list = emeta_to_lbas(pblk, emeta->buf); in pblk_map_page_data() 58 paddr = pblk_alloc_page(pblk, line, nr_secs); in pblk_map_page_data() 61 struct pblk_sec_meta *meta = pblk_get_meta(pblk, meta_list, i); in pblk_map_page_data() 65 ppa_list[i] = addr_to_gen_ppa(pblk, paddr, line->id); in pblk_map_page_data() [all …]
|
D | pblk-cache.c | 21 void pblk_write_to_cache(struct pblk *pblk, struct bio *bio, in pblk_write_to_cache() argument 24 struct request_queue *q = pblk->dev->q; in pblk_write_to_cache() 33 &pblk->disk->part0); in pblk_write_to_cache() 40 ret = pblk_rb_may_write_user(&pblk->rwb, bio, nr_entries, &bpos); in pblk_write_to_cache() 46 pblk_pipeline_stop(pblk); in pblk_write_to_cache() 55 pblk_write_kick(pblk); in pblk_write_to_cache() 66 pos = pblk_rb_wrap_pos(&pblk->rwb, bpos + i); in pblk_write_to_cache() 67 pblk_rb_write_entry_user(&pblk->rwb, data, w_ctx, pos); in pblk_write_to_cache() 72 atomic64_add(nr_entries, &pblk->user_wa); in pblk_write_to_cache() 75 atomic_long_add(nr_entries, &pblk->inflight_writes); in pblk_write_to_cache() [all …]
|
D | Makefile | 7 obj-$(CONFIG_NVM_PBLK) += pblk.o 8 pblk-y := pblk-init.o pblk-core.o pblk-rb.o \ 9 pblk-write.o pblk-cache.o pblk-read.o \ 10 pblk-gc.o pblk-recovery.o pblk-map.o \ 11 pblk-rl.o pblk-sysfs.o
|
D | pblk-rb.c | 75 struct pblk *pblk = container_of(rb, struct pblk, rwb); in pblk_rb_init() local 165 pblk_rl_init(&pblk->rl, rb->nr_entries, threshold); in pblk_rb_init() 239 struct pblk *pblk = container_of(rb, struct pblk, rwb); in __pblk_rb_update_l2p() local 259 pblk_update_map_dev(pblk, w_ctx->lba, w_ctx->ppa, in __pblk_rb_update_l2p() 262 line = pblk_ppa_to_line(pblk, w_ctx->ppa); in __pblk_rb_update_l2p() 269 pblk_rl_out(&pblk->rl, user_io, gc_io); in __pblk_rb_update_l2p() 340 struct pblk *pblk = container_of(rb, struct pblk, rwb); in pblk_rb_write_entry_user() local 353 pblk_update_map_cache(pblk, w_ctx.lba, entry->cacheline); in pblk_rb_write_entry_user() 364 struct pblk *pblk = container_of(rb, struct pblk, rwb); in pblk_rb_write_entry_gc() local 377 if (!pblk_update_map_gc(pblk, w_ctx.lba, entry->cacheline, line, paddr)) in pblk_rb_write_entry_gc() [all …]
|
D | pblk-rl.c | 111 struct pblk *pblk = container_of(rl, struct pblk, rl); in __pblk_rl_update_rates() local 149 pblk_gc_should_start(pblk); in __pblk_rl_update_rates() 151 pblk_gc_should_stop(pblk); in __pblk_rl_update_rates() 212 struct pblk *pblk = container_of(rl, struct pblk, rl); in pblk_rl_init() local 213 struct nvm_tgt_dev *dev = pblk->dev; in pblk_rl_init() 215 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_rl_init() 216 struct pblk_line_meta *lm = &pblk->lm; in pblk_rl_init() 224 rl->high = pblk->op_blks - blk_meta - lm->blk_per_line; in pblk_rl_init() 227 rl->rsv_blocks = pblk_get_min_chks(pblk); in pblk_rl_init() 241 rl->rb_max_io = budget - pblk->min_write_pgs_data - threshold; in pblk_rl_init() [all …]
|
D | Kconfig | 35 Enables debug support for pblk. This includes extra checks, more 36 vocal error messages, and extra tracking fields in the pblk sysfs
|
D | pblk-trace.h | 3 #define TRACE_SYSTEM pblk 144 #define TRACE_INCLUDE_FILE pblk-trace
|
/drivers/net/wireless/quantenna/qtnfmac/pcie/ |
D | pearl_pcie.c | 866 int blk, const u8 *pblk, const u8 *fw) in qtnf_ep_fw_send() argument 898 if (pblk >= (fw + size - len)) { in qtnf_ep_fw_send() 899 len = fw + size - pblk; in qtnf_ep_fw_send() 904 memcpy(pdata, pblk, len); in qtnf_ep_fw_send() 917 const u8 *pblk = fw; in qtnf_ep_fw_load() local 930 len = qtnf_ep_fw_send(ps->base.pdev, fw_size, blk, pblk, fw); in qtnf_ep_fw_load() 954 pblk -= ((last_round - 1) * in qtnf_ep_fw_load() 958 pblk -= QTN_PCIE_FW_DLMASK * blk_size; in qtnf_ep_fw_load() 971 pblk += len; in qtnf_ep_fw_load()
|
/drivers/xen/ |
D | xen-acpi-processor.c | 333 acpi_io_address pblk = 0; in read_acpi_id() local 345 pblk = object.processor.pblk_address; in read_acpi_id() 372 pr_debug("ACPI CPU%u w/ PBLK:0x%lx\n", acpi_id, (unsigned long)pblk); in read_acpi_id() 383 if (!pblk) in read_acpi_id()
|
/drivers/acpi/ |
D | processor_idle.c | 221 if (!pr->pblk) in acpi_processor_get_power_info_fadt() 239 pr->power.states[ACPI_STATE_C2].address = pr->pblk + 4; in acpi_processor_get_power_info_fadt() 240 pr->power.states[ACPI_STATE_C3].address = pr->pblk + 5; in acpi_processor_get_power_info_fadt()
|
D | acpi_processor.c | 345 pr->pblk = object.processor.pblk_address; in acpi_processor_get_info()
|