]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore: replace rbm_metadata_header_t with rbm_superblock_t
authormyoungwon oh <ohmyoungwon@gmail.com>
Thu, 20 Jun 2024 05:32:15 +0000 (05:32 +0000)
committermyoungwon oh <ohmyoungwon@gmail.com>
Mon, 22 Jul 2024 02:01:39 +0000 (02:01 +0000)
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
src/crimson/os/seastore/random_block_manager.h
src/crimson/os/seastore/random_block_manager/block_rb_manager.cc
src/crimson/os/seastore/random_block_manager/block_rb_manager.h
src/crimson/os/seastore/random_block_manager/rbm_device.cc
src/crimson/os/seastore/random_block_manager/rbm_device.h
src/test/crimson/seastore/test_randomblock_manager.cc

index fc45af3b2f5599f68dd102be1166d8fe4aa7b548..449fdeb4ef13e6b141e387511fbfa2efbcf58580 100644 (file)
@@ -39,7 +39,7 @@ struct rbm_shard_info_t {
   }
 };
 
-struct rbm_metadata_header_t {
+struct rbm_superblock_t {
   size_t size = 0;
   size_t block_size = 0;
   uint64_t feature = 0;
@@ -49,7 +49,7 @@ struct rbm_metadata_header_t {
   unsigned int shard_num = 0;
   std::vector<rbm_shard_info_t> shard_infos;
 
-  DENC(rbm_metadata_header_t, v, p) {
+  DENC(rbm_superblock_t, v, p) {
     DENC_START(1, 1, p);
     denc(v.size, p);
     denc(v.block_size, p);
@@ -171,7 +171,7 @@ namespace random_block_device {
 seastar::future<std::unique_ptr<random_block_device::RBMDevice>> 
   get_rb_device(const std::string &device);
 
-std::ostream &operator<<(std::ostream &out, const rbm_metadata_header_t &header);
+std::ostream &operator<<(std::ostream &out, const rbm_superblock_t &header);
 std::ostream &operator<<(std::ostream &out, const rbm_shard_info_t &shard);
 }
 
@@ -179,10 +179,10 @@ WRITE_CLASS_DENC_BOUNDED(
   crimson::os::seastore::rbm_shard_info_t
 )
 WRITE_CLASS_DENC_BOUNDED(
-  crimson::os::seastore::rbm_metadata_header_t
+  crimson::os::seastore::rbm_superblock_t
 )
 
 #if FMT_VERSION >= 90000
-template<> struct fmt::formatter<crimson::os::seastore::rbm_metadata_header_t> : fmt::ostream_formatter {};
+template<> struct fmt::formatter<crimson::os::seastore::rbm_superblock_t> : fmt::ostream_formatter {};
 template<> struct fmt::formatter<crimson::os::seastore::rbm_shard_info_t> : fmt::ostream_formatter {};
 #endif
index 715aafbc8a8e95263f320605c1a03745eb21b0c1..7a94c20fc46abee261d2fbada8607bdb91746c0b 100644 (file)
@@ -201,9 +201,9 @@ void BlockRBManager::prefill_fragmented_device()
 }
 #endif
 
-std::ostream &operator<<(std::ostream &out, const rbm_metadata_header_t &header)
+std::ostream &operator<<(std::ostream &out, const rbm_superblock_t &header)
 {
-  out << " rbm_metadata_header_t(size=" << header.size
+  out << " rbm_superblock_t(size=" << header.size
        << ", block_size=" << header.block_size
        << ", feature=" << header.feature
        << ", journal_size=" << header.journal_size
index bc33710eee0203b1d574a62d167dff51a4af7612..f61db61737057d4084b7f2733438c8a37c25e60c 100644 (file)
@@ -38,7 +38,7 @@ public:
    * Ondisk layout (TODO)
    *
    * ---------------------------------------------------------------------------
-   * | rbm_metadata_header_t | metadatas |        ...      |    data blocks    |
+   * | rbm_superblock_t | metadatas |        ...      |    data blocks    |
    * ---------------------------------------------------------------------------
    */
 
index cea6c30a7ec3e9772d3d1751fb0d9661c77836b0..c1fa6f2b2c7e624aaeb426d1805ffd0a3d5db0b8 100644 (file)
@@ -59,19 +59,19 @@ RBMDevice::mkfs_ret RBMDevice::do_primary_mkfs(device_config_t config,
       crimson::ct_error::assert_all{
       "Invalid error open in RBMDevice::do_primary_mkfs"}
     ).safe_then([this] {
-      return write_rbm_header(
+      return write_rbm_superblock(
       ).safe_then([this] {
        return close();
       }).handle_error(
        mkfs_ertr::pass_further{},
        crimson::ct_error::assert_all{
-       "Invalid error write_rbm_header in RBMDevice::do_primary_mkfs"
+       "Invalid error write_rbm_superblock in RBMDevice::do_primary_mkfs"
       });
     });
   });
 }
 
-write_ertr::future<> RBMDevice::write_rbm_header()
+write_ertr::future<> RBMDevice::write_rbm_superblock()
 {
   bufferlist meta_b_header;
   super.crc = 0;
@@ -94,10 +94,10 @@ write_ertr::future<> RBMDevice::write_rbm_header()
   return write(RBM_START_ADDRESS, std::move(bp));
 }
 
-read_ertr::future<rbm_metadata_header_t> RBMDevice::read_rbm_header(
+read_ertr::future<rbm_superblock_t> RBMDevice::read_rbm_superblock(
   rbm_abs_addr addr)
 {
-  LOG_PREFIX(RBMDevice::read_rbm_header);
+  LOG_PREFIX(RBMDevice::read_rbm_superblock);
   assert(super.block_size > 0);
   return seastar::do_with(
     bufferptr(ceph::buffer::create_page_aligned(super.block_size)),
@@ -106,16 +106,16 @@ read_ertr::future<rbm_metadata_header_t> RBMDevice::read_rbm_header(
       addr,
       bptr
     ).safe_then([length=bptr.length(), this, bptr, FNAME]()
-      -> read_ertr::future<rbm_metadata_header_t> {
+      -> read_ertr::future<rbm_superblock_t> {
       bufferlist bl;
       bl.append(bptr);
       auto p = bl.cbegin();
-      rbm_metadata_header_t super_block;
+      rbm_superblock_t super_block;
       try {
        decode(super_block, p);
       }
       catch (ceph::buffer::error& e) {
-       DEBUG("read_rbm_header: unable to decode rbm super block {}",
+       DEBUG("read_rbm_superblock: unable to decode rbm super block {}",
              e.what());
        return crimson::ct_error::enoent::make();
       }
@@ -123,7 +123,7 @@ read_ertr::future<rbm_metadata_header_t> RBMDevice::read_rbm_header(
       bufferlist meta_b_header;
       super_block.crc = 0;
       encode(super_block, meta_b_header);
-      assert(ceph::encoded_sizeof<rbm_metadata_header_t>(super_block) <
+      assert(ceph::encoded_sizeof<rbm_superblock_t>(super_block) <
          super_block.block_size);
 
       // Do CRC verification only if data protection is not supported.
@@ -139,7 +139,7 @@ read_ertr::future<rbm_metadata_header_t> RBMDevice::read_rbm_header(
       super_block.crc = crc;
       super = super_block;
       DEBUG("got {} ", super);
-      return read_ertr::future<rbm_metadata_header_t>(
+      return read_ertr::future<rbm_superblock_t>(
        read_ertr::ready_future_marker{},
        super_block
       );
@@ -160,7 +160,7 @@ RBMDevice::mount_ret RBMDevice::do_shard_mount()
     ).safe_then([this](auto st) {
       assert(st.block_size > 0);
       super.block_size = st.block_size;
-      return read_rbm_header(RBM_START_ADDRESS
+      return read_rbm_superblock(RBM_START_ADDRESS
       ).safe_then([this](auto s) {
        LOG_PREFIX(RBMDevice::do_shard_mount);
        shard_info = s.shard_infos[seastar::this_shard_id()];
index 501d9f913a1aa9c25ed13901c55e3c95a5cb122e..28c20c6e72dbae4d3c15acd43d9db01ff1ecf493 100644 (file)
@@ -83,7 +83,7 @@ public:
     return read(rbm_addr, out);
   }
 protected:
-  rbm_metadata_header_t super;
+  rbm_superblock_t super;
   rbm_shard_info_t shard_info;
 public:
   RBMDevice() {}
@@ -160,9 +160,9 @@ public:
 
   mount_ret do_shard_mount();
 
-  write_ertr::future<> write_rbm_header();
+  write_ertr::future<> write_rbm_superblock();
 
-  read_ertr::future<rbm_metadata_header_t> read_rbm_header(rbm_abs_addr addr);
+  read_ertr::future<rbm_superblock_t> read_rbm_superblock(rbm_abs_addr addr);
 
   using stat_device_ret =
     read_ertr::future<seastar::stat_data>;
index 5940717e69eae022be722250ebdf9fb01d6fd04f..26205e16487690902d669c9fab279aa1bf1c9df2 100644 (file)
@@ -78,8 +78,8 @@ struct rbm_test_t :
     return device->mkfs(config).unsafe_get();
   }
 
-  auto read_rbm_header() {
-    return device->read_rbm_header(RBM_START_ADDRESS).unsafe_get();
+  auto read_rbm_superblock() {
+    return device->read_rbm_superblock(RBM_START_ADDRESS).unsafe_get();
   }
 
   auto open() {
@@ -120,14 +120,14 @@ struct rbm_test_t :
 TEST_F(rbm_test_t, mkfs_test)
 {
  run_async([this] {
-   auto super = read_rbm_header();
+   auto super = read_rbm_superblock();
    ASSERT_TRUE(
        super.block_size == block_size &&
        super.size == size
    );
    config.spec.id = DEVICE_ID_NULL;
    mkfs();
-   super = read_rbm_header();
+   super = read_rbm_superblock();
    ASSERT_TRUE(
        super.config.spec.id == DEVICE_ID_NULL &&
        super.size == size