]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/buffer: behave when cached crc stats don't start at 0 655/head
authorSage Weil <sage@inktank.com>
Wed, 16 Oct 2013 17:58:31 +0000 (10:58 -0700)
committerSage Weil <sage@inktank.com>
Wed, 16 Oct 2013 17:58:31 +0000 (10:58 -0700)
In particular, this helps when we set CEPH_BUFFER_TRACK=true

Signed-off-by: Sage Weil <sage@inktank.com>
src/test/bufferlist.cc

index 7fdc4883e9b662a5be8641ad2ab1f332f14e4a18..8b6ca269234ff59e7c2292b615aa5a88ee65ea3f 100644 (file)
@@ -1689,6 +1689,9 @@ TEST(BufferList, crc32c_append_perf) {
   // track usage of cached crcs
   buffer::track_cached_crc(true);
 
+  int base_cached = buffer::get_cached_crc();
+  int base_cached_adjusted = buffer::get_cached_crc_adjusted();
+
   bufferlist bla;
   bla.push_back(a);
   bufferlist blb;
@@ -1701,7 +1704,7 @@ TEST(BufferList, crc32c_append_perf) {
     std::cout << "a.crc32c(0) = " << r << " at " << rate << " MB/sec" << std::endl;
     ASSERT_EQ(r, 1138817026u);
   }
-  assert(buffer::get_cached_crc() == 0);
+  assert(buffer::get_cached_crc() == 0 + base_cached);
   {
     utime_t start = ceph_clock_now(NULL);
     uint32_t r = bla.crc32c(0);
@@ -1710,7 +1713,7 @@ TEST(BufferList, crc32c_append_perf) {
     std::cout << "a.crc32c(0) (again) = " << r << " at " << rate << " MB/sec" << std::endl;
     ASSERT_EQ(r, 1138817026u);
   }
-  assert(buffer::get_cached_crc() == 1);
+  assert(buffer::get_cached_crc() == 1 + base_cached);
 
   {
     utime_t start = ceph_clock_now(NULL);
@@ -1720,8 +1723,8 @@ TEST(BufferList, crc32c_append_perf) {
     std::cout << "a.crc32c(5) = " << r << " at " << rate << " MB/sec" << std::endl;
     ASSERT_EQ(r, 3239494520u);
   }
-  assert(buffer::get_cached_crc() == 1);
-  assert(buffer::get_cached_crc_adjusted() == 1);
+  assert(buffer::get_cached_crc() == 1 + base_cached);
+  assert(buffer::get_cached_crc_adjusted() == 1 + base_cached_adjusted);
   {
     utime_t start = ceph_clock_now(NULL);
     uint32_t r = bla.crc32c(5);
@@ -1730,8 +1733,8 @@ TEST(BufferList, crc32c_append_perf) {
     std::cout << "a.crc32c(5) (again) = " << r << " at " << rate << " MB/sec" << std::endl;
     ASSERT_EQ(r, 3239494520u);
   }
-  assert(buffer::get_cached_crc() == 1);
-  assert(buffer::get_cached_crc_adjusted() == 2);
+  assert(buffer::get_cached_crc() == 1 + base_cached);
+  assert(buffer::get_cached_crc_adjusted() == 2 + base_cached_adjusted);
 
   {
     utime_t start = ceph_clock_now(NULL);
@@ -1741,7 +1744,7 @@ TEST(BufferList, crc32c_append_perf) {
     std::cout << "b.crc32c(0) = " << r << " at " << rate << " MB/sec" << std::endl;
     ASSERT_EQ(r, 2481791210u);
   }
-  assert(buffer::get_cached_crc() == 1);
+  assert(buffer::get_cached_crc() == 1 + base_cached);
   {
     utime_t start = ceph_clock_now(NULL);
     uint32_t r = blb.crc32c(0);
@@ -1750,7 +1753,7 @@ TEST(BufferList, crc32c_append_perf) {
     std::cout << "b.crc32c(0) (again)= " << r << " at " << rate << " MB/sec" << std::endl;
     ASSERT_EQ(r, 2481791210u);
   }
-  assert(buffer::get_cached_crc() == 2);
+  assert(buffer::get_cached_crc() == 2 + base_cached);
 
   bufferlist ab;
   ab.push_back(a);
@@ -1763,8 +1766,8 @@ TEST(BufferList, crc32c_append_perf) {
     std::cout << "ab.crc32c(0) = " << r << " at " << rate << " MB/sec" << std::endl;
     ASSERT_EQ(r, 2988268779u);
   }
-  assert(buffer::get_cached_crc() == 3);
-  assert(buffer::get_cached_crc_adjusted() == 3);
+  assert(buffer::get_cached_crc() == 3 + base_cached);
+  assert(buffer::get_cached_crc_adjusted() == 3 + base_cached_adjusted);
   bufferlist ac;
   ac.push_back(a);
   ac.push_back(c);
@@ -1776,8 +1779,8 @@ TEST(BufferList, crc32c_append_perf) {
     std::cout << "ac.crc32c(0) = " << r << " at " << rate << " MB/sec" << std::endl;
     ASSERT_EQ(r, 2988268779u);
   }
-  assert(buffer::get_cached_crc() == 4);
-  assert(buffer::get_cached_crc_adjusted() == 3);
+  assert(buffer::get_cached_crc() == 4 + base_cached);
+  assert(buffer::get_cached_crc_adjusted() == 3 + base_cached_adjusted);
 
   bufferlist ba;
   ba.push_back(b);
@@ -1790,8 +1793,8 @@ TEST(BufferList, crc32c_append_perf) {
     std::cout << "ba.crc32c(0) = " << r << " at " << rate << " MB/sec" << std::endl;
     ASSERT_EQ(r, 169240695u);
   }
-  assert(buffer::get_cached_crc() == 5);
-  assert(buffer::get_cached_crc_adjusted() == 4);
+  assert(buffer::get_cached_crc() == 5 + base_cached);
+  assert(buffer::get_cached_crc_adjusted() == 4 + base_cached_adjusted);
   {
     utime_t start = ceph_clock_now(NULL);
     uint32_t r = ba.crc32c(5);
@@ -1800,8 +1803,8 @@ TEST(BufferList, crc32c_append_perf) {
     std::cout << "ba.crc32c(5) = " << r << " at " << rate << " MB/sec" << std::endl;
     ASSERT_EQ(r, 1265464778u);
   }
-  assert(buffer::get_cached_crc() == 5);
-  assert(buffer::get_cached_crc_adjusted() == 6);
+  assert(buffer::get_cached_crc() == 5 + base_cached);
+  assert(buffer::get_cached_crc_adjusted() == 6 + base_cached_adjusted);
 
   cout << "crc cache hits (same start) = " << buffer::get_cached_crc() << std::endl;
   cout << "crc cache hits (adjusted) = " << buffer::get_cached_crc_adjusted() << std::endl;