From be4c407eff1ec99e790e3b5b8e1d61c28c836e5c Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Tue, 19 Oct 2021 13:27:59 +0800 Subject: [PATCH] crimson/os/seastore: debug outputs Signed-off-by: Xuehan Xu --- .../lba_manager/btree/btree_lba_manager.cc | 14 ++++- .../os/seastore/object_data_handler.cc | 63 +++++++++++++++++++ 2 files changed, 75 insertions(+), 2 deletions(-) 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 c68b6d4b3ecd6..cd51ab9a0b1e6 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 @@ -140,12 +140,22 @@ BtreeLBAManager::alloc_extent( return with_btree_state( c, hint, - [FNAME, c, hint, len, addr](auto &btree, auto &state) { + [FNAME, c, hint, len, addr, &t](auto &btree, auto &state) { return LBABtree::iterate_repeat( c, btree.upper_bound_right(c, hint), true, - [&state, len](auto &pos) { + [&state, len, &t, hint](auto &pos) { + LOG_PREFIX(BtreeLBAManager::alloc_extent); + if (!pos.is_end()) { + DEBUGT("iterate_repeat: pos: {}~{}, state: {}~{}, hint: {}", + t, + pos.get_key(), + pos.get_val().len, + state.last_end, + len, + hint); + } if (pos.is_end() || pos.get_key() >= (state.last_end + len)) { state.insert_iter = pos; return LBABtree::iterate_repeat_ret_inner( diff --git a/src/crimson/os/seastore/object_data_handler.cc b/src/crimson/os/seastore/object_data_handler.cc index f552f80818c43..bbc9f3da7fb12 100644 --- a/src/crimson/os/seastore/object_data_handler.cc +++ b/src/crimson/os/seastore/object_data_handler.cc @@ -74,6 +74,10 @@ ObjectDataHandler::write_ret do_removals( return trans_intr::do_for_each( pins, [ctx](auto &pin) { + LOG_PREFIX(do_removals); + DEBUGT("decreasing ref: {}", + ctx.t, + pin->get_laddr()); return ctx.tm.dec_ref( ctx.t, pin->get_laddr() @@ -95,10 +99,15 @@ ObjectDataHandler::write_ret do_insertions( return trans_intr::do_for_each( to_write, [ctx](auto ®ion) { + LOG_PREFIX(do_insertions); if (region.to_write) { assert_aligned(region.addr); assert_aligned(region.len); ceph_assert(region.len == region.to_write->length()); + DEBUGT("allocating extent: {}~{}", + ctx.t, + region.addr, + region.len); return ctx.tm.alloc_extent( ctx.t, region.addr, @@ -118,12 +127,23 @@ ObjectDataHandler::write_ret do_insertions( return ObjectDataHandler::write_iertr::now(); }); } else { + DEBUGT("reserving: {}~{}", + ctx.t, + region.addr, + region.len); return ctx.tm.reserve_region( ctx.t, region.addr, region.len ).si_then([®ion](auto pin) { ceph_assert(pin->get_length() == region.len); + if (pin->get_laddr() != region.addr) { + logger().debug( + "object_data_handler::do_insertions" + "inconsistent laddr: pin: {} region {}", + pin->get_laddr(), + region.addr); + } ceph_assert(pin->get_laddr() == region.addr); return ObjectDataHandler::write_iertr::now(); }); @@ -240,11 +260,20 @@ ObjectDataHandler::write_ret ObjectDataHandler::prepare_data_reservation( object_data_t &object_data, extent_len_t size) { + LOG_PREFIX(ObjectDataHandler::prepare_data_reservation); ceph_assert(size <= MAX_OBJECT_SIZE); if (!object_data.is_null()) { ceph_assert(object_data.get_reserved_data_len() == MAX_OBJECT_SIZE); + DEBUGT("non null object_data: {}~{}", + ctx.t, + object_data.get_reserved_data_base(), + object_data.get_reserved_data_len()); return write_iertr::now(); } else { + DEBUGT("reserving: {}~{}", + ctx.t, + ctx.onode.get_hint(), + MAX_OBJECT_SIZE); return ctx.tm.reserve_region( ctx.t, ctx.onode.get_hint(), @@ -269,6 +298,11 @@ ObjectDataHandler::clear_ret ObjectDataHandler::trim_data_reservation( lba_pin_list_t(), extent_to_write_list_t(), [ctx, size, &object_data](auto &pins, auto &to_write) { + LOG_PREFIX(ObjectDataHandler::trim_data_reservation); + DEBUGT("object_data: {}~{}", + ctx.t, + object_data.get_reserved_data_base(), + object_data.get_reserved_data_len()); return ctx.tm.get_pins( ctx.t, object_data.get_reserved_data_base() + size, @@ -348,6 +382,11 @@ ObjectDataHandler::write_ret ObjectDataHandler::overwrite( std::move(_pins), extent_to_write_list_t(), [ctx](laddr_t &offset, auto &bl, auto &pins, auto &to_write) { + LOG_PREFIX(ObjectDataHandler::overwrite); + DEBUGT("overwrite: {}~{}", + ctx.t, + offset, + bl.length()); ceph_assert(pins.size() >= 1); auto pin_begin = pins.front()->get_laddr(); ceph_assert(pin_begin <= offset); @@ -406,6 +445,14 @@ ObjectDataHandler::write_ret ObjectDataHandler::write( return with_object_data( ctx, [this, ctx, offset, &bl](auto &object_data) { + LOG_PREFIX(ObjectDataHandler::write); + DEBUGT("writing to {}~{}, object_data: {}~{}, is_null {}", + ctx.t, + offset, + bl.length(), + object_data.get_reserved_data_base(), + object_data.get_reserved_data_len(), + object_data.is_null()); return prepare_data_reservation( ctx, object_data, @@ -435,6 +482,11 @@ ObjectDataHandler::read_ret ObjectDataHandler::read( return with_object_data( ctx, [ctx, obj_offset, len, &ret](const auto &object_data) { + LOG_PREFIX(ObjectDataHandler::read); + DEBUGT("reading {}~{}", + ctx.t, + object_data.get_reserved_data_base(), + object_data.get_reserved_data_len()); /* Assumption: callers ensure that onode size is <= reserved * size and that len is adjusted here prior to call */ ceph_assert(!object_data.is_null()); @@ -507,6 +559,12 @@ ObjectDataHandler::truncate_ret ObjectDataHandler::truncate( return with_object_data( ctx, [this, ctx, offset](auto &object_data) { + LOG_PREFIX(ObjectDataHandler::truncate); + DEBUGT("truncating {}~{} offset: {}", + ctx.t, + object_data.get_reserved_data_base(), + object_data.get_reserved_data_len(), + offset); if (offset < object_data.get_reserved_data_len()) { return trim_data_reservation(ctx, object_data, offset); } else if (offset > object_data.get_reserved_data_len()) { @@ -526,6 +584,11 @@ ObjectDataHandler::clear_ret ObjectDataHandler::clear( return with_object_data( ctx, [this, ctx](auto &object_data) { + LOG_PREFIX(ObjectDataHandler::clear); + DEBUGT("clearing: {}~{}", + ctx.t, + object_data.get_reserved_data_base(), + object_data.get_reserved_data_len()); return trim_data_reservation(ctx, object_data, 0); }); } -- 2.39.5