crimson/os/seastore/cache: minor cleanup

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
This commit is contained in:
Yingxin Cheng 2024-12-19 15:13:38 +08:00
parent 58f7b6e077
commit d9ff8f0419
2 changed files with 44 additions and 41 deletions

View File

@ -1346,24 +1346,22 @@ record_t Cache::prepare_record(
get_by_ext(efforts.retire_by_ext,
extent->get_type()).increment(extent->get_length());
retire_stat.increment(extent->get_length());
DEBUGT("retired and remove extent -- {}", t, *extent);
DEBUGT("retired and remove extent {}~0x{:x} -- {}",
t, extent->get_paddr(), extent->get_length(), *extent);
commit_retire_extent(t, extent);
// Note: commit extents and backref allocations in the same place
if (is_backref_mapped_type(extent->get_type()) ||
is_retired_placeholder_type(extent->get_type())) {
DEBUGT("backref_entry free {}~0x{:x}",
t,
extent->get_paddr(),
extent->get_length());
rel_delta.alloc_blk_ranges.emplace_back(
alloc_blk_t::create_retire(
extent->get_paddr(),
extent->get_length(),
extent->get_type()));
}
// Note: commit extents and backref allocations in the same place
if (is_backref_mapped_type(extent->get_type()) ||
is_retired_placeholder_type(extent->get_type())) {
DEBUGT("backref_entry free {} len 0x{:x}",
t,
extent->get_paddr(),
extent->get_length());
backref_entries.emplace_back(
backref_entry_t::create_retire(
extent->get_paddr(),
@ -1424,8 +1422,11 @@ record_t Cache::prepare_record(
std::move(bl)
},
modify_time);
if (i->is_valid() &&
is_backref_mapped_type(i->get_type())) {
if (!i->is_valid()) {
continue;
}
if (is_backref_mapped_type(i->get_type())) {
laddr_t alloc_laddr;
if (i->is_logical()) {
alloc_laddr = i->cast<LogicalCachedExtent>()->get_laddr();
@ -1726,7 +1727,7 @@ void Cache::complete_commit(
// Note: commit extents and backref allocations in the same place
if (is_backref_mapped_type(i->get_type())) {
DEBUGT("backref_entry alloc {} len 0x{:x}",
DEBUGT("backref_entry alloc {}~0x{:x}",
t,
i->get_paddr(),
i->get_length());
@ -1781,9 +1782,10 @@ void Cache::complete_commit(
epm.mark_space_free(extent->get_paddr(), extent->get_length());
}
for (auto &i: t.existing_block_list) {
if (i->is_valid()) {
epm.mark_space_used(i->get_paddr(), i->get_length());
if (!i->is_valid()) {
continue;
}
epm.mark_space_used(i->get_paddr(), i->get_length());
}
for (auto &i: t.mutated_block_list) {
@ -1807,31 +1809,32 @@ void Cache::complete_commit(
existing_stats.clean_num,
existing_stats.mutated_num);
for (auto &i: t.existing_block_list) {
if (i->is_valid()) {
if (i->is_exist_clean()) {
i->state = CachedExtent::extent_state_t::CLEAN;
} else {
assert(i->state == CachedExtent::extent_state_t::DIRTY);
}
add_extent(i);
if (!i->is_valid()) {
continue;
}
if (i->is_exist_clean()) {
i->state = CachedExtent::extent_state_t::CLEAN;
} else {
assert(i->state == CachedExtent::extent_state_t::DIRTY);
}
add_extent(i);
// Note: commit extents and backref allocations in the same place
DEBUGT("backref_entry alloc existing {} len 0x{:x}",
t,
i->get_paddr(),
i->get_length());
backref_entries.emplace_back(
backref_entry_t::create_alloc(
i->get_paddr(),
i->cast<LogicalCachedExtent>()->get_laddr(),
i->get_length(),
i->get_type()));
const auto t_src = t.get_src();
if (i->is_dirty()) {
add_to_dirty(i, &t_src);
} else {
touch_extent(*i, &t_src);
}
// Note: commit extents and backref allocations in the same place
DEBUGT("backref_entry alloc existing {} len 0x{:x}",
t,
i->get_paddr(),
i->get_length());
backref_entries.emplace_back(
backref_entry_t::create_alloc(
i->get_paddr(),
i->cast<LogicalCachedExtent>()->get_laddr(),
i->get_length(),
i->get_type()));
const auto t_src = t.get_src();
if (i->is_dirty()) {
add_to_dirty(i, &t_src);
} else {
touch_extent(*i, &t_src);
}
}

View File

@ -39,8 +39,8 @@ struct test_block_delta_t {
inline std::ostream &operator<<(
std::ostream &lhs, const test_extent_desc_t &rhs) {
return lhs << "test_extent_desc_t(len=" << rhs.len
<< ", checksum=" << rhs.checksum << ")";
return lhs << "test_extent_desc_t(len=0x" << std::hex << rhs.len
<< ", checksum=0x" << rhs.checksum << std::dec << ")";
}
struct TestBlock : crimson::os::seastore::LogicalCachedExtent {