From e5ecf1e2013e5928c09f347d278eaa1c88fdfac7 Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Wed, 17 Nov 2021 09:09:41 +0800 Subject: [PATCH] crimson/os/seastore/lba_manager: better debug outputs for lba node merge Signed-off-by: Xuehan Xu --- .../os/seastore/lba_manager/btree/lba_btree.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/crimson/os/seastore/lba_manager/btree/lba_btree.cc b/src/crimson/os/seastore/lba_manager/btree/lba_btree.cc index 0263698b06968..ed9d4f5ed3e51 100644 --- a/src/crimson/os/seastore/lba_manager/btree/lba_btree.cc +++ b/src/crimson/os/seastore/lba_manager/btree/lba_btree.cc @@ -540,6 +540,7 @@ LBABtree::handle_split_ret LBABtree::handle_split( /* pos may be either node_position_t or * node_position_t */ auto split_level = [&](auto &parent_pos, auto &pos) { + LOG_PREFIX(LBATree::handle_split); auto [left, right, pivot] = pos.node->make_split_children(c); auto parent_node = parent_pos.node; @@ -553,6 +554,11 @@ LBABtree::handle_split_ret LBABtree::handle_split( pivot, right->get_paddr()); + DEBUGT("splitted {} into left: {}, right: {}", + c.trans, + *pos.node, + *left, + *right); c.cache.retire_extent(c.trans, pos.node); return std::make_pair(left, right); @@ -643,6 +649,7 @@ LBABtree::handle_merge_ret merge_level( LBABtree::node_position_t &parent_pos, LBABtree::node_position_t &pos) { + LOG_PREFIX(LBABtree::merge_level); if (!parent_pos.node->is_pending()) { parent_pos.node = c.cache.duplicate_for_write( c.trans, parent_pos.node @@ -654,12 +661,14 @@ LBABtree::handle_merge_ret merge_level( bool donor_is_left = ((iter.get_offset() + 1) == parent_pos.node->get_size()); auto donor_iter = donor_is_left ? (iter - 1) : (iter + 1); + DEBUGT("parent: {}, node: {}", c.trans, *parent_pos.node, *pos.node); return get_node( c, depth, donor_iter.get_val().maybe_relative_to(parent_pos.node->get_paddr()) ).si_then([c, iter, donor_iter, donor_is_left, &parent_pos, &pos]( typename NodeType::Ref donor) { + LOG_PREFIX(LBABtree::merge_level); auto [l, r] = donor_is_left ? std::make_pair(donor, pos.node) : std::make_pair(pos.node, donor); @@ -680,9 +689,11 @@ LBABtree::handle_merge_ret merge_level( parent_pos.pos--; } + DEBUGT("l: {}, r: {}, replacement: {}", c.trans, *l, *r, *replacement); c.cache.retire_extent(c.trans, l); c.cache.retire_extent(c.trans, r); } else { + LOG_PREFIX(LBABtree::merge_level); auto [replacement_l, replacement_r, pivot] = l->make_balanced( c, @@ -714,6 +725,8 @@ LBABtree::handle_merge_ret merge_level( pos.pos = orig_position - replacement_l->get_size(); } + DEBUGT("l: {}, r: {}, replacement_l: {}, replacement_r: {}", + c.trans, *l, *r, *replacement_l, *replacement_r); c.cache.retire_extent(c.trans, l); c.cache.retire_extent(c.trans, r); } -- 2.39.5