| /spdk/lib/ftl/utils/ |
| H A D | ftl_md.c | 15 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 D | ftl_md.h | 18 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 D | ftl_l2p_flat.c | 16 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 D | ftl_nv_cache.c | 33 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 D | ftl_p2l.c | 21 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 D | ftl_band.c | 40 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 D | ftl_writer.c | 31 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 D | ftl_band.h | 102 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 D | ftl_band_ops.c | 72 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 D | ftl_nv_cache_io.h | 17 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 D | ftl_l2p.c | 141 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 D | ftl_mngt_p2l.c | 40 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 D | ftl_mngt_recovery.c | 26 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 D | ftl_mngt_md.c | 62 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 D | ftl_mngt_band.c | 16 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 D | ftl_mngt_misc.c | 170 * 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 D | Makefile | 13 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 | .gitignore | 1 # changelog.md and deprecation.md is generated by Makefile 2 changelog.md 3 deprecation.md
|
| /spdk/lib/ftl/upgrade/ |
| H A D | ftl_band_upgrade.c | 11 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 D | ftl_trim_upgrade.c | 12 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 D | ftl_p2l_upgrade.c | 11 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 D | ftl_chunk_upgrade.c | 40 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 D | utils.c | 82 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 D | nvme_rpc.c | 31 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 D | ftl_p2l_ut.c | 27 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 …]
|