]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/lba_manager: better debug outputs for lba node merge
authorXuehan Xu <xxhdx1985126@gmail.com>
Wed, 17 Nov 2021 01:09:41 +0000 (09:09 +0800)
committerXuehan Xu <xxhdx1985126@gmail.com>
Wed, 17 Nov 2021 01:12:47 +0000 (09:12 +0800)
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
src/crimson/os/seastore/lba_manager/btree/lba_btree.cc

index 0263698b0696871150b6668b113bf3ce379f8124..ed9d4f5ed3e51140df3123a331afafbc43971801 100644 (file)
@@ -540,6 +540,7 @@ LBABtree::handle_split_ret LBABtree::handle_split(
   /* pos may be either node_position_t<LBALeafNode> or
    * node_position_t<LBAInternalNode> */
   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<LBAInternalNode> &parent_pos,
   LBABtree::node_position_t<NodeType> &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<NodeType>(
     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);
     }