From: Samuel Just Date: Fri, 21 Aug 2020 21:24:26 +0000 (-0700) Subject: crimson/os/seastore: clarify crc initial state X-Git-Tag: v16.1.0~983^2~26 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d5932ba0492bf4396666bd25660e743b3ba894dd;p=ceph.git crimson/os/seastore: clarify crc initial state Otherwise, different users may use different values complicating debugging. We can re-add this in the future if it becomes useful. Signed-off-by: Samuel Just --- diff --git a/src/crimson/os/seastore/cached_extent.h b/src/crimson/os/seastore/cached_extent.h index 6ae87f83cbbe..4d632c0d296c 100644 --- a/src/crimson/os/seastore/cached_extent.h +++ b/src/crimson/os/seastore/cached_extent.h @@ -231,9 +231,9 @@ public: } /// Returns crc32c of buffer - uint32_t get_crc32c(uint32_t crc=1) { + uint32_t get_crc32c() { return ceph_crc32c( - crc, + 1, reinterpret_cast(get_bptr().c_str()), get_length()); } diff --git a/src/crimson/os/seastore/segment_manager/ephemeral.cc b/src/crimson/os/seastore/segment_manager/ephemeral.cc index c2b32eb00c93..bc25c6024328 100644 --- a/src/crimson/os/seastore/segment_manager/ephemeral.cc +++ b/src/crimson/os/seastore/segment_manager/ephemeral.cc @@ -67,7 +67,7 @@ Segment::write_ertr::future<> EphemeralSegmentManager::segment_write( addr.offset, get_offset(addr), bl.length(), - bl.crc32c(0)); + bl.crc32c(1)); if (!ignore_check && segment_state[addr.segment] != segment_state_t::OPEN) return crimson::ct_error::invarg::make(); @@ -164,7 +164,7 @@ SegmentManager::read_ertr::future<> EphemeralSegmentManager::read( addr.offset, get_offset(addr), len, - bl.begin().crc32c(config.block_size, 0)); + bl.begin().crc32c(len, 1)); return read_ertr::now(); } diff --git a/src/test/crimson/seastore/test_block.h b/src/test/crimson/seastore/test_block.h index 81ac32f365d6..e105ccec7533 100644 --- a/src/test/crimson/seastore/test_block.h +++ b/src/test/crimson/seastore/test_block.h @@ -74,15 +74,8 @@ struct TestBlock : crimson::os::seastore::LogicalCachedExtent { set_contents(c, 0, get_length()); } - int checksum() { - return ceph_crc32c( - 1, - (const unsigned char *)get_bptr().c_str(), - get_length()); - } - test_extent_desc_t get_desc() { - return { get_length(), get_crc32c(1) }; + return { get_length(), get_crc32c() }; } void apply_delta(const ceph::bufferlist &bl) final; @@ -119,8 +112,6 @@ struct TestBlockPhysical : crimson::os::seastore::CachedExtent{ ceph::bufferlist get_delta() final { return ceph::bufferlist(); } - int checksum() { return 0; } - void apply_delta_and_adjust_crc(paddr_t, const ceph::bufferlist &bl) final {} }; using TestBlockPhysicalRef = TCachedExtentRef; diff --git a/src/test/crimson/seastore/test_seastore_cache.cc b/src/test/crimson/seastore/test_seastore_cache.cc index 0e4b29986dd3..f480cd59ef81 100644 --- a/src/test/crimson/seastore/test_seastore_cache.cc +++ b/src/test/crimson/seastore/test_seastore_cache.cc @@ -107,7 +107,7 @@ TEST_F(cache_test_t, test_addr_fixup) *t, TestBlockPhysical::SIZE); extent->set_contents('c'); - csum = extent->checksum(); + csum = extent->get_crc32c(); auto ret = submit_transaction(std::move(t)).get0(); ASSERT_TRUE(ret); addr = extent->get_paddr(); @@ -119,7 +119,7 @@ TEST_F(cache_test_t, test_addr_fixup) addr, TestBlockPhysical::SIZE).unsafe_get0(); ASSERT_EQ(extent->get_paddr(), addr); - ASSERT_EQ(extent->checksum(), csum); + ASSERT_EQ(extent->get_crc32c(), csum); } }); } @@ -137,7 +137,7 @@ TEST_F(cache_test_t, test_dirty_extent) *t, TestBlockPhysical::SIZE); extent->set_contents('c'); - csum = extent->checksum(); + csum = extent->get_crc32c(); auto reladdr = extent->get_paddr(); ASSERT_TRUE(reladdr.is_relative()); { @@ -151,7 +151,7 @@ TEST_F(cache_test_t, test_dirty_extent) ASSERT_TRUE(extent->is_pending()); ASSERT_TRUE(extent->get_paddr().is_relative()); ASSERT_EQ(extent->get_version(), 0); - ASSERT_EQ(csum, extent->checksum()); + ASSERT_EQ(csum, extent->get_crc32c()); } auto ret = submit_transaction(std::move(t)).get0(); ASSERT_TRUE(ret); @@ -181,7 +181,7 @@ TEST_F(cache_test_t, test_dirty_extent) // duplicate and reset contents extent = cache.duplicate_for_write(*t, extent)->cast(); extent->set_contents('c'); - csum2 = extent->checksum(); + csum2 = extent->get_crc32c(); ASSERT_EQ(extent->get_paddr(), addr); { // test that concurrent read with fresh transaction sees old @@ -195,7 +195,7 @@ TEST_F(cache_test_t, test_dirty_extent) ASSERT_FALSE(extent->is_pending()); ASSERT_EQ(addr, extent->get_paddr()); ASSERT_EQ(extent->get_version(), 0); - ASSERT_EQ(csum, extent->checksum()); + ASSERT_EQ(csum, extent->get_crc32c()); } { // test that read with same transaction sees new block @@ -207,7 +207,7 @@ TEST_F(cache_test_t, test_dirty_extent) ASSERT_TRUE(extent->is_pending()); ASSERT_EQ(addr, extent->get_paddr()); ASSERT_EQ(extent->get_version(), 1); - ASSERT_EQ(csum2, extent->checksum()); + ASSERT_EQ(csum2, extent->get_crc32c()); } // submit transaction auto ret = submit_transaction(std::move(t)).get0(); @@ -215,7 +215,7 @@ TEST_F(cache_test_t, test_dirty_extent) ASSERT_TRUE(extent->is_dirty()); ASSERT_EQ(addr, extent->get_paddr()); ASSERT_EQ(extent->get_version(), 1); - ASSERT_EQ(extent->checksum(), csum2); + ASSERT_EQ(extent->get_crc32c(), csum2); } { // test that fresh transaction now sees newly dirty block @@ -227,7 +227,7 @@ TEST_F(cache_test_t, test_dirty_extent) ASSERT_TRUE(extent->is_dirty()); ASSERT_EQ(addr, extent->get_paddr()); ASSERT_EQ(extent->get_version(), 1); - ASSERT_EQ(csum2, extent->checksum()); + ASSERT_EQ(csum2, extent->get_crc32c()); } }); }