]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
filer: add debug printability for striped read result stuff
authorSage Weil <sage@inktank.com>
Fri, 5 Oct 2012 22:54:53 +0000 (15:54 -0700)
committerSage Weil <sage@inktank.com>
Mon, 15 Oct 2012 22:34:06 +0000 (15:34 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
src/Makefile.am
src/librbd/AioCompletion.cc
src/osdc/Filer.cc
src/osdc/Filer.h
src/osdc/Objecter.cc

index b58ce20ce42a693680705518941b026409b99454..e8b737474909caa99d019dfc1ac8a736090bdf88 100644 (file)
@@ -296,7 +296,8 @@ librados_SOURCES = \
        librados/librados.cc \
        librados/RadosClient.cc \
        librados/IoCtxImpl.cc \
-       osdc/Objecter.cc
+       osdc/Objecter.cc \
+       osdc/Filer.cc
 librados_la_SOURCES = ${librados_SOURCES}
 librados_la_CFLAGS = ${CRYPTO_CFLAGS} ${AM_CFLAGS}
 librados_la_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
index 50913e0ae689e276768433ec06bab161f236e948..3d1662ea548339b3906e9c6aee45b19d3918f91c 100644 (file)
@@ -37,7 +37,7 @@ namespace librbd {
        // FIXME: make the destriper write directly into a buffer so
        // that we avoid shuffling pointers and copying zeros around.
        bufferlist bl;
-       destriper.assemble_result(bl, true);
+       destriper.assemble_result(cct, bl, true);
 
        if (read_buf) {
          assert(bl.length() == read_buf_len);
@@ -70,7 +70,8 @@ namespace librbd {
       if (m_req->m_ext_map.empty())
        m_req->m_ext_map[m_req->m_object_off] = m_req->data().length();
 
-      m_completion->destriper.add_partial_sparse_result(m_req->data(),
+      m_completion->destriper.add_partial_sparse_result(m_cct,
+                                                       m_req->data(),
                                                        m_req->m_ext_map, m_req->m_object_off,
                                                        m_req->m_buffer_extents);
       r = m_req->m_object_len;
index ebb0c4bda6fd13cd56b7fe81c5dacccf81308abe..4b67a20f57dd259ab19f6b9a60999a4f3225c9aa 100644 (file)
@@ -436,9 +436,11 @@ void Filer::extent_to_file(CephContext *cct, ceph_file_layout *layout,
 
 // StripedReadResult
 
-void Filer::StripedReadResult::add_partial_result(bufferlist& bl,
+void Filer::StripedReadResult::add_partial_result(CephContext *cct,
+                                                 bufferlist& bl,
                                                  const vector<pair<uint64_t,uint64_t> >& buffer_extents)
 {
+  ldout(cct, 10) << "add_partial_result(" << this << ") " << bl.length() << " to " << buffer_extents << dendl;
   for (vector<pair<uint64_t,uint64_t> >::const_iterator p = buffer_extents.begin();
        p != buffer_extents.end();
        ++p) {
@@ -449,10 +451,14 @@ void Filer::StripedReadResult::add_partial_result(bufferlist& bl,
   }
 }
 
-void Filer::add_partial_sparse_result(bufferlist& bl, const map<uint64_t, uint64_t>& bl_map,
-                                     uint64_t bl_off,
-                                     const vector<pair<uint64_t,uint64_t> >& buffer_extents)
+void Filer::StripedReadResult::add_partial_sparse_result(CephContext *cct,
+                                                        bufferlist& bl, const map<uint64_t, uint64_t>& bl_map,
+                                                        uint64_t bl_off,
+                                                        const vector<pair<uint64_t,uint64_t> >& buffer_extents)
 {
+  ldout(cct, 10) << "add_partial_sparse_result(" << this << ") " << bl.length()
+                << " covering " << bl_map << " (offset " << bl_off << ")"
+                << " to " << buffer_extents << dendl;
   map<uint64_t, uint64_t>::const_iterator s = bl_map.begin();
   for (vector<pair<uint64_t,uint64_t> >::const_iterator p = buffer_extents.begin();
        p != buffer_extents.end();
@@ -500,8 +506,10 @@ void Filer::add_partial_sparse_result(bufferlist& bl, const map<uint64_t, uint64
   }
 }
 
-void Filer::StripedReadResult::assemble_result(bufferlist& bl, bool zero_tail)
+void Filer::StripedReadResult::assemble_result(CephContext *cct, bufferlist& bl, bool zero_tail)
 {
+  ldout(cct, 10) << "assemble_result(" << this << ") zero_tail=" << zero_tail << dendl;
+
   // go backwards, so that we can efficiently discard zeros
   map<uint64_t,pair<bufferlist,uint64_t> >::reverse_iterator p = partial.rbegin();
   if (p == partial.rend())
index 3dae59219f11ba577783ca0485fa46f73a536785..54471717278d56f1f2e349f8dead4ca1f8b4b5ab 100644 (file)
@@ -131,7 +131,8 @@ class Filer {
     map<uint64_t, pair<bufferlist, uint64_t> > partial;  // offset -> (data, intended length)
 
   public:
-    void add_partial_result(bufferlist& bl,
+    void add_partial_result(CephContext *cct,
+                           bufferlist& bl,
                            const vector<pair<uint64_t,uint64_t> >& buffer_extents);
     /**
      * add sparse read into results
@@ -141,11 +142,12 @@ class Filer {
      * @param bl_off logical buffer offset (e.g., first bl_map key if the buffer is not sparse)
      * @param buffer_extents output buffer extents the data maps to
      */
-    void add_partial_sparse_result(bufferlist& bl, const map<uint64_t, uint64_t>& bl_map,
+    void add_partial_sparse_result(CephContext *cct,
+                                  bufferlist& bl, const map<uint64_t, uint64_t>& bl_map,
                                   uint64_t bl_off,
                                   const vector<pair<uint64_t,uint64_t> >& buffer_extents);
 
-    void assemble_result(bufferlist& bl, bool zero_tail);
+    void assemble_result(CephContext *cct, bufferlist& bl, bool zero_tail);
   };
 
   /*** async file interface.  scatter/gather as needed. ***/
index 291013179a82e33afa102da4222647275cf4b4fd..97eff84776e25574d355d378271b6dad40d4a262 100644 (file)
@@ -1872,10 +1872,10 @@ void Objecter::_sg_read_finish(vector<ObjectExtent>& extents, vector<bufferlist>
     for (vector<ObjectExtent>::iterator eit = extents.begin();
         eit != extents.end();
         eit++, bit++) {
-      r.add_partial_result(*bit, eit->buffer_extents);
+      r.add_partial_result(cct, *bit, eit->buffer_extents);
     }
     bl->clear();
-    r.assemble_result(*bl, false);
+    r.assemble_result(cct, *bl, false);
   } else {
     ldout(cct, 15) << "  only one frag" << dendl;
     bl->claim(resultbl[0]);