]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore: debug outputs 51141/head
authorxuxuehan <xuxuehan@qianxin.com>
Fri, 26 May 2023 08:03:59 +0000 (16:03 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Thu, 10 Aug 2023 05:14:22 +0000 (13:14 +0800)
Signed-off-by: xuxuehan <xuxuehan@qianxin.com>
src/crimson/os/seastore/cache.h
src/crimson/os/seastore/cached_extent.h
src/crimson/os/seastore/object_data_handler.cc
src/crimson/os/seastore/seastore.cc

index 2981330a1781aaf84d6e44ebf6eb932298fc635d..1820d758a0ba75f019cd17512537a4e7a456ed2e 100644 (file)
@@ -469,7 +469,7 @@ public:
       } else {
         touch_extent(*ret);
         SUBDEBUGT(seastore_cache, "{} {}~{} is present on t without been \
-          fully loaded, reading ...", t, T::TYPE, offset, length);
+          fully loaded, reading ... {}", t, T::TYPE, offset, length, *ret);
         auto bp = alloc_cache_buf(ret->get_length());
         ret->set_bptr(std::move(bp));
         return read_extent<T>(
@@ -910,8 +910,6 @@ public:
     laddr_t original_laddr,
     std::optional<ceph::bufferptr> &&original_bptr) {
     LOG_PREFIX(Cache::alloc_remapped_extent);
-    SUBTRACET(seastore_cache, "allocate {} {}B, hint={}",
-              t, T::TYPE, remap_length, remap_laddr);
     assert(remap_laddr >= original_laddr);
     TCachedExtentRef<T> ext;
     if (original_bptr.has_value()) {
@@ -934,6 +932,8 @@ public:
               t.get_trans_id());
 
     t.add_fresh_extent(ext);
+    SUBTRACET(seastore_cache, "allocated {} {}B, hint={}, has ptr? {} -- {}",
+      t, T::TYPE, remap_length, remap_laddr, original_bptr.has_value(), *ext);
     return ext;
   }
 
index 0940cc1a05b6b876e06eeb5060b6a7d95ea63e8d..497d7dcfcdc532d508a89e3d336eaa160f1d641e 100644 (file)
@@ -340,6 +340,7 @@ public:
        << ", last_committed_crc=" << last_committed_crc
        << ", refcount=" << use_count()
        << ", user_hint=" << user_hint
+       << ", fully_loaded=" << is_fully_loaded()
        << ", rewrite_gen=" << rewrite_gen_printer_t{rewrite_generation};
     if (state != extent_state_t::INVALID &&
         state != extent_state_t::CLEAN_PENDING) {
index 0da4c9a38efe5f31d310caf47c398d5485b60c48..a52414a336e0e563d3e8bbd90a96cd8dee70f7f8 100644 (file)
@@ -1358,6 +1358,7 @@ ObjectDataHandler::read_ret ObjectDataHandler::read(
                      current = end;
                      return seastar::now();
                    } else {
+                     LOG_PREFIX(ObjectDataHandler::read);
                      auto key = pin->get_key();
                      bool is_indirect = pin->is_indirect();
                       extent_len_t off = pin->get_intermediate_offset();
index 350d78e084e1f0f745be0519368205af7aa4489a..91620ef265abbb6fa9ccbc1867831ce37660f95c 100644 (file)
@@ -1196,6 +1196,17 @@ seastar::future<> SeaStore::Shard::do_transaction_no_callbacks(
     op_type_t::TRANSACTION,
     [this](auto &ctx) {
       return with_trans_intr(*ctx.transaction, [&, this](auto &t) {
+#ifndef NDEBUG
+       LOG_PREFIX(SeaStore::Shard::do_transaction_no_callbacks);
+       TRACET(" transaction dump:\n", t);
+       JSONFormatter f(true);
+       f.open_object_section("transaction");
+       ctx.ext_transaction.dump(&f);
+       f.close_section();
+       std::stringstream str;
+       f.flush(str);
+       TRACET("{}", t, str.str());
+#endif
         return seastar::do_with(
          std::vector<OnodeRef>(ctx.iter.objects.size()),
           std::vector<OnodeRef>(ctx.iter.objects.size()),
@@ -1415,6 +1426,10 @@ SeaStore::Shard::_do_transaction_step(
       }
       case Transaction::OP_CLONE:
       {
+       TRACET("cloning {} to {}",
+         *ctx.transaction,
+         i.get_oid(op->oid),
+         i.get_oid(op->dest_oid));
        return _clone(ctx, onodes[op->oid], d_onodes[op->dest_oid]);
       }
       default: