/kernel/linux/linux-5.10/drivers/lightnvm/ |
D | pblk-init.c | 52 struct pblk *pblk = bio->bi_disk->queue->queuedata; in pblk_submit_bio() local 55 pblk_discard(pblk, bio); in pblk_submit_bio() 67 pblk_submit_read(pblk, bio); in pblk_submit_bio() 73 if (pblk_get_secs(bio) > pblk_rl_max_io(&pblk->rl)) in pblk_submit_bio() 76 pblk_write_to_cache(pblk, bio, PBLK_IOTYPE_USER); in pblk_submit_bio() 88 static size_t pblk_trans_map_size(struct pblk *pblk) in pblk_trans_map_size() argument 92 if (pblk->addrf_len < 32) in pblk_trans_map_size() 95 return entry_size * pblk->capacity; in pblk_trans_map_size() 99 static u32 pblk_l2p_crc(struct pblk *pblk) in pblk_l2p_crc() argument 104 map_size = pblk_trans_map_size(pblk); in pblk_l2p_crc() [all …]
|
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.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 38 ret = pblk_rb_may_write_user(&pblk->rwb, bio, nr_entries, &bpos); in pblk_write_to_cache() 44 pblk_pipeline_stop(pblk); in pblk_write_to_cache() 53 pblk_write_kick(pblk); in pblk_write_to_cache() 64 pos = pblk_rb_wrap_pos(&pblk->rwb, bpos + i); in pblk_write_to_cache() 65 pblk_rb_write_entry_user(&pblk->rwb, data, w_ctx, pos); in pblk_write_to_cache() 70 atomic64_add(nr_entries, &pblk->user_wa); in pblk_write_to_cache() 73 atomic_long_add(nr_entries, &pblk->inflight_writes); in pblk_write_to_cache() 74 atomic_long_add(nr_entries, &pblk->req_writes); in pblk_write_to_cache() 77 pblk_rl_inserted(&pblk->rl, nr_entries); 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 | 36 Enables debug support for pblk. This includes extra checks, more 37 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
|
/kernel/linux/linux-5.10/fs/crypto/ |
D | bio.c | 45 pgoff_t lblk, sector_t pblk, in fscrypt_zeroout_range_inline_crypt() argument 65 pblk << (blockbits - SECTOR_SHIFT); in fscrypt_zeroout_range_inline_crypt() 76 pblk += blocks_this_page; in fscrypt_zeroout_range_inline_crypt() 109 sector_t pblk, unsigned int len) in fscrypt_zeroout_range() argument 126 return fscrypt_zeroout_range_inline_crypt(inode, lblk, pblk, in fscrypt_zeroout_range() 155 bio->bi_iter.bi_sector = pblk << (blockbits - 9); in fscrypt_zeroout_range() 167 pblk++; in fscrypt_zeroout_range()
|
/kernel/linux/linux-5.10/Documentation/driver-api/ |
D | lightnvm-pblk.rst | 1 pblk: Physical Block Device Target 4 pblk implements a fully associative, host-based FTL that exposes a traditional
|
/kernel/linux/linux-5.10/include/trace/events/ |
D | ext4.h | 1714 __field( ext4_fsblk_t, pblk ) 1725 __entry->pblk = map->m_pblk; 1736 show_map_flags(__entry->flags), __entry->lblk, __entry->pblk, 1755 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk), 1757 TP_ARGS(inode, lblk, pblk), 1762 __field( ext4_fsblk_t, pblk ) 1769 __entry->pblk = pblk; 1776 __entry->lblk, __entry->pblk) 1909 __field( ext4_fsblk_t, pblk ) 1920 __entry->pblk = map->m_pblk; [all …]
|
/kernel/linux/linux-5.10/drivers/net/wireless/quantenna/qtnfmac/pcie/ |
D | pearl_pcie.c | 908 int blk, const u8 *pblk, const u8 *fw) in qtnf_ep_fw_send() argument 940 if (pblk >= (fw + size - len)) { in qtnf_ep_fw_send() 941 len = fw + size - pblk; in qtnf_ep_fw_send() 946 memcpy(pdata, pblk, len); in qtnf_ep_fw_send() 959 const u8 *pblk = fw; in qtnf_ep_fw_load() local 972 len = qtnf_ep_fw_send(ps->base.pdev, fw_size, blk, pblk, fw); in qtnf_ep_fw_load() 996 pblk -= ((last_round - 1) * in qtnf_ep_fw_load() 1000 pblk -= QTN_PCIE_FW_DLMASK * blk_size; in qtnf_ep_fw_load() 1013 pblk += len; in qtnf_ep_fw_load()
|
/kernel/linux/linux-5.10/fs/erofs/ |
D | zmap.c | 114 erofs_blk_t pblk; member 182 m->pblk = le32_to_cpu(di->di_u.blkaddr); in legacy_load_cluster_from_disk() 263 m->pblk = le32_to_cpu(*(__le32 *)in) + nblk; in unpack_compacted_index() 461 map->m_pa = blknr_to_addr(m.pblk); in z_erofs_map_blocks_iter()
|
/kernel/linux/linux-5.10/fs/ext4/ |
D | extents_status.h | 131 ext4_lblk_t len, ext4_fsblk_t pblk, 134 ext4_lblk_t len, ext4_fsblk_t pblk,
|
D | extents.c | 369 ext4_lblk_t lblk, ext4_fsblk_t *pblk, in ext4_valid_extent_entries() argument 399 *pblk = ext4_ext_pblock(ext); in ext4_valid_extent_entries() 423 *pblk = ext4_idx_pblock(ext_idx); in ext4_valid_extent_entries() 436 int depth, ext4_fsblk_t pblk, ext4_lblk_t lblk) in __ext4_ext_check() argument 462 if (!ext4_valid_extent_entries(inode, eh, lblk, &pblk, depth)) { in __ext4_ext_check() 483 (unsigned long long) pblk, error_msg, in __ext4_ext_check() 491 #define ext4_ext_check(inode, eh, depth, pblk) \ argument 492 __ext4_ext_check(__func__, __LINE__, (inode), (eh), (depth), (pblk), 0) 531 ext4_fsblk_t pblk; in __read_extent_tree_block() local 536 pblk = ext4_idx_pblock(idx); in __read_extent_tree_block() [all …]
|
D | fast_commit.h | 128 ext4_fsblk_t pblk; member
|
/kernel/linux/linux-5.10/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()
|
/kernel/linux/linux-5.10/arch/x86/mm/ |
D | numa_emulation.c | 219 int nr_nodes, struct numa_memblk *pblk, in split_nodes_size_interleave_uniform() argument 226 if ((!size && !nr_nodes) || (nr_nodes && !pblk)) in split_nodes_size_interleave_uniform() 243 node_set(pblk->nid, physnode_mask); in split_nodes_size_interleave_uniform()
|