]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ObjectStore: partially remove op_ptr.zero()
authorPiotr Dałek <piotr.dalek@ts.fujitsu.com>
Wed, 1 Jul 2015 09:40:10 +0000 (11:40 +0200)
committerPiotr Dałek <piotr.dalek@ts.fujitsu.com>
Tue, 4 Aug 2015 07:26:37 +0000 (09:26 +0200)
Partially remove zeroing of op_ptr buffer, it's not necessary because it
is overwritten later anyway, and bufferptr::zero() adds a bit of latency
to the pipeline (not only memset, but also mutex (un)locking and CRC
invalidation).

Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
src/os/ObjectStore.h

index 3a14a60f0588be6d165890bf52c3b219ed57d09b..663448b2fcd7ad86b124c6038933d0365b62836c 100644 (file)
@@ -872,7 +872,6 @@ private:
     Op* _get_next_op() {
       if (op_ptr.length() == 0 || op_ptr.offset() >= op_ptr.length()) {
         op_ptr = bufferptr(sizeof(Op) * OPS_PER_PTR);
-       op_ptr.zero();
       }
       bufferptr ptr(op_ptr, 0, sizeof(Op));
       op_bl.append(ptr);
@@ -880,6 +879,7 @@ private:
       op_ptr.set_offset(op_ptr.offset() + sizeof(Op));
 
       char* p = ptr.c_str();
+      memset(p, 0, sizeof(Op));
       return reinterpret_cast<Op*>(p);
     }
     __le32 _get_coll_id(const coll_t& coll) {