Home
last modified time | relevance | path

Searched refs:pblk (Results 1 – 25 of 35) sorted by relevance

12

/kernel/linux/linux-5.10/drivers/lightnvm/
Dpblk-init.c52 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 …]
Dpblk-core.c29 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 …]
Dpblk.h126 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 …]
Dpblk-write.c22 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 …]
Dpblk-recovery.c24 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 …]
Dpblk-gc.c31 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 …]
Dpblk-sysfs.c24 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 …]
Dpblk-read.c28 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 …]
Dpblk-map.c22 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 …]
Dpblk-cache.c21 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 …]
DMakefile7 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
Dpblk-rb.c75 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 …]
Dpblk-rl.c111 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 …]
DKconfig36 Enables debug support for pblk. This includes extra checks, more
37 vocal error messages, and extra tracking fields in the pblk sysfs
Dpblk-trace.h3 #define TRACE_SYSTEM pblk
144 #define TRACE_INCLUDE_FILE pblk-trace
/kernel/linux/linux-5.10/fs/crypto/
Dbio.c45 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/
Dlightnvm-pblk.rst1 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/
Dext4.h1714 __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/
Dpearl_pcie.c908 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/
Dzmap.c114 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/
Dextents_status.h131 ext4_lblk_t len, ext4_fsblk_t pblk,
134 ext4_lblk_t len, ext4_fsblk_t pblk,
Dextents.c369 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 …]
Dfast_commit.h128 ext4_fsblk_t pblk; member
/kernel/linux/linux-5.10/drivers/xen/
Dxen-acpi-processor.c333 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/
Dnuma_emulation.c219 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()

12