slab_config
struct slab_config slab_config;
&slab_config);
result = VDO_ASSERT((slab_config.data_blocks >= 1),
encode_u64_le(buffer, offset, state.slab_config.slab_blocks);
encode_u64_le(buffer, offset, state.slab_config.data_blocks);
encode_u64_le(buffer, offset, state.slab_config.reference_count_blocks);
encode_u64_le(buffer, offset, state.slab_config.slab_journal_blocks);
encode_u64_le(buffer, offset, state.slab_config.slab_journal_flushing_threshold);
encode_u64_le(buffer, offset, state.slab_config.slab_journal_blocking_threshold);
encode_u64_le(buffer, offset, state.slab_config.slab_journal_scrubbing_threshold);
struct slab_config slab_config;
slab_config.slab_blocks = count;
slab_config.data_blocks = count;
slab_config.reference_count_blocks = count;
slab_config.slab_journal_blocks = count;
slab_config.slab_journal_flushing_threshold = count;
slab_config.slab_journal_blocking_threshold = count;
slab_config.slab_journal_scrubbing_threshold = count;
.slab_config = slab_config,
struct slab_config slab_config, zone_count_t zone_count,
block_count_t slab_size = slab_config.slab_blocks;
total_slab_blocks = slab_count * slab_config.slab_blocks;
total_data_blocks = slab_count * slab_config.data_blocks;
.slab_config = slab_config,
struct slab_config *slab_config)
*slab_config = (struct slab_config) {
struct slab_config slab_config,
struct slab_config *slab_config);
vdo_get_slab_journal_start_block(const struct slab_config *slab_config,
return origin + slab_config->data_blocks + slab_config->reference_count_blocks;
struct slab_config slab_config;
if (slab_block_number >= slab->allocator->depot->slab_config.data_blocks)
block_count_t data_blocks = slab->allocator->depot->slab_config.data_blocks;
result = VDO_ASSERT((free_blocks <= allocator->depot->slab_config.data_blocks),
(unsigned long long) allocator->depot->slab_config.data_blocks);
block_count_t blocks = depot->slab_config.slab_journal_blocks;
allocator->slab_count * depot->slab_config.data_blocks);
const struct slab_config *slab_config = &slab->allocator->depot->slab_config;
result = vdo_allocate(slab_config->slab_journal_blocks, struct journal_lock,
journal->size = slab_config->slab_journal_blocks;
journal->flushing_threshold = slab_config->slab_journal_flushing_threshold;
journal->blocking_threshold = slab_config->slab_journal_blocking_threshold;
journal->scrubbing_threshold = slab_config->slab_journal_scrubbing_threshold;
const struct slab_config *slab_config = &allocator->depot->slab_config;
.end = slab_origin + slab_config->slab_blocks,
.ref_counts_origin = slab_origin + slab_config->data_blocks,
vdo_get_slab_journal_start_block(slab_config, slab_origin),
.block_count = slab_config->data_blocks,
.free_blocks = slab_config->data_blocks,
vdo_get_saved_reference_count_size(slab_config->data_blocks),
slab_size = depot->slab_config.slab_blocks;
allocator->depot->slab_config.slab_journal_blocks;
block_count_t max_free_blocks = depot->slab_config.data_blocks;
reference_block_count = vdo_get_saved_reference_count_size(depot->slab_config.slab_blocks);
hint = compute_fullness_hint(depot, depot->slab_config.data_blocks);
block_count_t slab_size = state.slab_config.slab_blocks;
depot->slab_config = state.slab_config;
.slab_config = depot->slab_config,
return (READ_ONCE(depot->slab_count) * depot->slab_config.data_blocks);
result = vdo_configure_slab_depot(partition, depot->slab_config,
struct slab_config slab_config;