]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore: misc fixes and log adjustments 47345/head
authorYingxin Cheng <yingxin.cheng@intel.com>
Fri, 29 Jul 2022 06:24:03 +0000 (14:24 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Fri, 29 Jul 2022 07:56:32 +0000 (15:56 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/async_cleaner.cc
src/crimson/os/seastore/cache.cc
src/crimson/os/seastore/cached_extent.h
src/crimson/os/seastore/journal/segment_allocator.cc
src/crimson/os/seastore/journal/segmented_journal.cc
src/crimson/os/seastore/segment_manager_group.cc
src/crimson/os/seastore/segment_seq_allocator.h

index 37f917c3f9c6e3b156c670a3eb294ea7706b7b73..153f6d101e4aec0bc765544142dbe8ff8bb1a30c 100644 (file)
@@ -1077,7 +1077,7 @@ AsyncCleaner::mount_ret AsyncCleaner::mount()
     return sm_group->read_segment_header(
       segment_id
     ).safe_then([segment_id, this, FNAME](auto header) {
-      INFO("segment_id={} -- {}", segment_id, header);
+      DEBUG("segment_id={} -- {}", segment_id, header);
       auto s_type = header.get_type();
       if (s_type == segment_type_t::NULL_SEG) {
         ERROR("got null segment, segment_id={} -- {}", segment_id, header);
@@ -1134,19 +1134,20 @@ AsyncCleaner::scan_extents_ret AsyncCleaner::scan_no_tail_segment(
   const segment_header_t &segment_header,
   segment_id_t segment_id)
 {
+  LOG_PREFIX(AsyncCleaner::scan_no_tail_segment);
+  INFO("scan {} {}", segment_id, segment_header);
   return seastar::do_with(
     scan_valid_records_cursor({
       segments[segment_id].seq,
       paddr_t::make_seg_paddr(segment_id, 0)
     }),
     SegmentManagerGroup::found_record_handler_t(
-      [this, segment_id, segment_header](
+      [this, segment_id, segment_header, FNAME](
         record_locator_t locator,
         const record_group_header_t &record_group_header,
         const bufferlist& mdbuf
       ) mutable -> SegmentManagerGroup::scan_valid_records_ertr::future<>
     {
-      LOG_PREFIX(AsyncCleaner::scan_no_tail_segment);
       DEBUG("{} {}, decoding {} records",
             segment_id, segment_header.get_type(), record_group_header.records);
 
index 953429407476b5e533b39c47208f0d92719c92c9..88e4a6b2e9a12e1570943d76f267f0ae87ea1727 100644 (file)
@@ -1579,7 +1579,10 @@ void Cache::init()
     root = nullptr;
   }
   root = new RootBlock();
-  root->state = CachedExtent::extent_state_t::CLEAN;
+  root->init(CachedExtent::extent_state_t::CLEAN,
+             P_ADDR_NULL,
+             PLACEMENT_HINT_NULL,
+             NULL_GENERATION);
   INFO("init root -- {}", *root);
   extents.insert(*root);
 }
index a4dfd68c246280abc6bde3f3735b8b04ef4f55c9..ff3f66d877bc5a18ccc41c305f0dba036a8216a3 100644 (file)
@@ -212,7 +212,7 @@ public:
        << ", last_committed_crc=" << last_committed_crc
        << ", refcount=" << use_count()
        << ", user_hint=" << user_hint
-       << ", reclaim_gen=" << reclaim_generation;
+       << ", reclaim_gen=" << reclaim_gen_printer_t{reclaim_generation};
     if (state != extent_state_t::INVALID &&
         state != extent_state_t::CLEAN_PENDING) {
       print_detail(out);
index b96032f9e8935f30b7ad56f0941b43d4199e2ffd..b8b193ae39e6d80a5d8e98e3c4348c6a9d992c18 100644 (file)
@@ -86,8 +86,7 @@ SegmentAllocator::do_open(bool is_mkfs)
       type,
       category,
       gen};
-    INFO("{} writing header to new segment ... -- {}",
-         print_name, header);
+    INFO("{} writing header {}", print_name, header);
 
     auto header_length = get_block_size();
     bufferlist bl;
@@ -141,7 +140,7 @@ SegmentAllocator::open(bool is_mkfs)
   oss << fmt::format("{}_G{}", category, gen);
   print_name = oss.str();
 
-  INFO("{}", print_name);
+  DEBUG("{}", print_name);
   return do_open(is_mkfs);
 }
 
@@ -199,7 +198,7 @@ SegmentAllocator::close()
   return [this] {
     LOG_PREFIX(SegmentAllocator::close);
     if (current_segment) {
-      INFO("{} close current segment", print_name);
+      DEBUG("{} close current segment", print_name);
       return close_segment();
     } else {
       INFO("{} no current segment", print_name);
@@ -233,12 +232,10 @@ SegmentAllocator::close_segment()
     close_seg_info.num_extents};
   ceph::bufferlist bl;
   encode(tail, bl);
-  INFO("{} close segment id={}, seq={}, written_to={}, nonce={}",
+  INFO("{} close segment {}, written_to={}",
        print_name,
-       close_segment_id,
-       close_seg_info.seq,
-       written_to,
-       current_segment_nonce);
+       tail,
+       written_to);
 
   bufferptr bp(ceph::buffer::create_page_aligned(get_block_size()));
   bp.zero();
index 1465479d547f3218a6e98fdd01e540b170327d50..71579ed1a4b50a9acc20880991d6810d7a38ca7e 100644 (file)
@@ -104,6 +104,9 @@ SegmentedJournal::prep_replay_segments(
   auto last_header = segments.rbegin()->second;
   return scan_last_segment(last_segment_id, last_header
   ).safe_then([this, FNAME, segments=std::move(segments)] {
+    INFO("dirty_tail={}, alloc_tail={}",
+         segment_provider.get_dirty_tail(),
+         segment_provider.get_alloc_tail());
     auto journal_tail = segment_provider.get_journal_tail();
     auto journal_tail_paddr = journal_tail.offset;
     ceph_assert(journal_tail != JOURNAL_SEQ_NULL);
@@ -122,8 +125,7 @@ SegmentedJournal::prep_replay_segments(
     }
 
     auto num_segments = segments.end() - from;
-    INFO("{} segments to replay from {}",
-         num_segments, journal_tail);
+    INFO("{} segments to replay", num_segments);
     auto ret = replay_segments_t(num_segments);
     std::transform(
       from, segments.end(), ret.begin(),
@@ -156,7 +158,7 @@ SegmentedJournal::scan_last_segment(
     segment_header.segment_seq,
     paddr_t::make_seg_paddr(segment_id, 0)
   };
-  INFO("scanning {} for journal tail deltas", seq);
+  INFO("scanning journal tail deltas -- {}", segment_header);
   return seastar::do_with(
     scan_valid_records_cursor(seq),
     SegmentManagerGroup::found_record_handler_t(
@@ -198,7 +200,7 @@ SegmentedJournal::scan_last_segment(
               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);
+              DEBUG("got {}, at {}", tail_delta, start_seq);
               ceph_assert(tail_delta.dirty_tail != JOURNAL_SEQ_NULL);
               ceph_assert(tail_delta.alloc_tail != JOURNAL_SEQ_NULL);
               segment_provider.update_journal_tails(
index d27131d985cabb7c8d0dc37165b5b234c8cea2c7..ff87fda71e7c33921ecd411c5536f7be679b0410 100644 (file)
@@ -338,8 +338,8 @@ SegmentManagerGroup::find_journal_segment_headers()
       LOG_PREFIX(SegmentManagerGroup::find_journal_segment_headers);
       auto device_id = sm->get_device_id();
       auto num_segments = sm->get_num_segments();
-      INFO("processing {} with {} segments",
-           device_id_printer_t{device_id}, num_segments);
+      DEBUG("processing {} with {} segments",
+            device_id_printer_t{device_id}, num_segments);
       return crimson::do_for_each(
         boost::counting_iterator<device_segment_id_t>(0),
         boost::counting_iterator<device_segment_id_t>(num_segments),
index e4a864a7b3b66b5ad8e4372bb23098a7b3eba95c..c659a9f6e3dc18c662bce8a3a156c8a67d4fb21e 100644 (file)
@@ -26,9 +26,9 @@ public:
 private:
   void set_next_segment_seq(segment_seq_t seq) {
     LOG_PREFIX(SegmentSeqAllocator::set_next_segment_seq);
-    SUBINFO(
+    SUBDEBUG(
       seastore_journal,
-      "type {}, next_segment_seq={}, cur_segment_seq={}",
+      "{}, next={}, cur={}",
       type,
       segment_seq_printer_t{seq},
       segment_seq_printer_t{next_segment_seq});