]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: more deferred debugging
authorSage Weil <sage@redhat.com>
Wed, 30 Aug 2017 21:18:18 +0000 (17:18 -0400)
committerSage Weil <sage@redhat.com>
Fri, 8 Sep 2017 12:17:29 +0000 (08:17 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 11ac691dcc86aeed4ccb692a79ade4be04c5ef2f)

src/os/bluestore/BlueStore.cc

index 7b93f047e99bb49c4316c8cc8ee3a89ca5458441..ce1fc3088ab5d8c1085d133d68756fdb55dcbac8 100644 (file)
@@ -8700,9 +8700,16 @@ void BlueStore::deferred_try_submit()
     osrs.push_back(&osr);
   }
   for (auto& osr : osrs) {
-    if (osr->deferred_pending && !osr->deferred_running) {
-      _deferred_submit_unlock(osr.get());
-      deferred_lock.lock();
+    if (osr->deferred_pending) {
+      if (!osr->deferred_running) {
+       _deferred_submit_unlock(osr.get());
+       deferred_lock.lock();
+      } else {
+       dout(20) << __func__ << "  osr " << osr << " already has running"
+                << dendl;
+      }
+    } else {
+      dout(20) << __func__ << "  osr " << osr << " has no pending" << dendl;
     }
   }
 }
@@ -8771,6 +8778,7 @@ void BlueStore::_deferred_aio_finish(OpSequencer *osr)
     assert(osr->deferred_running == b);
     osr->deferred_running = nullptr;
     if (!osr->deferred_pending) {
+      dout(20) << __func__ << " dequeueing" << dendl;
       auto q = deferred_queue.iterator_to(*osr);
       deferred_queue.erase(q);
     } else if (deferred_aggressive) {
@@ -8778,6 +8786,8 @@ void BlueStore::_deferred_aio_finish(OpSequencer *osr)
       finishers[0]->queue(new FunctionContext([&](int) {
            deferred_try_submit();
          }));
+    } else {
+      dout(20) << __func__ << " leaving queued, more pending" << dendl;
     }
   }