Lines Matching refs:dev
22 ftl_l2p_init(struct spdk_ftl_dev *dev) in ftl_l2p_init() argument
24 TAILQ_INIT(&dev->l2p_deferred_pins); in ftl_l2p_init()
25 return FTL_L2P_OP(init)(dev); in ftl_l2p_init()
29 ftl_l2p_deinit(struct spdk_ftl_dev *dev) in ftl_l2p_deinit() argument
31 FTL_L2P_OP(deinit)(dev); in ftl_l2p_deinit()
45 ftl_l2p_pin(struct spdk_ftl_dev *dev, uint64_t lba, uint64_t count, ftl_l2p_pin_cb cb, void *cb_ctx, in ftl_l2p_pin() argument
49 FTL_L2P_OP(pin)(dev, pin_ctx); in ftl_l2p_pin()
53 ftl_l2p_unpin(struct spdk_ftl_dev *dev, uint64_t lba, uint64_t count) in ftl_l2p_unpin() argument
55 FTL_L2P_OP(unpin)(dev, lba, count); in ftl_l2p_unpin()
59 ftl_l2p_pin_skip(struct spdk_ftl_dev *dev, ftl_l2p_pin_cb cb, void *cb_ctx, in ftl_l2p_pin_skip() argument
63 cb(dev, 0, pin_ctx); in ftl_l2p_pin_skip()
67 ftl_l2p_set(struct spdk_ftl_dev *dev, uint64_t lba, ftl_addr addr) in ftl_l2p_set() argument
69 FTL_L2P_OP(set)(dev, lba, addr); in ftl_l2p_set()
73 ftl_l2p_get(struct spdk_ftl_dev *dev, uint64_t lba) in ftl_l2p_get() argument
75 return FTL_L2P_OP(get)(dev, lba); in ftl_l2p_get()
79 ftl_l2p_clear(struct spdk_ftl_dev *dev, ftl_l2p_cb cb, void *cb_ctx) in ftl_l2p_clear() argument
81 FTL_L2P_OP(clear)(dev, cb, cb_ctx); in ftl_l2p_clear()
85 ftl_l2p_restore(struct spdk_ftl_dev *dev, ftl_l2p_cb cb, void *cb_ctx) in ftl_l2p_restore() argument
87 FTL_L2P_OP(restore)(dev, cb, cb_ctx); in ftl_l2p_restore()
91 ftl_l2p_persist(struct spdk_ftl_dev *dev, ftl_l2p_cb cb, void *cb_ctx) in ftl_l2p_persist() argument
93 FTL_L2P_OP(persist)(dev, cb, cb_ctx); in ftl_l2p_persist()
97 ftl_l2p_trim(struct spdk_ftl_dev *dev, ftl_l2p_cb cb, void *cb_ctx) in ftl_l2p_trim() argument
99 FTL_L2P_OP(trim)(dev, cb, cb_ctx); in ftl_l2p_trim()
103 ftl_l2p_process(struct spdk_ftl_dev *dev) in ftl_l2p_process() argument
107 pin_ctx = TAILQ_FIRST(&dev->l2p_deferred_pins); in ftl_l2p_process()
109 TAILQ_REMOVE(&dev->l2p_deferred_pins, pin_ctx, link); in ftl_l2p_process()
110 FTL_L2P_OP(pin)(dev, pin_ctx); in ftl_l2p_process()
113 FTL_L2P_OP(process)(dev); in ftl_l2p_process()
117 ftl_l2p_is_halted(struct spdk_ftl_dev *dev) in ftl_l2p_is_halted() argument
119 if (!TAILQ_EMPTY(&dev->l2p_deferred_pins)) { in ftl_l2p_is_halted()
123 return FTL_L2P_OP(is_halted)(dev); in ftl_l2p_is_halted()
127 ftl_l2p_resume(struct spdk_ftl_dev *dev) in ftl_l2p_resume() argument
129 return FTL_L2P_OP(resume)(dev); in ftl_l2p_resume()
133 ftl_l2p_halt(struct spdk_ftl_dev *dev) in ftl_l2p_halt() argument
135 return FTL_L2P_OP(halt)(dev); in ftl_l2p_halt()
139 get_trim_seq_id(struct spdk_ftl_dev *dev, uint64_t lba) in get_trim_seq_id() argument
141 struct ftl_md *md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_TRIM_MD]; in get_trim_seq_id()
143 uint64_t page_no = lba / dev->layout.l2p.lbas_in_page; in get_trim_seq_id()
149 ftl_l2p_update_cache(struct spdk_ftl_dev *dev, uint64_t lba, ftl_addr new_addr, ftl_addr old_addr) in ftl_l2p_update_cache() argument
158 assert(ftl_check_core_thread(dev)); in ftl_l2p_update_cache()
160 assert(ftl_addr_in_nvc(dev, new_addr)); in ftl_l2p_update_cache()
162 current_addr = ftl_l2p_get(dev, lba); in ftl_l2p_update_cache()
168 && ftl_addr_in_nvc(dev, current_addr))) { in ftl_l2p_update_cache()
170 current_chunk = ftl_nv_cache_get_chunk_from_addr(dev, current_addr); in ftl_l2p_update_cache()
171 new_chunk = ftl_nv_cache_get_chunk_from_addr(dev, new_addr); in ftl_l2p_update_cache()
191 ftl_nv_cache_set_addr(dev, lba, new_addr); in ftl_l2p_update_cache()
192 ftl_l2p_set(dev, lba, new_addr); in ftl_l2p_update_cache()
193 ftl_invalidate_addr(dev, current_addr); in ftl_l2p_update_cache()
197 uint64_t trim_seq_id = get_trim_seq_id(dev, lba); in ftl_l2p_update_cache()
198 uint64_t new_seq_id = ftl_nv_cache_get_chunk_from_addr(dev, new_addr)->md->seq_id; in ftl_l2p_update_cache()
208 ftl_nv_cache_set_addr(dev, lba, new_addr); in ftl_l2p_update_cache()
209 ftl_l2p_set(dev, lba, new_addr); in ftl_l2p_update_cache()
214 ftl_l2p_update_base(struct spdk_ftl_dev *dev, uint64_t lba, ftl_addr new_addr, ftl_addr old_addr) in ftl_l2p_update_base() argument
222 assert(ftl_check_core_thread(dev)); in ftl_l2p_update_base()
225 assert(!ftl_addr_in_nvc(dev, new_addr)); in ftl_l2p_update_base()
227 current_addr = ftl_l2p_get(dev, lba); in ftl_l2p_update_base()
233 ftl_band_set_addr(ftl_band_from_addr(dev, new_addr), lba, new_addr); in ftl_l2p_update_base()
234 ftl_l2p_set(dev, lba, new_addr); in ftl_l2p_update_base()
240 ftl_invalidate_addr(dev, new_addr); in ftl_l2p_update_base()
243 ftl_invalidate_addr(dev, old_addr); in ftl_l2p_update_base()
247 ftl_l2p_pin_complete(struct spdk_ftl_dev *dev, int status, struct ftl_l2p_pin_ctx *pin_ctx) in ftl_l2p_pin_complete() argument
250 TAILQ_INSERT_TAIL(&dev->l2p_deferred_pins, pin_ctx, link); in ftl_l2p_pin_complete()
252 pin_ctx->cb(dev, status, pin_ctx); in ftl_l2p_pin_complete()