]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore: improve logs
authorYingxin Cheng <yingxin.cheng@intel.com>
Mon, 25 Jul 2022 05:22:32 +0000 (13:22 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Mon, 25 Jul 2022 08:32:32 +0000 (16:32 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/cache.cc
src/crimson/os/seastore/cache.h
src/crimson/os/seastore/journal/segmented_journal.cc
src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.cc
src/crimson/os/seastore/seastore_types.cc
src/crimson/os/seastore/seastore_types.h

index 1093180203295004b7d7cf41f12cf77a69b5f27e..c889861ffe3e9883463f7de13d7e00f9e0dd6e89 100644 (file)
@@ -1253,6 +1253,7 @@ record_t Cache::prepare_record(
       get_oldest_backref_dirty_from().value_or(JOURNAL_SEQ_NULL),
       get_oldest_dirty_from().value_or(JOURNAL_SEQ_NULL)
     };
+    SUBDEBUGT(seastore_t, "update tails as delta {}", t, tails);
     bufferlist bl;
     encode(tails, bl);
     delta_info_t delta;
@@ -1284,11 +1285,13 @@ record_t Cache::prepare_record(
   }
 
   SUBDEBUGT(seastore_t,
-      "commit H{} dirty_from={}, {} read, {} fresh with {} invalid, "
+      "commit H{} dirty_from={}, alloc_from={}, "
+      "{} read, {} fresh with {} invalid, "
       "{} delta, {} retire, {}(md={}B, data={}B) ool-records, "
       "{}B md, {}B data, modify_time={}",
       t, (void*)&t.get_handle(),
       get_oldest_dirty_from().value_or(JOURNAL_SEQ_NULL),
+      get_oldest_backref_dirty_from().value_or(JOURNAL_SEQ_NULL),
       read_stat,
       fresh_stat,
       fresh_invalid_stat,
@@ -1360,7 +1363,7 @@ void Cache::backref_batch_update(
   const journal_seq_t &seq)
 {
   LOG_PREFIX(Cache::backref_batch_update);
-  DEBUG("inserting {} entries", list.size());
+  DEBUG("inserting {} entries at {}", list.size(), seq);
   if (!backref_buffer) {
     backref_buffer = std::make_unique<backref_cache_t>();
   }
@@ -1571,10 +1574,12 @@ Cache::mkfs_iertr::future<> Cache::mkfs(Transaction &t)
 Cache::close_ertr::future<> Cache::close()
 {
   LOG_PREFIX(Cache::close);
-  INFO("close with {}({}B) dirty from {}, {}({}B) lru, totally {}({}B) indexed extents",
+  INFO("close with {}({}B) dirty, dirty_from={}, alloc_from={}, "
+       "{}({}B) lru, totally {}({}B) indexed extents",
        dirty.size(),
        stats.dirty_bytes,
        get_oldest_dirty_from().value_or(JOURNAL_SEQ_NULL),
+       get_oldest_backref_dirty_from().value_or(JOURNAL_SEQ_NULL),
        lru.get_current_contents_extents(),
        lru.get_current_contents_bytes(),
        extents.size(),
@@ -1647,7 +1652,7 @@ Cache::replay_delta(
   // replay dirty
   if (journal_seq < dirty_tail) {
     DEBUG("journal_seq {} < dirty_tail {}, don't replay {}",
-      journal_seq, alloc_tail, delta);
+      journal_seq, dirty_tail, delta);
     return replay_delta_ertr::now();
   }
 
index e763264d41dcdb607c310fe41f296d652b2394e3..99dc301df99d0fd63644a8de7714215d02060099 100644 (file)
@@ -783,12 +783,13 @@ public:
   {
     LOG_PREFIX(Cache::init_cached_extents);
     SUBINFOT(seastore_cache,
-        "start with {}({}B) extents, {} dirty, from {}",
+        "start with {}({}B) extents, {} dirty, dirty_from={}, alloc_from={}",
         t,
         extents.size(),
         extents.get_bytes(),
         dirty.size(),
-        get_oldest_dirty_from().value_or(JOURNAL_SEQ_NULL));
+        get_oldest_dirty_from().value_or(JOURNAL_SEQ_NULL),
+        get_oldest_backref_dirty_from().value_or(JOURNAL_SEQ_NULL));
 
     // journal replay should has been finished at this point,
     // Cache::root should have been inserted to the dirty list
@@ -824,12 +825,13 @@ public:
       }
     ).si_then([this, FNAME, &t] {
       SUBINFOT(seastore_cache,
-          "finish with {}({}B) extents, {} dirty, from {}",
+          "finish with {}({}B) extents, {} dirty, dirty_from={}, alloc_from={}",
           t,
           extents.size(),
           extents.get_bytes(),
           dirty.size(),
-          get_oldest_dirty_from().value_or(JOURNAL_SEQ_NULL));
+          get_oldest_dirty_from().value_or(JOURNAL_SEQ_NULL),
+          get_oldest_backref_dirty_from().value_or(JOURNAL_SEQ_NULL));
     });
   }
 
index a8b3c043a6fde07ff131fac02a734d01636e1e96..3e32ada9eb13b74a8acf0e630feb00819bbc0602 100644 (file)
@@ -197,11 +197,13 @@ SegmentedJournal::scan_last_segment(
               found_delta = true;
               journal_tail_delta_t tail_delta;
               decode(tail_delta, delta.bl);
+              auto start_seq = locator.write_result.start_seq;
+              INFO("got {}, at seq {}", tail_delta, start_seq);
               if (tail_delta.alloc_tail == JOURNAL_SEQ_NULL) {
-                tail_delta.alloc_tail = locator.write_result.start_seq;
+                tail_delta.alloc_tail = start_seq;
               }
               if (tail_delta.dirty_tail == JOURNAL_SEQ_NULL) {
-                tail_delta.dirty_tail = locator.write_result.start_seq;
+                tail_delta.dirty_tail = start_seq;
               }
               segment_provider.update_journal_tails(
                   tail_delta.dirty_tail, tail_delta.alloc_tail);
index 502978f6bc4df8b41c023c09bb2e9dffee6e0d4e..7b173a23f0f1176047b26babf4bf23bd6ac23399 100644 (file)
@@ -128,7 +128,7 @@ BtreeLBAManager::get_mapping(
        c, offset
       ).si_then([FNAME, offset, c](auto iter) -> get_mapping_ret {
        if (iter.is_end() || iter.get_key() != offset) {
-         DEBUGT("{} doesn't exist", c.trans, offset);
+         ERRORT("laddr={} doesn't exist", c.trans, offset);
          return crimson::ct_error::enoent::make();
        } else {
          TRACET("{} got {}, {}",
@@ -526,7 +526,7 @@ BtreeLBAManager::_update_mapping_ret BtreeLBAManager::_update_mapping(
                -> _update_mapping_ret {
        if (iter.is_end() || iter.get_key() != addr) {
          LOG_PREFIX(BtreeLBAManager::_update_mapping);
-         DEBUGT("laddr={} doesn't exist", c.trans, addr);
+         ERRORT("laddr={} doesn't exist", c.trans, addr);
          return crimson::ct_error::enoent::make();
        }
 
index 21f7e547efda3e491503b5c252312fa55efff3a0..72ab3b81f051a9635095cd8f2e93ebba2c310ca5 100644 (file)
@@ -255,6 +255,14 @@ std::ostream &operator<<(std::ostream &out, const delta_info_t &delta)
             << ")";
 }
 
+std::ostream &operator<<(std::ostream &out, const journal_tail_delta_t &delta)
+{
+  return out << "journal_tail_delta_t("
+             << "alloc_tail=" << delta.alloc_tail
+             << ", dirty_tail=" << delta.dirty_tail
+             << ")";
+}
+
 std::ostream &operator<<(std::ostream &out, const extent_info_t &info)
 {
   return out << "extent_info_t("
index a745f29e30d24056b74fd8a45fcf1cff64da5b46..a7849b0a20e66376d1115eed89344440b7c277c3 100644 (file)
@@ -1120,6 +1120,8 @@ struct journal_tail_delta_t {
   }
 };
 
+std::ostream &operator<<(std::ostream &out, const journal_tail_delta_t &delta);
+
 class object_data_t {
   laddr_t reserved_data_base = L_ADDR_NULL;
   extent_len_t reserved_data_len = 0;