]> 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>
Wed, 30 Aug 2017 21:18:18 +0000 (17:18 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index 68c8d0844e6210bab94927082f59327d062119db..5cfd8a05914c433842e97ba3873cf4f00e7c45d0 100644 (file)
@@ -8638,9 +8638,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;
     }
   }
 }
@@ -8712,6 +8719,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) {
@@ -8719,6 +8727,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;
     }
   }