From a547a8bf53e323a2a63252baae4ea8ad75457d6d Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Fri, 19 Mar 2021 20:09:18 -0700 Subject: [PATCH] crimson/os/seastore: more debugging Signed-off-by: Samuel Just --- src/crimson/os/seastore/journal.cc | 10 ++++++++++ src/crimson/os/seastore/journal.h | 1 + .../os/seastore/lba_manager/btree/btree_lba_manager.cc | 10 +++++++++- src/crimson/os/seastore/segment_cleaner.cc | 3 +++ src/crimson/os/seastore/transaction_manager.cc | 7 +++++++ 5 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/crimson/os/seastore/journal.cc b/src/crimson/os/seastore/journal.cc index f15e890193926..f2b5a7b97ee41 100644 --- a/src/crimson/os/seastore/journal.cc +++ b/src/crimson/os/seastore/journal.cc @@ -28,6 +28,16 @@ std::ostream &operator<<(std::ostream &out, const segment_header_t &header) << ")"; } + +std::ostream &operator<<(std::ostream &out, const extent_info_t &info) +{ + return out << "extent_info_t(" + << " type: " << info.type + << " addr: " << info.addr + << " len: " << info.len + << ")"; +} + segment_nonce_t generate_nonce( segment_seq_t seq, const seastore_meta_t &meta) diff --git a/src/crimson/os/seastore/journal.h b/src/crimson/os/seastore/journal.h index 8def2be3a4a2d..9031d9b1acb95 100644 --- a/src/crimson/os/seastore/journal.h +++ b/src/crimson/os/seastore/journal.h @@ -91,6 +91,7 @@ struct extent_info_t { DENC_FINISH(p); } }; +std::ostream &operator<<(std::ostream &out, const extent_info_t &header); /** * Callback interface for managing available segments diff --git a/src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.cc b/src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.cc index 8509825baf678..aa9fea07904dd 100644 --- a/src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.cc +++ b/src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.cc @@ -346,10 +346,18 @@ BtreeLBAManager::rewrite_extent_ret BtreeLBAManager::rewrite_extent( CachedExtentRef extent) { if (extent->has_been_invalidated()) { - logger().debug("BTreeLBAManager::rewrite_extent: {} is invalid, returning eagain"); + logger().debug( + "BTreeLBAManager::rewrite_extent: {} is invalid, returning eagain", + *extent + ); return crimson::ct_error::eagain::make(); } + logger().debug( + "{}: rewriting {}", + __func__, + *extent); + if (extent->is_logical()) { auto lextent = extent->cast(); cache.retire_extent(t, extent); diff --git a/src/crimson/os/seastore/segment_cleaner.cc b/src/crimson/os/seastore/segment_cleaner.cc index d47ab2124711e..fe8954a0bf759 100644 --- a/src/crimson/os/seastore/segment_cleaner.cc +++ b/src/crimson/os/seastore/segment_cleaner.cc @@ -305,6 +305,9 @@ SegmentCleaner::gc_reclaim_space_ret SegmentCleaner::gc_reclaim_space() std::move(_extents), [this](auto &extents) { return repeat_eagain([this, &extents]() mutable { + logger().debug( + "SegmentCleaner::gc_reclaim_space: processing {} extents", + extents.size()); return seastar::do_with( make_transaction(), [this, &extents](auto &t) mutable { diff --git a/src/crimson/os/seastore/transaction_manager.cc b/src/crimson/os/seastore/transaction_manager.cc index 3e53086934927..15c1af7c94792 100644 --- a/src/crimson/os/seastore/transaction_manager.cc +++ b/src/crimson/os/seastore/transaction_manager.cc @@ -290,6 +290,13 @@ TransactionManager::get_extent_if_live_ret TransactionManager::get_extent_if_liv laddr_t laddr, segment_off_t len) { + logger().debug( + "TransactionManager::get_extent_if_live:" + " type {}, addr {}, laddr {}, len {}", + type, + addr, + laddr, + len); CachedExtentRef ret; auto status = cache->get_extent_if_cached(t, addr, &ret); if (status != Transaction::get_extent_ret::ABSENT) { -- 2.39.5