]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Write non-zero data as part of osd benchmark test.
authorSridhar Seshasayee <sseshasa@redhat.com>
Tue, 22 Feb 2022 12:25:44 +0000 (17:55 +0530)
committerSridhar Seshasayee <sseshasa@redhat.com>
Thu, 24 Feb 2022 08:19:09 +0000 (13:49 +0530)
An optimization (see PR: https://github.com/ceph/ceph/pull/43337) was made
in BlueStore to avoid writing bufferlists made up of zeros. The osd
benchmark used zero filled bufferlists and this resulted in inflated osd
benchmark results.

This issue is fixed by using bufferlists filled with non-zero values.

Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
Fixes: https://tracker.ceph.com/issues/54364
(cherry picked from commit 09f94ace863255a7dd7075e269f8d7d63a398495)

src/osd/OSD.cc

index 8b3205a2160ace38febaa0c4a65376e81f0e72fb..7658fb59911530526a3cfa8a406380ffa88ed82e 100644 (file)
@@ -3218,7 +3218,7 @@ int OSD::run_osd_bench_test(
   if (osize && onum) {
     bufferlist bl;
     bufferptr bp(osize);
-    bp.zero();
+    memset(bp.c_str(), 'a', bp.length());
     bl.push_back(std::move(bp));
     bl.rebuild_page_aligned();
     for (int i=0; i<onum; ++i) {
@@ -3235,7 +3235,7 @@ int OSD::run_osd_bench_test(
 
   bufferlist bl;
   bufferptr bp(bsize);
-  bp.zero();
+  memset(bp.c_str(), 'a', bp.length());
   bl.push_back(std::move(bp));
   bl.rebuild_page_aligned();