]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/seastore_types: pretty print data structures
authorYingxin Cheng <yingxin.cheng@intel.com>
Wed, 12 Jan 2022 05:04:14 +0000 (13:04 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Fri, 14 Jan 2022 15:06:43 +0000 (23:06 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/seastore_types.cc
src/crimson/os/seastore/seastore_types.h

index a68aa4de8be2ff922d1d47e01a09ccb8e84dfd32..5846fa8b585832efbd84e774be124465ff6ac6fe 100644 (file)
@@ -69,10 +69,10 @@ std::ostream &operator<<(std::ostream &out, const paddr_t &rhs)
 
 std::ostream &operator<<(std::ostream &out, const journal_seq_t &seq)
 {
-  return out << "journal_seq_t(segment_seq="
-            << seq.segment_seq << ", offset="
-            << seq.offset
-            << ")";
+  return out << "journal_seq_t("
+             << "segment_seq=" << seq.segment_seq
+             << ", offset=" << seq.offset
+             << ")";
 }
 
 std::ostream &operator<<(std::ostream &out, extent_types_t t)
@@ -152,7 +152,7 @@ std::ostream &operator<<(std::ostream &out, const segment_header_t &header)
 {
   return out << "segment_header_t("
             << "segment_seq=" << header.journal_segment_seq
-            << ", physical_segment_id=" << header.physical_segment_id
+            << ", segment_id=" << header.physical_segment_id
             << ", journal_tail=" << header.journal_tail
             << ", segment_nonce=" << header.segment_nonce
             << ", out-of-line=" << header.out_of_line
@@ -179,6 +179,34 @@ void record_size_t::account(const delta_info_t& delta)
   plain_mdlength += ceph::encoded_sizeof(delta);
 }
 
+std::ostream &operator<<(std::ostream& out, const record_size_t& rsize)
+{
+  return out << "record_size_t("
+             << "raw_md=" << rsize.get_raw_mdlength()
+             << ", data=" << rsize.dlength
+             << ")";
+}
+
+std::ostream &operator<<(std::ostream& out, const record_t& r)
+{
+  return out << "record_t("
+             << "num_extents=" << r.extents.size()
+             << ", num_deltas=" << r.deltas.size()
+             << ")";
+}
+
+std::ostream& operator<<(std::ostream& out, const record_group_header_t& h)
+{
+  return out << "record_group_header_t("
+             << "num_records=" << h.records
+             << ", mdlength=" << h.mdlength
+             << ", dlength=" << h.dlength
+             << ", nonce=" << h.segment_nonce
+             << ", committed_to=" << h.committed_to
+             << ", data_crc=" << h.data_crc
+             << ")";
+}
+
 extent_len_t record_group_size_t::get_raw_mdlength() const
 {
   return plain_mdlength +
@@ -199,6 +227,24 @@ void record_group_size_t::account(
   block_size = _block_size;
 }
 
+std::ostream& operator<<(std::ostream& out, const record_group_size_t& size)
+{
+  return out << "record_group_size_t("
+             << "raw_md=" << size.get_raw_mdlength()
+             << ", data=" << size.dlength
+             << ", block_size=" << size.block_size
+             << ", fullness=" << size.get_fullness()
+             << ")";
+}
+
+std::ostream& operator<<(std::ostream& out, const record_group_t& rg)
+{
+  return out << "record_group_t("
+             << "num_records=" << rg.records.size()
+             << ", " << rg.size
+             << ")";
+}
+
 ceph::bufferlist encode_record(
   record_t&& record,
   extent_len_t block_size,
@@ -516,6 +562,22 @@ blk_paddr_t convert_paddr_to_blk_paddr(paddr_t addr, size_t block_size,
          (block_size * blocks_per_segment) + s.get_segment_off());
 }
 
+std::ostream& operator<<(std::ostream& out, const write_result_t& w)
+{
+  return out << "write_result_t("
+             << "start=" << w.start_seq
+             << ", length=" << w.length
+             << ")";
+}
+
+std::ostream& operator<<(std::ostream& out, const record_locator_t& l)
+{
+  return out << "record_locator_t("
+             << "block_base=" << l.record_block_base
+             << ", " << l.write_result
+             << ")";
+}
+
 void scan_valid_records_cursor::emplace_record_group(
     const record_group_header_t& header, ceph::bufferlist&& md_bl)
 {
@@ -532,4 +594,14 @@ void scan_valid_records_cursor::emplace_record_group(
               new_committed_to < seq);
 }
 
+std::ostream& operator<<(std::ostream& out, const scan_valid_records_cursor& c)
+{
+  return out << "cursor(last_valid_header_found=" << c.last_valid_header_found
+             << ", seq=" << c.seq
+             << ", last_committed=" << c.last_committed
+             << ", pending_record_groups=" << c.pending_record_groups.size()
+             << ", num_consumed_records=" << c.num_consumed_records
+             << ")";
+}
+
 }
index 165419ef1f18b2e18645be6d87d16953aba8d21a..29ea8159d763927dc02212e30443c0ef1097135e 100644 (file)
@@ -1230,6 +1230,7 @@ struct record_size_t {
   void account(const delta_info_t& delta);
 };
 WRITE_EQ_OPERATORS_2(record_size_t, plain_mdlength, dlength);
+std::ostream &operator<<(std::ostream&, const record_size_t&);
 
 struct record_t {
   std::vector<extent_t> extents;
@@ -1272,6 +1273,7 @@ struct record_t {
     deltas.push_back(std::move(delta));
   }
 };
+std::ostream &operator<<(std::ostream&, const record_t&);
 
 struct record_header_t {
   uint32_t deltas;              // number of deltas
@@ -1307,6 +1309,7 @@ struct record_group_header_t {
     DENC_FINISH(p);
   }
 };
+std::ostream& operator<<(std::ostream&, const record_group_header_t&);
 
 struct record_group_size_t {
   extent_len_t plain_mdlength = 0; // mdlength without the group header
@@ -1351,6 +1354,7 @@ struct record_group_size_t {
                extent_len_t block_size);
 };
 WRITE_EQ_OPERATORS_3(record_group_size_t, plain_mdlength, dlength, block_size);
+std::ostream& operator<<(std::ostream&, const record_group_size_t&);
 
 struct record_group_t {
   std::vector<record_t> records;
@@ -1384,6 +1388,7 @@ struct record_group_t {
     size = {};
   }
 };
+std::ostream& operator<<(std::ostream&, const record_group_t&);
 
 ceph::bufferlist encode_record(
   record_t&& record,
@@ -1435,11 +1440,13 @@ struct write_result_t {
     return start_seq.add_offset(length);
   }
 };
+std::ostream& operator<<(std::ostream&, const write_result_t&);
 
 struct record_locator_t {
   paddr_t record_block_base;
   write_result_t write_result;
 };
+std::ostream& operator<<(std::ostream&, const record_locator_t&);
 
 /// scan segment for end incrementally
 struct scan_valid_records_cursor {
@@ -1491,6 +1498,7 @@ struct scan_valid_records_cursor {
     journal_seq_t seq)
     : seq(seq) {}
 };
+std::ostream& operator<<(std::ostream&, const scan_valid_records_cursor&);
 
 inline const seg_paddr_t& paddr_t::as_seg_paddr() const {
   assert(get_addr_type() == addr_types_t::SEGMENT);