From: myoungwon oh Date: Tue, 3 Dec 2024 06:20:20 +0000 (+0000) Subject: src/crimson/os/seastore: add logs to track log-related OPs in transaction X-Git-Tag: v20.0.0~24^2~4 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=4e727a36efa40a769086989f13a8c9d8f9dc08fa;p=ceph.git src/crimson/os/seastore: add logs to track log-related OPs in transaction Signed-off-by: Myoungwon Oh --- diff --git a/src/crimson/os/seastore/seastore.cc b/src/crimson/os/seastore/seastore.cc index 8abd6a39f7f42..284748250e12b 100644 --- a/src/crimson/os/seastore/seastore.cc +++ b/src/crimson/os/seastore/seastore.cc @@ -1537,7 +1537,8 @@ SeaStore::Shard::do_omap_get_values( const omap_root_le_t& omap_root) { LOG_PREFIX(SeaStoreS::do_omap_get_values); - DEBUGT("start={} ...", t, start.has_value() ? *start : ""); + DEBUGT("start={} type={} ...", t, start.has_value() ? *start : "", + omap_root.get_type()); return omap_list( onode, omap_root, @@ -1906,9 +1907,9 @@ SeaStore::Shard::_do_transaction_step( { std::map aset; i.decode_attrset(aset); - DEBUGT("op OMAP_SETKEYS, oid={}, omap size={} ...", - *ctx.transaction, oid, aset.size()); const omap_root_le_t &root = select_log_omap_root(*onodes[op->oid]); + DEBUGT("op OMAP_SETKEYS, oid={}, omap size={}, type={} ...", + *ctx.transaction, oid, aset.size(), root.get_type()); return _omap_set_values(ctx, onodes[op->oid], std::move(aset), root); } @@ -1924,9 +1925,9 @@ SeaStore::Shard::_do_transaction_step( { omap_keys_t keys; i.decode_keyset(keys); - DEBUGT("op OMAP_RMKEYS, oid={}, omap size={} ...", - *ctx.transaction, oid, keys.size()); const omap_root_le_t &root = select_log_omap_root(*onodes[op->oid]); + DEBUGT("op OMAP_RMKEYS, oid={}, omap size={}, type={} ...", + *ctx.transaction, oid, keys.size(), root.get_type()); return _omap_rmkeys(ctx, onodes[op->oid], std::move(keys), root); } case Transaction::OP_OMAP_RMKEYRANGE: @@ -1934,9 +1935,9 @@ SeaStore::Shard::_do_transaction_step( std::string first, last; first = i.decode_string(); last = i.decode_string(); - DEBUGT("op OMAP_RMKEYRANGE, oid={}, first={}, last={} ...", - *ctx.transaction, oid, first, last); const omap_root_le_t &root = select_log_omap_root(*onodes[op->oid]); + DEBUGT("op OMAP_RMKEYRANGE, oid={}, first={}, last={}, type={}...", + *ctx.transaction, oid, first, last, root.get_type()); return _omap_rmkeyrange( ctx, onodes[op->oid], std::move(first), std::move(last), diff --git a/src/crimson/os/seastore/seastore_types.cc b/src/crimson/os/seastore/seastore_types.cc index a57f56d4ab457..24fb135cfa585 100644 --- a/src/crimson/os/seastore/seastore_types.cc +++ b/src/crimson/os/seastore/seastore_types.cc @@ -1116,4 +1116,18 @@ std::ostream& operator<<(std::ostream& out, const cache_access_stats_printer_t& return out; } +std::ostream& operator<<(std::ostream& out, const omap_type_t& t) +{ + switch(t) { + case omap_type_t::XATTR: + return out << "XATTR"; + case omap_type_t::OMAP: + return out << "OMAP"; + case omap_type_t::LOG: + return out << "LOG"; + default: + return out << "INVALID_OMAP_TYPE!"; + } +} + } // namespace crimson::os::seastore diff --git a/src/crimson/os/seastore/seastore_types.h b/src/crimson/os/seastore/seastore_types.h index fceca0c997cdc..15ca4e5711826 100644 --- a/src/crimson/os/seastore/seastore_types.h +++ b/src/crimson/os/seastore/seastore_types.h @@ -1795,6 +1795,7 @@ enum class omap_type_t : uint8_t { LOG, NUM_TYPES }; +std::ostream &operator<<(std::ostream &out, const omap_type_t &type); struct omap_root_t { laddr_t addr = L_ADDR_NULL; @@ -1876,6 +1877,10 @@ public: omap_root_t get(laddr_t hint) const { return omap_root_t(addr, depth, hint, type); } + + omap_type_t get_type() const { + return type; + } }; /** @@ -3130,5 +3135,6 @@ template <> struct fmt::formatter : fmt:: template <> struct fmt::formatter : fmt::ostream_formatter {}; template <> struct fmt::formatter : fmt::ostream_formatter {}; template <> struct fmt::formatter : fmt::ostream_formatter {}; +template <> struct fmt::formatter : fmt::ostream_formatter {}; template <> struct fmt::formatter : fmt::ostream_formatter {}; #endif