/spdk/lib/ftl/ |
H A D | ftl_nv_cache.c | 77 get_chunk_idx(struct ftl_nv_cache_chunk *chunk) in get_chunk_idx() argument 79 struct ftl_nv_cache_chunk *first_chunk = chunk->nv_cache->chunks; in get_chunk_idx() 81 return (chunk->offset - first_chunk->offset) / chunk->nv_cache->chunk_blocks; in get_chunk_idx() 120 /* Move the dummy region along with the active chunk */ in nvc_scrub_find_next_chunk() 133 /* Move to the next chunk */ in nvc_scrub_clear_cb() 148 /* Scrub the next chunk */ in nvc_scrub_clear_cb() 172 /* Setup a dummy region for the first chunk */ in ftl_nv_cache_scrub() 204 /* Scrub the first chunk */ in ftl_nv_cache_scrub() 219 struct ftl_nv_cache_chunk *chunk; in ftl_nv_cache_init() local 367 chunk_get_free_space(struct ftl_nv_cache * nv_cache,struct ftl_nv_cache_chunk * chunk) chunk_get_free_space() argument 376 chunk_is_closed(struct ftl_nv_cache_chunk * chunk) chunk_is_closed() argument 389 struct ftl_nv_cache_chunk *chunk; ftl_nv_cache_get_wr_buffer() local 446 struct ftl_nv_cache_chunk *chunk = io->nv_cache_chunk; ftl_nv_cache_fill_md() local 464 chunk_advance_blocks(struct ftl_nv_cache * nv_cache,struct ftl_nv_cache_chunk * chunk,uint64_t advanced_blocks) chunk_advance_blocks() argument 477 chunk_user_blocks_written(struct ftl_nv_cache_chunk * chunk) chunk_user_blocks_written() argument 484 is_chunk_compacted(struct ftl_nv_cache_chunk * chunk) is_chunk_compacted() argument 496 ftl_chunk_alloc_md_entry(struct ftl_nv_cache_chunk * chunk) ftl_chunk_alloc_md_entry() argument 512 ftl_chunk_free_md_entry(struct ftl_nv_cache_chunk * chunk) ftl_chunk_free_md_entry() argument 521 ftl_chunk_free(struct ftl_nv_cache_chunk * chunk) ftl_chunk_free() argument 533 ftl_chunk_alloc_chunk_free_entry(struct ftl_nv_cache_chunk * chunk) ftl_chunk_alloc_chunk_free_entry() argument 548 ftl_chunk_free_chunk_free_entry(struct ftl_nv_cache_chunk * chunk) ftl_chunk_free_chunk_free_entry() argument 559 struct ftl_nv_cache_chunk *chunk = (struct ftl_nv_cache_chunk *)ctx; chunk_free_cb() local 588 struct ftl_nv_cache_chunk *tchunk, *chunk = NULL; ftl_chunk_persist_free_state() local 610 compaction_stats_update(struct ftl_nv_cache_chunk * chunk) compaction_stats_update() argument 640 chunk_compaction_advance(struct ftl_nv_cache_chunk * chunk,uint64_t num_blocks) chunk_compaction_advance() argument 737 struct ftl_nv_cache_chunk *chunk = entry->owner.priv; compaction_process_pin_lba() local 803 is_chunk_to_read(struct ftl_nv_cache_chunk * chunk) is_chunk_to_read() argument 817 struct ftl_nv_cache_chunk *chunk = NULL; get_chunk_for_compaction() local 845 chunk_blocks_to_read(struct ftl_nv_cache_chunk * chunk) chunk_blocks_to_read() argument 919 compaction_chunk_read_pos(struct spdk_ftl_dev * dev,struct ftl_nv_cache_chunk * chunk) compaction_chunk_read_pos() argument 951 struct ftl_nv_cache_chunk *chunk = NULL; compaction_entry_read_pos() local 1050 struct ftl_nv_cache_chunk *chunk = entry->owner.priv; compaction_process_ftl_done() local 1077 struct ftl_nv_cache_chunk *chunk = entry->owner.priv; compaction_process_finish_read() local 1318 ftl_chunk_map_set_lba(struct ftl_nv_cache_chunk * chunk,uint64_t offset,uint64_t lba) ftl_chunk_map_set_lba() argument 1328 ftl_chunk_map_get_lba(struct ftl_nv_cache_chunk * chunk,uint64_t offset) ftl_chunk_map_get_lba() argument 1337 ftl_chunk_set_addr(struct ftl_nv_cache_chunk * chunk,uint64_t lba,ftl_addr addr) ftl_chunk_set_addr() argument 1350 struct ftl_nv_cache_chunk *chunk = dev->nv_cache.chunks; ftl_nv_cache_get_chunk_from_addr() local 1364 struct ftl_nv_cache_chunk *chunk; ftl_nv_cache_set_addr() local 1423 struct ftl_nv_cache_chunk *chunk = TAILQ_FIRST(&nv_cache->chunk_free_list); ftl_nv_cache_process() local 1461 chunk_free_p2l_map(struct ftl_nv_cache_chunk * chunk) chunk_free_p2l_map() argument 1476 struct ftl_nv_cache_chunk *chunk; ftl_nv_cache_save_state() local 1541 struct ftl_nv_cache_chunk *chunk; sort_chunks() local 1575 chunk_alloc_p2l_map(struct ftl_nv_cache_chunk * chunk) chunk_alloc_p2l_map() argument 1605 struct ftl_nv_cache_chunk *chunk; ftl_nv_cache_load_state() local 1745 struct ftl_nv_cache_chunk *chunk; ftl_nv_cache_get_max_seq_id() local 1766 struct ftl_nv_cache_chunk *chunk = brq->io.chunk; write_brq_end() local 1804 ftl_chunk_basic_rq_write(struct ftl_nv_cache_chunk * chunk,struct ftl_basic_rq * brq) ftl_chunk_basic_rq_write() argument 1832 ftl_chunk_basic_rq_read(struct ftl_nv_cache_chunk * chunk,struct ftl_basic_rq * brq) ftl_chunk_basic_rq_read() argument 1854 struct ftl_nv_cache_chunk *chunk = (struct ftl_nv_cache_chunk *)ctx; chunk_open_cb() local 1869 ftl_chunk_open(struct ftl_nv_cache_chunk * chunk) ftl_chunk_open() argument 1903 struct ftl_nv_cache_chunk *chunk = (struct ftl_nv_cache_chunk *)ctx; chunk_close_cb() local 1933 struct ftl_nv_cache_chunk *chunk = brq->io.chunk; chunk_map_write_cb() local 1961 ftl_chunk_close(struct ftl_nv_cache_chunk * chunk) ftl_chunk_close() argument 1986 struct ftl_nv_cache_chunk *chunk = parent->io.chunk; restore_chunk_close_cb() local 2002 struct ftl_nv_cache_chunk *chunk = parent->io.chunk; restore_fill_p2l_map_cb() local 2030 restore_fill_tail_md(struct ftl_basic_rq * parent,struct ftl_nv_cache_chunk * chunk) restore_fill_tail_md() argument 2052 struct ftl_nv_cache_chunk *chunk = parent->io.chunk; read_open_chunk_cb() local 2113 restore_open_chunk(struct ftl_nv_cache_chunk * chunk,struct ftl_basic_rq * parent) restore_open_chunk() argument 2166 ftl_chunk_read_tail_md(struct ftl_nv_cache_chunk * chunk,struct ftl_basic_rq * brq,void (* cb)(struct ftl_basic_rq * brq),void * cb_ctx) ftl_chunk_read_tail_md() argument 2209 struct ftl_nv_cache_chunk *chunk = brq->io.chunk; walk_tail_md_cb() local 2267 struct ftl_nv_cache_chunk *chunk = &nvc->chunks[ctx->id]; ftl_mngt_nv_cache_walk_tail_md() local 2321 struct ftl_nv_cache_chunk *chunk; restore_chunk_state_cb() local 2395 struct ftl_nv_cache_chunk *chunk = brq->io.chunk; recover_open_chunk_cb() local 2428 struct ftl_nv_cache_chunk *chunk; ftl_mngt_nv_cache_recover_open_chunk() local 2488 struct ftl_nv_cache_chunk *chunk; ftl_nv_cache_halt() local 2531 struct ftl_nv_cache_chunk *chunk = nv_cache->chunk_current; ftl_nv_cache_acquire_trim_seq_id() local 2564 ftl_nv_cache_get_chunk_utilization(struct ftl_nv_cache * nv_cache,struct ftl_nv_cache_chunk * chunk) ftl_nv_cache_get_chunk_utilization() argument 2573 ftl_nv_cache_get_chunk_state_name(struct ftl_nv_cache_chunk * chunk) ftl_nv_cache_get_chunk_state_name() argument 2593 struct ftl_nv_cache_chunk *chunk; ftl_property_dump_cache_dev() local [all...] |
H A D | ftl_nv_cache.h | 20 * Size of each chunk is multiple of xfer size plus additional metadata. 22 * written chunk by chunk sequentially. When number of free chunks reaches 71 /* Sequence ID when chunk was closed */ 80 /* Number of skipped block (case when IO size is greater than blocks left in chunk) */ 92 /* CRC32 checksum of the associated P2L map when chunk is in closed state */ 121 /* This flag is used to indicate chunk is used in recovery */ 175 /* Number of blocks in chunk */ 178 /* Number of blocks in tail md per chunk */ 184 /* Current processed chunk */ [all...] |
H A D | ftl_io.h | 282 struct ftl_nv_cache_chunk *chunk; member
|
/spdk/doc/ |
H A D | compression.md | 42 A compressed block device compresses and decompresses data in units of chunks, where a chunk is a 43 multiple of at least two 4KB backing IO units. The number of backing IO units per chunk determines 44 the chunk size and is specified when the compressed block device is created. A chunk 45 consumes a number of 4KB backing IO units between 1 and the number of 4KB units in the chunk. For 46 example, a 16KB chunk consumes 1, 2, 3 or 4 backing IO units. The number of backing IO units depen… 47 much the chunk was able to be compressed. The blocks on disk associated with a chunk are stored in… 48 "chunk map" in persistent memory. Each chunk map consists of N 64-bit values, where N is the maxim… 49 number of backing IO units in the chunk. Each 64-bit value corresponds to a backing IO unit index.… 51 number of chunk maps allocated is equal to the size of the compressed block device divided by its c… 52 size, plus some number of extra chunk maps. These extra chunk maps are used to ensure atomicity on [all …]
|
H A D | ftl.md | 76 is moved to base_bdev. This process is called chunk compaction. 80 |chunk 1 | 88 |chunk N | 146 …e, FTL needs to rebuild the whole L2P using the address maps (`P2L`) stored within each band/chunk.
|
/spdk/module/bdev/raid/ |
H A D | raid5f.c | 19 struct chunk { struct 54 struct chunk *parity_chunk; 73 struct chunk *chunk; member 100 struct chunk chunks[0]; 162 raid5f_chunk_stripe_req(struct chunk *chunk) in raid5f_chunk_stripe_req() argument 164 return SPDK_CONTAINEROF((chunk - chunk->index), struct stripe_request, chunks); in raid5f_chunk_stripe_req() 286 struct chunk *chunk; in raid5f_xor_stripe() local 287 struct chunk *dest_chunk = NULL; in raid5f_xor_stripe() 298 dest_chunk = stripe_req->reconstruct.chunk; in raid5f_xor_stripe() 304 FOR_EACH_CHUNK(stripe_req, chunk) { in raid5f_xor_stripe() [all …]
|
/spdk/test/unit/lib/bdev/raid/raid5f.c/ |
H A D | raid5f_ut.c | 406 struct chunk *chunk = cb_arg; in spdk_bdev_writev_blocks_with_md() local 419 stripe_req = raid5f_chunk_stripe_req(chunk); in spdk_bdev_writev_blocks_with_md() 425 if (chunk == stripe_req->parity_chunk) { in spdk_bdev_writev_blocks_with_md() 434 data_chunk_idx = chunk < stripe_req->parity_chunk ? chunk->index : chunk->index - 1; in spdk_bdev_writev_blocks_with_md() 459 struct chunk *chunk = cb_arg; in spdk_bdev_readv_blocks_degraded() local 470 stripe_req = raid5f_chunk_stripe_req(chunk); in spdk_bdev_readv_blocks_degraded() 931 struct chunk *chunk; __test_raid5f_stripe_request_map_iovecs() local [all...] |
/spdk/lib/reduce/ |
H A D | reduce.c | 72 * Scratch buffer used for uncompressed chunk. This is used for: 75 * 3) data buffer when writing uncompressed chunk to disk 76 * 4) data buffer when reading uncompressed chunk from disk 90 * Scratch buffer used for compressed chunk. This is used for: 93 * 3) data buffer when writing compressed chunk to disk 94 * 4) data buffer when reading compressed chunk from disk 113 struct spdk_reduce_chunk_map *chunk; 137 /* Cache free chunks to speed up lookup of free chunk. */ 766 * Note that this writes 0xFF to not just the logical map but the chunk maps as well. in _load_read_super_and_path_cpl() 805 struct spdk_reduce_chunk_map *chunk; 108 struct spdk_reduce_chunk_map *chunk; global() member 708 struct spdk_reduce_chunk_map *chunk; _load_read_super_and_path_cpl() local [all...] |
/spdk/scripts/ |
H A D | rpc_http_proxy.py | 107 chunk = self.rfile.read(chunk_length) 108 data_string += chunk
|
/spdk/lib/ftl/mngt/ |
H A D | ftl_mngt_recovery.c | 496 restore_chunk_l2p_cb(struct ftl_nv_cache_chunk *chunk, void *ctx) in restore_chunk_l2p_cb() argument 500 struct ftl_nv_cache *nv_cache = chunk->nv_cache; in restore_chunk_l2p_cb() 502 const uint64_t seq_id = chunk->md->seq_id; in restore_chunk_l2p_cb() 506 dev = SPDK_CONTAINEROF(chunk->nv_cache, struct spdk_ftl_dev, nv_cache); in restore_chunk_l2p_cb() 508 chunk_map_crc = spdk_crc32c_update(chunk->p2l_map.chunk_map, in restore_chunk_l2p_cb() 509 ftl_nv_cache_chunk_tail_md_num_blocks(chunk->nv_cache) * FTL_BLOCK_SIZE, 0); in restore_chunk_l2p_cb() 510 if (chunk->md->p2l_map_checksum != chunk_map_crc) { in restore_chunk_l2p_cb() 518 lba = ftl_chunk_map_get_lba(chunk, i); in restore_chunk_l2p_cb() 537 addr = ftl_addr_from_nvc_offset(dev, chunk->offset + i); in restore_chunk_l2p_cb()
|
/spdk/include/spdk/ |
H A D | nvme_ocssd_spec.h | 258 uint8_t chunk : 1; member
|
/spdk/test/unit/lib/reduce/reduce.c/ |
H A D | reduce_ut.c | 104 /* 100 chunks in logical map * 8 bytes per chunk */ in get_pm_file_size() 106 /* 100 chunks * (chunk struct size + 4 backing io units per chunk * 8 bytes per backing io unit) */ in get_pm_file_size() 110 * times (chunk struct size + 4 backing io units per chunk * 8 bytes per backing io unit). in get_pm_file_size() 755 const int bufsize = 16 * 1024; /* chunk size */ in _write_maps() 853 char buf[16 * 1024]; /* chunk size */ in _read_write() 955 * This is writing into the second chunk of the volume. This also in _read_write() 957 * correctly - making sure we don't use the first chunk map again in _read_write() 958 * for this new write - the first chunk ma in _read_write() 1569 struct spdk_reduce_chunk_map chunk = {}; test_reduce_decompress_chunk() local [all...] |
/spdk/scripts/perf/nvmf/ |
H A D | README.md | 323 parameter value, and each "num_jobs" fio thread gets it's own chunk to
|