Home
last modified time | relevance | path

Searched refs:md (Results 1 – 25 of 63) sorted by relevance

123

/spdk/lib/ftl/utils/
H A Dftl_md.c15 static void io_submit(struct ftl_md *md);
16 static void io_done(struct ftl_md *md);
19 has_mirror(struct ftl_md *md) in has_mirror() argument
21 if (md->region) { in has_mirror()
22 if (md->region->mirror_type != FTL_LAYOUT_REGION_TYPE_INVALID) { in has_mirror()
23 return md->mirror_enabled; in has_mirror()
31 ftl_md_get_mirror(struct ftl_md *md) in ftl_md_get_mirror() argument
33 if (has_mirror(md)) { in ftl_md_get_mirror()
34 return md->dev->layout.md[m in ftl_md_get_mirror()
47 xfer_size(struct ftl_md * md) xfer_size() argument
53 ftl_md_create_spdk_buf(struct ftl_md * md,uint64_t vss_blksz) ftl_md_create_spdk_buf() argument
66 ftl_md_create_heap(struct ftl_md * md,uint64_t vss_blksz) ftl_md_create_heap() argument
78 ftl_md_destroy_spdk_buf(struct ftl_md * md) ftl_md_destroy_spdk_buf() argument
88 ftl_md_destroy_heap(struct ftl_md * md) ftl_md_destroy_heap() argument
104 ftl_md_setup_obj(struct ftl_md * md,int flags,const char * name) ftl_md_setup_obj() argument
130 ftl_md_invalidate_shm(struct ftl_md * md) ftl_md_invalidate_shm() argument
139 ftl_md_create_shm(struct ftl_md * md,uint64_t vss_blksz,int flags) ftl_md_create_shm() argument
243 ftl_md_destroy_shm(struct ftl_md * md,int flags) ftl_md_destroy_shm() argument
281 struct ftl_md *md; ftl_md_create() local
332 struct ftl_md md = { 0 }; ftl_md_unlink() local
346 ftl_md_destroy(struct ftl_md * md,int flags) ftl_md_destroy() argument
360 ftl_md_free_buf(struct ftl_md * md,int flags) ftl_md_free_buf() argument
379 ftl_md_get_buffer(struct ftl_md * md) ftl_md_get_buffer() argument
385 ftl_md_get_buffer_size(struct ftl_md * md) ftl_md_get_buffer_size() argument
416 ftl_md_get_vss_buffer(struct ftl_md * md) ftl_md_get_vss_buffer() argument
422 io_cleanup(struct ftl_md * md) io_cleanup() argument
434 struct ftl_md *md = arg; exception() local
456 struct ftl_md *md = arg; read_write_blocks_cb() local
534 struct ftl_md *md = _md; read_write_blocks() local
573 io_submit(struct ftl_md * md) io_submit() argument
597 io_can_start(struct ftl_md * md) io_can_start() argument
621 io_prepare(struct ftl_md * md,enum ftl_md_ops op) io_prepare() argument
655 io_init(struct ftl_md * md,enum ftl_md_ops op) io_init() argument
669 persist_entry_lba(struct ftl_md * md,uint64_t start_entry) persist_entry_lba() argument
678 struct ftl_md *md = ctx->md; persist_entry_cb() local
697 ftl_md_persist_entry_write_blocks(struct ftl_md_io_entry_ctx * ctx,struct ftl_md * md,spdk_bdev_io_wait_cb retry_fn) ftl_md_persist_entry_write_blocks() argument
734 struct ftl_md *md = ctx->md; ftl_md_persist_entry_primary() local
759 ftl_md_persist_entries(struct ftl_md * md,uint64_t start_entry,uint64_t num_entries,void * buffer,void * vss_buffer,ftl_md_io_entry_cb cb,void * cb_arg,struct ftl_md_io_entry_ctx * ctx) ftl_md_persist_entries() argument
788 struct ftl_md *md = ctx->md; read_entry_cb() local
815 ftl_md_read_entry_read_blocks(struct ftl_md_io_entry_ctx * ctx,struct ftl_md * md,spdk_bdev_io_wait_cb retry_fn) ftl_md_read_entry_read_blocks() argument
847 ftl_md_read_entry(struct ftl_md * md,uint64_t start_entry,void * buffer,void * vss_buffer,ftl_md_io_entry_cb cb,void * cb_arg,struct ftl_md_io_entry_ctx * ctx) ftl_md_read_entry() argument
873 persist_mirror_cb(struct spdk_ftl_dev * dev,struct ftl_md * md,int status) persist_mirror_cb() argument
892 ftl_md_persist(struct ftl_md * md) ftl_md_persist() argument
916 restore_mirror_cb(struct spdk_ftl_dev * dev,struct ftl_md * md,int status) restore_mirror_cb() argument
939 restore_sync_cb(struct spdk_ftl_dev * dev,struct ftl_md * md,int status) restore_sync_cb() argument
954 restore_done(struct ftl_md * md) restore_done() argument
997 io_done(struct ftl_md * md) io_done() argument
1016 ftl_md_restore(struct ftl_md * md) ftl_md_restore() argument
1026 pattern_prepare(struct ftl_md * md,int data_pattern,union ftl_md_vss * vss_pattern) pattern_prepare() argument
1066 ftl_md_clear(struct ftl_md * md,int data_pattern,union ftl_md_vss * vss_pattern) ftl_md_clear() argument
1096 ftl_md_get_region(struct ftl_md * md) ftl_md_get_region() argument
1102 ftl_md_set_region(struct ftl_md * md,const struct ftl_layout_region * region) ftl_md_set_region() argument
[all...]
H A Dftl_md.h18 typedef void (*ftl_md_cb)(struct spdk_ftl_dev *dev, struct ftl_md *md, int status);
64 void *md; member
82 /* Total size of SHM object (data + md) */
108 struct ftl_md *md; member
142 SPDK_STATIC_ASSERT(sizeof(union ftl_md_vss) == FTL_MD_VSS_SZ, "Invalid md vss size");
207 * @param md Metadata to be destroyed
210 void ftl_md_destroy(struct ftl_md *md, int flags);
215 * @param md Metadata object
218 void ftl_md_free_buf(struct ftl_md *md, int flags);
224 * @param md Th
[all...]
/spdk/lib/ftl/
H A Dftl_l2p_flat.c16 return dev->layout.md[FTL_LAYOUT_REGION_TYPE_L2P]; in get_l2p_md()
59 md_cb(struct spdk_ftl_dev *dev, struct ftl_md *md, int status) in md_cb() argument
61 ftl_l2p_cb cb = md->owner.private; in md_cb()
62 void *cb_ctx = md->owner.cb_ctx; in md_cb()
71 struct ftl_md *md; in ftl_l2p_flat_clear() local
76 md = get_l2p_md(dev); in ftl_l2p_flat_clear()
77 md->cb = md_cb; in ftl_l2p_flat_clear()
78 md->owner.cb_ctx = cb_ctx; in ftl_l2p_flat_clear()
79 md->owner.private = cb; in ftl_l2p_flat_clear()
80 ftl_md_persist(md); in ftl_l2p_flat_clear()
[all …]
H A Dftl_nv_cache.c33 struct ftl_md *md = nv_cache->md; in nvc_validate_md() local
34 void *buffer = ftl_md_get_buffer(md); in nvc_validate_md()
35 uint64_t size = ftl_md_get_buffer_size(md); in nvc_validate_md()
72 /* Map pool element holds the whole tail md */ in nv_cache_p2l_map_pool_elem_size()
128 nvc_scrub_clear_cb(struct spdk_ftl_dev *dev, struct ftl_md *md, int status) in nvc_scrub_clear_cb() argument
130 struct nvc_scrub_ctx *scrub_ctx = md->owner.cb_ctx; in nvc_scrub_clear_cb()
220 struct ftl_nv_cache_chunk_md *md; in ftl_nv_cache_init() local
226 nv_cache->md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_NVC_M in ftl_nv_cache_init()
586 struct ftl_md *md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_NVC_MD]; ftl_chunk_persist_free_state() local
739 union ftl_md_vss *md = entry->io_md; compaction_process_pin_lba() local
1078 union ftl_md_vss *md = entry->io_md; compaction_process_finish_read() local
1874 struct ftl_md *md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_NVC_MD]; ftl_chunk_open() local
1937 struct ftl_md *md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_NVC_MD]; chunk_map_write_cb() local
2005 struct ftl_md *md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_NVC_MD]; restore_fill_p2l_map_cb() local
2055 union ftl_md_vss *md; read_open_chunk_cb() local
2317 restore_chunk_state_cb(struct spdk_ftl_dev * dev,struct ftl_md * md,int status) restore_chunk_state_cb() argument
2384 struct ftl_md *md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_NVC_MD]; ftl_mngt_nv_cache_restore_chunk_state() local
2609 ftl_nv_cache_chunk_md_initialize(struct ftl_nv_cache_chunk_md * md) ftl_nv_cache_chunk_md_initialize() argument
[all...]
H A Dftl_p2l.c21 struct ftl_md *md; member
45 ckpt->md = dev->layout.md[region_type]; in ftl_p2l_ckpt_new()
186 map_page = ftl_md_get_buffer(ckpt->md); in ftl_p2l_ckpt_issue()
205 page->metadata.p2l_ckpt.seq_id = band->md->seq; in ftl_p2l_ckpt_issue()
215 ftl_md_persist_entries(ckpt->md, p2l_map_page_no, ckpt->pages_per_xfer, map_page, NULL, in ftl_p2l_ckpt_issue()
267 if ((band->md->state == FTL_BAND_STATE_OPEN || in ftl_get_band_from_region()
268 band->md->state == FTL_BAND_STATE_FULL) && in ftl_get_band_from_region()
269 band->md->p2l_md_region == type) { in ftl_get_band_from_region()
316 map_page = ftl_md_get_buffer(ckpt->md); in ftl_mngt_persist_band_p2l()
328 page->metadata.p2l_ckpt.seq_id = band->md->seq; in ftl_mngt_persist_band_p2l()
[all …]
H A Dftl_band.c40 assert(band->md->state == FTL_BAND_STATE_CLOSED || in ftl_band_free_p2l_map()
41 band->md->state == FTL_BAND_STATE_FREE); in ftl_band_free_p2l_map()
45 band->md->df_p2l_map = FTL_DF_OBJ_ID_INVALID; in ftl_band_free_p2l_map()
57 assert(band->md->state == FTL_BAND_STATE_CLOSED || in ftl_band_free_md_entry()
58 band->md->state == FTL_BAND_STATE_FREE); in ftl_band_free_md_entry()
72 band->md->close_seq_id = 0; in _ftl_band_set_free()
78 band->md->p2l_map_checksum = 0; in _ftl_band_set_free()
89 band->md->wr_cnt++; in _ftl_band_set_preparing()
105 band->md->state = FTL_BAND_STATE_CLOSED; in _ftl_band_set_closed_cb()
147 assert(band->md->state < SPDK_COUNTOF(names)); in ftl_band_get_state_name()
[all …]
H A Dftl_writer.c31 return writer->band->md->state == FTL_BAND_STATE_OPEN; in can_write()
39 switch (band->md->state) { in ftl_writer_band_state_change()
50 writer->last_seq_id = band->md->close_seq_id; in ftl_writer_band_state_change()
92 if (FTL_BAND_STATE_OPEN == writer->next_band->md->state) { in get_band()
98 assert(FTL_BAND_STATE_OPEN == writer->next_band->md->state); in get_band()
130 if (spdk_likely(writer->band->md->state == FTL_BAND_STATE_OPEN)) { in get_band()
133 if (spdk_unlikely(writer->band->md->state == FTL_BAND_STATE_PREP)) { in get_band()
196 if (writer->band->md->state == FTL_BAND_STATE_OPEN) { in ftl_writer_pad_band()
210 if (writer->band->md->state != FTL_BAND_STATE_OPEN) { in ftl_writer_is_halted()
241 writer->band->md->iter.offset); in ftl_writer_get_free_blocks()
[all …]
H A Dftl_band.h102 struct ftl_band_md *md; member
249 band->md->iter.addr = band->start_addr; in ftl_band_iter_init()
250 band->md->iter.offset = 0; in ftl_band_iter_init()
256 band->md->iter.offset += num_blocks; in ftl_band_iter_advance()
257 band->md->iter.addr = ftl_band_next_xfer_addr(band, band->md->iter.addr, num_blocks); in ftl_band_iter_advance()
258 assert(band->md->iter.addr != FTL_ADDR_INVALID); in ftl_band_iter_advance()
264 band->md->iter.offset = num_blocks; in ftl_band_iter_set()
265 band->md->iter.addr = ftl_band_next_xfer_addr(band, band->md->iter.addr, num_blocks); in ftl_band_iter_set()
266 assert(band->md->iter.addr != FTL_ADDR_INVALID); in ftl_band_iter_set()
H A Dftl_band_ops.c72 rq->io.addr = band->md->iter.addr; in ftl_band_rq_write()
80 if (ftl_band_filled(band, band->md->iter.offset)) { in ftl_band_rq_write()
145 rq->io.addr = band->md->iter.addr; in ftl_band_rq_read()
202 brq->io.addr = band->md->iter.addr; in ftl_band_basic_rq_write()
211 if (ftl_band_filled(band, band->md->iter.offset)) { in ftl_band_basic_rq_write()
291 struct ftl_md *md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_BAND_MD]; in ftl_band_open() local
298 memcpy(p2l_map->band_dma_md, band->md, region->entry_size * FTL_BLOCK_SIZE); in ftl_band_open()
311 ftl_md_persist_entries(md, band->id, 1, p2l_map->band_dma_md, NULL, in ftl_band_open()
329 band->md->p2l_map_checksum = band->p2l_map.band_dma_md->p2l_map_checksum; in band_close_cb()
340 struct ftl_md *md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_BAND_MD]; in band_map_write_cb() local
[all …]
H A Dftl_nv_cache_io.h17 void *buf, void *md, in ftl_nv_cache_bdev_read_blocks_with_md() argument
22 return spdk_bdev_read_blocks_with_md(desc, ch, buf, md ? : g_ftl_read_buf, in ftl_nv_cache_bdev_read_blocks_with_md()
34 void *buf, void *md, in ftl_nv_cache_bdev_write_blocks_with_md()
39 return spdk_bdev_write_blocks_with_md(desc, ch, buf, md ? : g_ftl_write_buf,
30 ftl_nv_cache_bdev_write_blocks_with_md(struct spdk_ftl_dev * dev,struct spdk_bdev_desc * desc,struct spdk_io_channel * ch,void * buf,void * md,uint64_t offset_blocks,uint64_t num_blocks,spdk_bdev_io_completion_cb cb,void * cb_arg) ftl_nv_cache_bdev_write_blocks_with_md() argument
H A Dftl_l2p.c141 struct ftl_md *md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_TRIM_MD]; in get_trim_seq_id() local
142 uint64_t *page = ftl_md_get_buffer(md); in get_trim_seq_id()
181 if (new_chunk->md->seq_id < current_chunk->md->seq_id) { 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()
/spdk/lib/ftl/mngt/
H A Dftl_mngt_p2l.c40 ftl_p2l_wipe_md_region_cb(struct spdk_ftl_dev *dev, struct ftl_md *md, int status) in ftl_p2l_wipe_md_region_cb()
42 struct ftl_mngt_p2l_md_ctx *ctx = md->owner.cb_ctx; in ftl_p2l_wipe_md_region_cb()
62 struct ftl_md *md = layout->md[ctx->md_region]; in ftl_p2l_wipe_md_region()
67 if (!md) { in ftl_p2l_wipe_md_region()
72 md->owner.cb_ctx = ctx; in ftl_p2l_wipe_md_region()
73 md->cb = ftl_p2l_wipe_md_region_cb;
74 ftl_md_clear(md, 0, NULL);
129 struct ftl_md *md; in ftl_mngt_p2l_restore_ckpt()
135 md in ftl_mngt_p2l_restore_ckpt()
37 ftl_p2l_wipe_md_region_cb(struct spdk_ftl_dev * dev,struct ftl_md * md,int status) ftl_p2l_wipe_md_region_cb() argument
59 struct ftl_md *md = layout->md[ctx->md_region]; ftl_p2l_wipe_md_region() local
92 struct ftl_md *md; ftl_mngt_p2l_free_bufs() local
106 ftl_mngt_p2l_restore_ckpt_cb(struct spdk_ftl_dev * dev,struct ftl_md * md,int status) ftl_mngt_p2l_restore_ckpt_cb() argument
127 struct ftl_md *md; ftl_mngt_p2l_restore_ckpt() local
[all...]
H A Dftl_mngt_recovery.c26 struct ftl_md *md; member
135 ctx->l2p_snippet.md = ftl_md_create(dev, md_blocks, 0, "l2p_recovery", md_flags, in ftl_mngt_recovery_init()
137 if (!ctx->l2p_snippet.md) { in ftl_mngt_recovery_init()
142 ctx->l2p_snippet.l2p = ftl_md_get_buffer(ctx->l2p_snippet.md); in ftl_mngt_recovery_init()
151 ctx->l2p_snippet.seq_id = (uint64_t *)((char *)ftl_md_get_buffer(ctx->l2p_snippet.md) + in ftl_mngt_recovery_init()
163 ftl_md_destroy(ctx->l2p_snippet.md, 0); in ftl_mngt_recovery_deinit()
164 ctx->l2p_snippet.md = NULL; in ftl_mngt_recovery_deinit()
202 restore_band_state_cb(struct spdk_ftl_dev *dev, struct ftl_md *md, int status) in restore_band_state_cb() argument
204 struct ftl_mngt_process *mngt = md->owner.cb_ctx; in restore_band_state_cb()
219 switch (band->md->state) { in restore_band_state_cb()
[all …]
H A Dftl_mngt_md.c62 struct ftl_md *md, *md_mirror; in ftl_mngt_init_md()
72 if (layout->md[i]) { in ftl_mngt_init_md()
83 layout->md[i] = ftl_md_create(dev, region->current.blocks, region->vss_blksz, region->name, in ftl_mngt_init_md()
85 if (NULL == layout->md[i]) { in ftl_mngt_init_md()
100 md = layout->md[i]; in ftl_mngt_init_md()
101 md_mirror = layout->md[region->mirror_type]; in ftl_mngt_init_md()
103 md_mirror->dev = md->dev; in ftl_mngt_init_md()
104 md_mirror->data_blocks = md->data_blocks; in ftl_mngt_init_md()
105 md_mirror->data = md in ftl_mngt_init_md()
60 struct ftl_md *md, *md_mirror; ftl_mngt_init_md() local
138 persist_cb(struct spdk_ftl_dev * dev,struct ftl_md * md,int status) persist_cb() argument
154 struct ftl_md *md; persist() local
190 restore_cb(struct spdk_ftl_dev * dev,struct ftl_md * md,int status) restore_cb() argument
216 struct ftl_md *md = layout->md[type]; restore() local
557 struct ftl_md *md; ftl_mngt_superblock_init() local
[all...]
H A Dftl_mngt_band.c16 struct ftl_md *band_info_md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_BAND_MD]; in ftl_band_init_md()
17 struct ftl_md *valid_map_md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_VALID_MAP]; in ftl_band_init_md()
34 band->md = &band_md[band->id]; in ftl_band_init_md()
35 band->md->version = FTL_BAND_VERSION_CURRENT; in ftl_band_init_md()
37 band->md->df_p2l_map = FTL_DF_OBJ_ID_INVALID; in ftl_band_init_md()
120 band->md = NULL; in ftl_dev_deinit_bands_md()
221 struct ftl_md *data_md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_DATA_BASE]; in ftl_mngt_initialize_band_address()
242 band_open_seq_id = spdk_max(band_open_seq_id, band->md->seq); in ftl_recover_max_seq()
243 band_close_seq_id = spdk_max(band_close_seq_id, band->md->close_seq_id); in ftl_recover_max_seq()
268 return a->md->seq - b->md->seq; in _band_cmp()
[all …]
H A Dftl_mngt_misc.c170 * tests it's very likely that chunks seq_id will be in line between new head md and old VSS) in ftl_mngt_scrub_nv_cache()
241 struct ftl_md *valid_map_md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_VALID_MAP]; in ftl_mngt_init_vld_map()
277 FTL_ERRLOG(dev, "Failed to create trim bitmap md\n"); in ftl_mngt_init_trim_map()
295 trim_clear_cb(struct spdk_ftl_dev *dev, struct ftl_md *md, int status) in trim_clear_cb() argument
297 struct ftl_mngt_process *mngt = md->owner.cb_ctx; in trim_clear_cb()
309 struct ftl_md *md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_TRIM_MD]; in ftl_mngt_trim_metadata_clear() local
311 md->cb = trim_clear_cb; in ftl_mngt_trim_metadata_clear()
312 md->owner.cb_ctx = mngt; in ftl_mngt_trim_metadata_clear()
313 ftl_md_clear(md, in ftl_mngt_trim_metadata_clear()
319 struct ftl_md *md = dev->layout.md[FTL_LAYOUT_REGION_TYPE_TRIM_LOG]; ftl_mngt_trim_log_clear() local
[all...]
/spdk/doc/
H A DMakefile13 deprecation.md: ../deprecation.md
17 changelog.md: ../CHANGELOG.md
24 output: Doxyfile changelog.md deprecation.md $(wildcard *.md) $(wildcard ../include/spdk/*.h)
29 $(Q)rm -rf output changelog.md deprecation.md
H A D.gitignore1 # changelog.md and deprecation.md is generated by Makefile
2 changelog.md
3 deprecation.md
/spdk/lib/ftl/upgrade/
H A Dftl_band_upgrade.c11 struct ftl_md *md; member
20 if (ctx->md) { in v2_upgrade_cleanup()
21 ftl_md_destroy(ctx->md, 0); in v2_upgrade_cleanup()
22 ctx->md = NULL; in v2_upgrade_cleanup()
36 v2_upgrade_md_persist_cb(struct spdk_ftl_dev *dev, struct ftl_md *md, int status) in v2_upgrade_md_persist_cb() argument
38 struct ftl_layout_upgrade_ctx *lctx = md->owner.cb_ctx; in v2_upgrade_md_persist_cb()
44 v2_upgrade_md_restore_cb(struct spdk_ftl_dev *dev, struct ftl_md *md, int status) in v2_upgrade_md_restore_cb() argument
46 struct ftl_layout_upgrade_ctx *lctx = md->owner.cb_ctx; in v2_upgrade_md_restore_cb()
48 struct ftl_band_md *band = ftl_md_get_buffer(md); in v2_upgrade_md_restore_cb()
71 ctx->md->cb = v2_upgrade_md_persist_cb; in v2_upgrade_md_restore_cb()
[all …]
H A Dftl_trim_upgrade.c12 struct ftl_md *md; member
21 if (ctx->md) { in v0_to_v1_upgrade_cleanup()
22 ftl_md_destroy(ctx->md, 0); in v0_to_v1_upgrade_cleanup()
23 ctx->md = NULL; in v0_to_v1_upgrade_cleanup()
37 v0_to_v1_upgrade_md_cb(struct spdk_ftl_dev *dev, struct ftl_md *md, int status) in v0_to_v1_upgrade_md_cb() argument
39 struct ftl_layout_upgrade_ctx *lctx = md->owner.cb_ctx; in v0_to_v1_upgrade_md_cb()
56 ctx->md = ftl_md_create(dev, ctx->reg.current.blocks, 0, ctx->reg.name, FTL_MD_CREATE_HEAP, in v0_to_v1_upgrade_setup_ctx()
58 if (!ctx->md) { in v0_to_v1_upgrade_setup_ctx()
62 ctx->md->owner.cb_ctx = lctx; in v0_to_v1_upgrade_setup_ctx()
63 ctx->md->cb = v0_to_v1_upgrade_md_cb; in v0_to_v1_upgrade_setup_ctx()
[all …]
H A Dftl_p2l_upgrade.c11 struct ftl_md *md; member
20 if (ctx->md) { in v2_upgrade_cleanup()
21 ftl_md_destroy(ctx->md, 0); in v2_upgrade_cleanup()
22 ctx->md = NULL; in v2_upgrade_cleanup()
36 v2_upgrade_md_cb(struct spdk_ftl_dev *dev, struct ftl_md *md, int status) in v2_upgrade_md_cb() argument
38 struct ftl_layout_upgrade_ctx *lctx = md->owner.cb_ctx; in v2_upgrade_md_cb()
58 ctx->md = ftl_md_create(dev, ctx->reg.current.blocks, 0, ctx->reg.name, FTL_MD_CREATE_HEAP, in v2_upgrade_setup_ctx()
60 if (!ctx->md) { in v2_upgrade_setup_ctx()
64 ctx->md->owner.cb_ctx = lctx; in v2_upgrade_setup_ctx()
65 ctx->md->cb = v2_upgrade_md_cb; in v2_upgrade_setup_ctx()
[all …]
H A Dftl_chunk_upgrade.c40 struct ftl_nv_cache_chunk_md *md = ftl_md_get_buffer(ctx->md_v2); in v1_to_v2_upgrade_set() local
43 for (uint64_t i = 0; i < ctx->reg_v2.current.blocks; i++, md++) { in v1_to_v2_upgrade_set()
44 ftl_nv_cache_chunk_md_initialize(md); in v1_to_v2_upgrade_set()
49 v1_to_v2_upgrade_md_cb(struct spdk_ftl_dev *dev, struct ftl_md *md, int status) in v1_to_v2_upgrade_md_cb() argument
51 struct ftl_layout_upgrade_ctx *lctx = md->owner.cb_ctx; in v1_to_v2_upgrade_md_cb()
/spdk/test/unit/lib/ftl/common/
H A Dutils.c82 struct ftl_band_md *md; in test_init_ftl_dev() local
85 ret = posix_memalign((void **)&md, FTL_BLOCK_SIZE, sizeof(*md)); in test_init_ftl_dev()
87 memset(md, 0, sizeof(*md)); in test_init_ftl_dev()
88 dev->bands[i].md = md; in test_init_ftl_dev()
122 band->md->state = FTL_BAND_STATE_CLOSED; in test_init_ftl_band()
123 band->md->df_p2l_map = FTL_DF_OBJ_ID_INVALID; in test_init_ftl_band()
152 free(dev->bands[i].md); in test_free_ftl_dev()
[all...]
/spdk/module/bdev/nvme/
H A Dnvme_rpc.c31 char *md; member
56 spdk_free(ctx->req.md); in free_rpc_bdev_nvme_send_cmd_ctx()
87 spdk_base64_urlsafe_encode(resp->md_text, req->md, req->md_len); in rpc_bdev_nvme_send_cmd_resp_construct()
190 req->data_len, req->md, req->md_len, req->timeout_ms); in rpc_bdev_nvme_send_cmd_exec()
358 req->md = spdk_malloc(req->md_len, 0x1000, NULL, in rpc_decode_metadata()
360 if (!req->md) { in rpc_decode_metadata()
366 rc = spdk_base64_urlsafe_decode(req->md, (size_t *)&req->md_len, text); in rpc_decode_metadata()
392 req->md = spdk_malloc(req->md_len, 0x1000, NULL, in rpc_decode_metadata_len()
394 if (!req->md) { in rpc_decode_metadata_len()
/spdk/test/unit/lib/ftl/ftl_p2l.c/
H A Dftl_p2l_ut.c27 DEFINE_STUB_V(ftl_md_persist, (struct ftl_md *md));
28 DEFINE_STUB_V(ftl_md_persist_entries, (struct ftl_md *md, uint64_t start_entry,
52 DEFINE_STUB(ftl_md_get_vss_buffer, union ftl_md_vss *, (struct ftl_md *md), NULL);
129 ftl_md_get_buffer(struct ftl_md *md) in ftl_md_get_buffer() argument
166 g_band.md = calloc(1, sizeof(struct ftl_band_md)); in band_setup()
167 g_band.md->seq = 0xDEADBEEF; in band_setup()
168 g_band.md->p2l_md_region = FTL_LAYOUT_REGION_TYPE_P2L_CKPT_GC; in band_setup()
177 free(band->md); in band_free()
464 g_band.md->iter.offset = 2 * xfer_size; in test_clean_restore_p2l()
484 g_band.md->iter.offset = 2 * xfer_size; in test_clean_restore_p2l()
[all …]

123