]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
debug
authorXuehan Xu <xuxuehan@qianxin.com>
Sat, 23 May 2026 05:00:55 +0000 (13:00 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Sun, 24 May 2026 09:40:13 +0000 (17:40 +0800)
src/crimson/os/seastore/backref/btree_backref_manager.cc
src/crimson/os/seastore/cache.cc
src/crimson/os/seastore/extent_pinboard.cc
src/crimson/os/seastore/extent_placement_manager.cc
src/crimson/os/seastore/extent_placement_manager.h
src/crimson/os/seastore/logical_bucket.cc
src/crimson/os/seastore/transaction_manager.cc

index cc0d657934769f26240d02c81a65d43b47d235fc..833329d4d342137ecfff2b8a92a6e2c6449ee46d 100644 (file)
@@ -474,6 +474,7 @@ BtreeBackrefManager::scan_device(
     auto bentry = cache.get_cached_backref_entry(key);
     if (bentry) {
       assert(bentry->paddr == key);
+      INFOT("found in cache: {} {}", t, bentry->paddr, bentry->laddr);
     }
     if (bentry && bentry->laddr == L_ADDR_NULL) {
       INFOT("{} is removed", t, bentry->paddr);
index e82cf96080f24cb4ccd0ce4d0ef3afdf78c94d27..8ad523a333be68f8977bbaa10b7fb1572243fd61 100644 (file)
@@ -1848,6 +1848,10 @@ record_t Cache::prepare_record(
       continue;
     }
 
+    DEBUGT("backref_entry alloc existing {}~0x{:x}",
+           t,
+           i->get_paddr(),
+           i->get_length());
     // Note: commit extents and backref allocations in the same place
     // Note: remapping is split into 2 steps, retire and alloc, they must be
     //       committed atomically together
index 56d5dc6fcb070db8e5e3b7bdb11a2cbef88a3772..c8a8825217552b80e49878010ebbe159bec654d7 100644 (file)
@@ -321,6 +321,7 @@ public:
   }
 
   void add_extent(CachedExtent &extent) {
+    LOG_PREFIX(ExtentPromoter::add_extent);
     assert(!extent.is_linked_to_list());
     assert(extent.is_stable_clean());
     extent.set_pin_state(extent_pin_state_t::PendingPromote);
@@ -328,6 +329,7 @@ public:
     current_contents += extent.get_length();
     intrusive_ptr_add_ref(&extent);
     while (current_contents > promotion_size) {
+      INFO("removing front {}", list.front());
       remove_extent(list.front(), extent_pin_state_t::Fresh);
     }
     if (should_run_promote()) {
@@ -337,6 +339,8 @@ public:
   }
 
   void remove_extent(CachedExtent &extent, extent_pin_state_t new_state) {
+    LOG_PREFIX(ExtentPromoter::remove_extent);
+    INFO("{} {}", extent, new_state);
     assert(extent.is_linked_to_list());
     assert(extent.get_pin_state() == extent_pin_state_t::PendingPromote);
     assert(current_contents >= extent.get_length());
index 9f50d5396f041e4158d6019323a3cad4eb4ff7f5..d90ac875ea7d0751365a9b5296ddc0cb271edfdc 100644 (file)
@@ -211,7 +211,7 @@ void ExtentPlacementManager::init(
   if (cold_cleaner) {
     dynamic_max_rewrite_generation = hot_tier_generations + cold_tier_generations - 1;
   }
-  DEBUG("dynamic_max_rewrite_generation: {}, "
+  INFO("dynamic_max_rewrite_generation: {}, "
         "hot_tier_generations{} , cold_tier_generations {}",
         dynamic_max_rewrite_generation, hot_tier_generations,
         cold_tier_generations);
index 302eecb2ec24d98d7717f277b0fb7370c851e98c..7d3d727964243e27e2c4bd41fcac2dbbcba3fee6 100644 (file)
@@ -742,6 +742,7 @@ private:
       rewrite_gen_t gen,
       write_policy_t policy,
       bool is_tracked) {
+    LOG_PREFIX(ExtentPlacementManager::adjust_generation);
     assert(is_real_type(type));
     if (is_root_type(type)) {
       gen = INLINE_GENERATION;
@@ -789,6 +790,7 @@ private:
     if (is_tracked && gen >= hot_tier_generations &&
         hint != placement_hint_t::REWRITE) {
       gen = hot_tier_generations - 1;
+      SUBINFO(seastore_epm, "setting gen to {}", gen);
     }
 
     if (gen > dynamic_max_rewrite_generation) {
@@ -1096,6 +1098,8 @@ private:
     }
 
     seastar::future<> wait_background() {
+      LOG_PREFIX(BackgroundProcess::wait_background);
+      SUBINFO(seastore_epm, "");
       if (!blocking_io) {
         blocking_io = seastar::promise<>();
       }
@@ -1220,7 +1224,7 @@ private:
 #endif
 
     struct eviction_state_t {
-      enum class eviction_mode_t {
+      enum class eviction_mode_t : uint8_t {
         STOP,     // generation greater than or equal to MIN_COLD_GENERATION
                   // will be set to MIN_COLD_GENERATION - 1, which means
                   // no extents will be evicted.
@@ -1266,6 +1270,8 @@ private:
 
       rewrite_gen_t adjust_generation_with_eviction(rewrite_gen_t gen) {
         rewrite_gen_t ret = gen;
+        LOG_PREFIX(eviction_state_t::adjust_generation_with_eviction);
+        SUBINFO(seastore_epm, "gen={} mode={}", gen, (uint8_t)eviction_mode);
         switch(eviction_mode) {
         case eviction_mode_t::STOP:
           if (gen == hot_tier_generations) {
@@ -1333,6 +1339,8 @@ private:
 
 #ifdef CRIMSON_TEST_WORKLOAD
       void force_fast_evict() {
+        LOG_PREFIX(eviction_state_t::force_fast_evict);
+        SUBINFO(seastore_epm, "");
         eviction_mode = eviction_mode_t::FAST;
       }
 #endif
index ecbb7ff5c596362c3aae346c18edae8ce6e3a93f..1ca5ac0559c11febb0b9a1e2cce79e66d6993207 100644 (file)
@@ -55,7 +55,7 @@ public:
     assert(laddr == laddr.get_object_prefix());
     auto iter = index.find(laddr);
     if (iter != index.end()) {
-      TRACE("remove bucket: {}", laddr);
+      INFO("remove bucket: {}", laddr);
       lru.erase(iter->second);
       index.erase(iter);
     }
@@ -130,7 +130,7 @@ public:
 
     co_await ecb->submit_transaction_direct(t);
 
-    DEBUGT("finish demoting {} buckets with {} bytes evicted and {} bytes demoted",
+    INFOT("finish demoting {} buckets with {} bytes evicted and {} bytes demoted",
           t, completed_buckets.size(), evicted_size, demoted_size);
     stat.demoted_bucket_count += completed_buckets.size();
     stat.demoted_size += demoted_size;
index 54184acfbf68d0eaabf421255639522f3957fd77..18bbd4ccbc0a12d1f4bcd68288eea2e54f8d2731 100644 (file)
@@ -850,7 +850,7 @@ TransactionManager::rewrite_logical_extent(
     }
     nextent->rewrite(t, *extent, 0);
 
-    DEBUGT("rewriting meta -- {} to {}", t, *extent, *nextent);
+    INFOT("rewriting meta -- {} to {}", t, *extent, *nextent);
 
 #ifndef NDEBUG
     if (get_checksum_needed(extent->get_paddr())) {
@@ -912,7 +912,7 @@ TransactionManager::rewrite_logical_extent(
       bool first_extent = (off == 0);
       ceph_assert(left >= nextent->get_length());
       nextent->rewrite(t, *extent, off);
-      DEBUGT("rewriting data -- {} to {}", t, *extent, *nextent);
+      INFOT("rewriting data -- {} to {}", t, *extent, *nextent);
 
       /* This update_mapping is, strictly speaking, unnecessary for delayed_alloc
        * extents since we're going to do it again once we either do the ool write
@@ -1172,7 +1172,7 @@ TransactionManager::promote_extent(
 {
   LOG_PREFIX(TransactionManager::promote_extent);
   assert(epm->is_cold_device(extent->get_paddr().get_device_id()));
-  DEBUGT("promote extent: {}", t, *extent);
+  INFOT("promote extent: {}", t, *extent);
   ceph_assert(extent->is_logical());
 
   std::vector<LogicalChildNodeRef> promoted_extents;
@@ -1420,7 +1420,7 @@ TransactionManager::demote_region(
 {
   LOG_PREFIX(TransactionManager::demote_region);
   auto prefix = start.get_object_prefix();
-  DEBUGT("start demote {}", t, prefix);
+  INFOT("start demote {}", t, prefix);
   auto it = co_await lba_manager->upper_bound_right(
     t, start
   ).handle_error_interruptible(
@@ -1434,21 +1434,21 @@ TransactionManager::demote_region(
       break;
     }
     if (it.has_shadow_val()) {
-      DEBUGT("demote shadow {}", t, it);
+      INFOT("demote shadow {}", t, it);
       auto extent = co_await relocate_shadow_extent(t, it);
       ret.demoted_size += extent->get_length();
       LBAMapping nit = co_await lba_manager->demote_extent(t, it, *extent);
       it = co_await nit.next();
     } else if (!it.is_indirect() && !it.is_zero_reserved() &&
       !epm->is_cold_device(it.get_val().get_device_id())) {
-      DEBUGT("demote hot {}", t, it);
+      INFOT("demote hot {}", t, it);
       auto extent = co_await read_cursor_by_type(
         t, it.direct_cursor, it.get_extent_type());
       ret.evicted_size += extent->get_length();
       extents.push_back(extent);
       it = co_await it.next();
     } else {
-      DEBUGT("skip {}", t, it);
+      INFOT("skip {}", t, it);
       it = co_await it.next();
     }
   }