]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/onode: add hobject_t into Onode 58830/head
authorXuehan Xu <xuxuehan@qianxin.com>
Sat, 29 Jun 2024 08:13:02 +0000 (16:13 +0800)
committerMatan Breizman <mbreizma@redhat.com>
Thu, 25 Jul 2024 07:40:04 +0000 (10:40 +0300)
So that we can see the onodes' identities in the logs

Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit 8f58b862f8e77f6520951cf0a13dd8c7da7b2b2a)

src/crimson/os/seastore/onode.cc
src/crimson/os/seastore/onode.h
src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.cc
src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.h
src/crimson/os/seastore/onode_manager/staged-fltree/tree.h
src/crimson/os/seastore/onode_manager/staged-fltree/value.h
src/test/crimson/seastore/onode_tree/test_value.h
src/test/crimson/seastore/test_object_data_handler.cc

index 96b69fb7c30f1df1973192e5762090add7a24b8c..f3fd6eb18a5ac6500dd778275f89e569aad48b92 100644 (file)
@@ -10,6 +10,7 @@ std::ostream& operator<<(std::ostream &out, const Onode &rhs)
 {
   auto &layout = rhs.get_layout();
   return out << "Onode("
+            << "hobj=" << rhs.hobj << ", "
              << "size=" << static_cast<uint32_t>(layout.size)
              << ")";
 }
index e803a2e4e74fc13e258c6184e0c6767db0c15eff..de72a658435dd21e23517b749f184bca4aecec88 100644 (file)
@@ -8,6 +8,7 @@
 #include <boost/intrusive_ptr.hpp>
 #include <boost/smart_ptr/intrusive_ref_counter.hpp>
 
+#include "common/hobject.h"
 #include "include/byteorder.h"
 #include "seastore_types.h"
 
@@ -56,10 +57,12 @@ protected:
   virtual laddr_t get_hint() const = 0;
   const uint32_t default_metadata_offset = 0;
   const uint32_t default_metadata_range = 0;
+  const hobject_t hobj;
 public:
-  Onode(uint32_t ddr, uint32_t dmr)
+  Onode(uint32_t ddr, uint32_t dmr, const hobject_t &hobj)
     : default_metadata_offset(ddr),
-      default_metadata_range(dmr)
+      default_metadata_range(dmr),
+      hobj(hobj)
   {}
 
   virtual bool is_alive() const = 0;
@@ -85,6 +88,7 @@ public:
   laddr_t get_data_hint() const {
     return get_hint();
   }
+  friend std::ostream& operator<<(std::ostream &out, const Onode &rhs);
 };
 
 
index 9a29072fe8bcbd3c2b1106560fe15d2342e022eb..bedcff107e2759586fc1036ad6c92d6bd2eab77f 100644 (file)
@@ -151,6 +151,7 @@ FLTreeOnodeManager::get_onode_ret FLTreeOnodeManager::get_onode(
     auto val = OnodeRef(new FLTreeOnode(
        default_data_reservation,
        default_metadata_range,
+       hoid.hobj,
        cursor.value()));
     return get_onode_iertr::make_ready_future<OnodeRef>(
       val
@@ -173,6 +174,7 @@ FLTreeOnodeManager::get_or_create_onode(
     auto onode = new FLTreeOnode(
        default_data_reservation,
        default_metadata_range,
+       hoid.hobj,
        cursor.value());
     if (created) {
       DEBUGT("created onode for entry for {}", trans, hoid);
index 33109e50f6a6ba26c28ce78efbba95d0ee9e6a8b..155776046ef5465c8d456b84175cc5df0b9c1c1a 100644 (file)
@@ -36,13 +36,13 @@ struct FLTreeOnode final : Onode, Value {
   FLTreeOnode& operator=(const FLTreeOnode&) = delete;
 
   template <typename... T>
-  FLTreeOnode(uint32_t ddr, uint32_t dmr, T&&... args)
-    : Onode(ddr, dmr),
+  FLTreeOnode(uint32_t ddr, uint32_t dmr, const hobject_t &hobj, T&&... args)
+    : Onode(ddr, dmr, hobj),
       Value(std::forward<T>(args)...) {}
 
   template <typename... T>
-  FLTreeOnode(T&&... args)
-    : Onode(0, 0),
+  FLTreeOnode(const hobject_t &hobj, T&&... args)
+    : Onode(0, 0, hobj),
       Value(std::forward<T>(args)...) {}
 
   struct Recorder : public ValueDeltaRecorder {
index 7385e080c8f63a3df012e05e34fd08337a22f30c..68f8a55e6c76dc7946e00c5eed63084eb8b0606f 100644 (file)
@@ -92,7 +92,7 @@ class Btree {
     ValueImpl value() {
       assert(!is_end());
       return p_tree->value_builder.build_value(
-          *p_tree->nm, p_tree->value_builder, p_cursor);
+        get_ghobj().hobj, *p_tree->nm, p_tree->value_builder, p_cursor);
     }
 
     bool operator==(const Cursor& o) const { return operator<=>(o) == 0; }
index d9f0c231a17cef6fb079146ca47de97126877768..f32d5f1e66845acb32e67f9291a21f4e8a2b5259 100644 (file)
@@ -312,11 +312,12 @@ struct ValueBuilderImpl final : public ValueBuilder {
     return ret;
   }
 
-  ValueImpl build_value(NodeExtentManager& nm,
+  ValueImpl build_value(const hobject_t &hobj,
+                       NodeExtentManager& nm,
                         const ValueBuilder& vb,
                         Ref<tree_cursor_t>& p_cursor) const {
     assert(vb.get_header_magic() == get_header_magic());
-    return ValueImpl(nm, vb, p_cursor);
+    return ValueImpl(hobj, nm, vb, p_cursor);
   }
 };
 
index 98249f8c956c00231a1403d16d5710e0fd98a4f2..c913f85e6d6efc4a4340e37cde91b095c36ba49f 100644 (file)
@@ -176,7 +176,11 @@ class TestValue final : public Value {
     }
   };
 
-  TestValue(NodeExtentManager& nm, const ValueBuilder& vb, Ref<tree_cursor_t>& p_cursor)
+  TestValue(
+    const hobject_t &hobj,
+    NodeExtentManager& nm,
+    const ValueBuilder& vb,
+    Ref<tree_cursor_t>& p_cursor)
     : Value(nm, vb, p_cursor) {}
   ~TestValue() override = default;
 
index 0e258b9a36ca1825f27f98fc7adfe67a6e825f9c..0f05bae2e939be5c119487cd90d060861899555a 100644 (file)
@@ -26,7 +26,7 @@ class TestOnode final : public Onode {
   bool dirty = false;
 
 public:
-  TestOnode(uint32_t ddr, uint32_t dmr) : Onode(ddr, dmr) {}
+  TestOnode(uint32_t ddr, uint32_t dmr) : Onode(ddr, dmr, hobject_t()) {}
   const onode_layout_t &get_layout() const final {
     return layout;
   }