]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/os/seastore/lba_manager: move lba_tree_inner_stats into LBAManager
authorYingxin Cheng <yingxin.cheng@intel.com>
Mon, 7 Feb 2022 10:34:40 +0000 (18:34 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Mon, 7 Feb 2022 10:58:35 +0000 (18:58 +0800)
Cleanup, change stats from LBATree static member to BtreeLBAManager
class member.

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.cc
src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.h
src/crimson/os/seastore/lba_manager/btree/lba_btree.h

index b699a5ed88fda6fa4e203c07897e250871df75b5..32e2b5ea19eedde2c00fa1b8d3a871e2125349d1 100644 (file)
@@ -51,7 +51,6 @@ BtreeLBAManager::get_mappings(
       return LBABtree::iterate_repeat(
        c,
        btree.upper_bound_right(c, offset),
-       false,
        [&ret, offset, length](auto &pos) {
          if (pos.is_end() || pos.get_key() >= (offset + length)) {
            return LBABtree::iterate_repeat_ret_inner(
@@ -139,17 +138,17 @@ BtreeLBAManager::alloc_extent(
   LOG_PREFIX(BtreeLBAManager::alloc_extent);
   DEBUGT("hint: {}, length: {}", t, hint, len);
   auto c = get_context(t);
-  ++LBABtree::lba_tree_inner_stats.num_alloc_extents;
+  ++stats.num_alloc_extents;
   return with_btree_state<state_t>(
     c,
     hint,
-    [FNAME, c, hint, len, addr, &t](auto &btree, auto &state) {
+    [this, FNAME, c, hint, len, addr, &t](auto &btree, auto &state) {
       return LBABtree::iterate_repeat(
        c,
        btree.upper_bound_right(c, hint),
-       true,
-       [&state, len, &t, hint](auto &pos) {
+       [this, &state, len, &t, hint](auto &pos) {
          LOG_PREFIX(BtreeLBAManager::alloc_extent);
+         ++stats.num_alloc_extents_iter_nexts;
          if (!pos.is_end()) {
            DEBUGT("iterate_repeat: pos: {}~{}, state: {}~{}, hint: {}",
                    t,
@@ -296,7 +295,6 @@ BtreeLBAManager::scan_mappings_ret BtreeLBAManager::scan_mappings(
       return LBABtree::iterate_repeat(
        c,
        btree.upper_bound_right(c, begin),
-       false,
        [f=std::move(f), begin, end](auto &pos) {
          if (pos.is_end() || pos.get_key() >= end) {
            return LBABtree::iterate_repeat_ret_inner(
@@ -328,7 +326,6 @@ BtreeLBAManager::scan_mapped_space_ret BtreeLBAManager::scan_mapped_space(
          return LBABtree::iterate_repeat(
            c,
            btree.lower_bound(c, 0, &visitor),
-           false,
            [&visitor](auto &pos) {
              if (pos.is_end()) {
                return LBABtree::iterate_repeat_ret_inner(
@@ -431,21 +428,21 @@ BtreeLBAManager::BtreeLBAManager(
   register_metrics();
 }
 
-LBABtree::lba_tree_inner_stats_t LBABtree::lba_tree_inner_stats;
 void BtreeLBAManager::register_metrics()
 {
+  stats = {};
   namespace sm = seastar::metrics;
   metrics.add_group(
     "LBA",
     {
       sm::make_counter(
         "alloc_extents",
-        LBABtree::lba_tree_inner_stats.num_alloc_extents,
+        stats.num_alloc_extents,
         sm::description("total number of lba alloc_extent operations")
       ),
       sm::make_counter(
         "alloc_extents_iter_nexts",
-        LBABtree::lba_tree_inner_stats.num_alloc_extents_iter_nexts,
+        stats.num_alloc_extents_iter_nexts,
         sm::description("total number of iterator next operations during extent allocation")
       ),
     }
index 7194019d62aff6569c5d4afb4f156f7706cf9552..b6443f9f28ed1461865822c5fe5ccedae1ebab98 100644 (file)
@@ -128,6 +128,11 @@ private:
 
   btree_pin_set_t pin_set;
 
+  struct {
+    uint64_t num_alloc_extents = 0;
+    uint64_t num_alloc_extents_iter_nexts = 0;
+  } stats;
+
   op_context_t get_context(Transaction &t) {
     return op_context_t{cache, t, &pin_set};
   }
index 163f7b11d9c8a4d9cacfcfd295c0ed7923950621..7f6fa5faceb153e09e8da6ca43d0486759ddf800 100644 (file)
@@ -27,11 +27,6 @@ public:
 
   using mapped_space_visitor_t = LBAManager::scan_mapped_space_func_t;
 
-  struct lba_tree_inner_stats_t {
-    uint64_t num_alloc_extents = 0;
-    uint64_t num_alloc_extents_iter_nexts = 0;
-  } static lba_tree_inner_stats;
-
   class iterator {
   public:
     iterator(const iterator &rhs) noexcept :
@@ -268,30 +263,26 @@ public:
   static base_iertr::future<> iterate_repeat(
     op_context_t c,
     iterator_fut &&iter_fut,
-    bool need_count,
     F &&f,
     mapped_space_visitor_t *visitor=nullptr) {
     return std::move(
       iter_fut
-    ).si_then([c, need_count, visitor, f=std::forward<F>(f)](auto iter) {
+    ).si_then([c, visitor, f=std::forward<F>(f)](auto iter) {
       return seastar::do_with(
        iter,
        std::move(f),
-       [c, need_count, visitor](auto &pos, auto &f) {
+       [c, visitor](auto &pos, auto &f) {
          return trans_intr::repeat(
-           [c, need_count, visitor, &f, &pos] {
+           [c, visitor, &f, &pos] {
              return f(
                pos
-             ).si_then([c, need_count, visitor, &pos](auto done) {
+             ).si_then([c, visitor, &pos](auto done) {
                if (done == seastar::stop_iteration::yes) {
                  return iterate_repeat_ret_inner(
                    interruptible::ready_future_marker{},
                    seastar::stop_iteration::yes);
                } else {
                  ceph_assert(!pos.is_end());
-                 if (need_count) {
-                   ++LBABtree::lba_tree_inner_stats.num_alloc_extents_iter_nexts;
-                 }
                  return pos.next(
                    c, visitor
                  ).si_then([&pos](auto next) {