summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-10-16 10:58:31 -0700
committerSage Weil <sage@inktank.com>2013-10-16 10:58:31 -0700
commiteafdc92fc9d3872b1174b1a9c2e839680154aa84 (patch)
tree1e6e983b845f4ec19a7870125560c95109dc5d6e
parentc5cdf4ec607b911ad900fa6a7e95da3ab4d1abe5 (diff)
downloadceph-eafdc92fc9d3872b1174b1a9c2e839680154aa84.tar.gz
common/buffer: behave when cached crc stats don't start at 0
In particular, this helps when we set CEPH_BUFFER_TRACK=true Signed-off-by: Sage Weil <sage@inktank.com>
-rw-r--r--src/test/bufferlist.cc35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/test/bufferlist.cc b/src/test/bufferlist.cc
index 7fdc4883e9b..8b6ca269234 100644
--- a/src/test/bufferlist.cc
+++ b/src/test/bufferlist.cc
@@ -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;