From: Sage Weil Date: Fri, 29 Sep 2017 18:47:19 +0000 (-0500) Subject: os/bluestore: wake kv thread when blocking on deferred_bytes X-Git-Tag: v13.0.1~666^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=633b17007701d87903fe1d10b19c44210a3326eb;p=ceph.git os/bluestore: wake kv thread when blocking on deferred_bytes We need to wake the kv thread whenever setting deferred_aggressive to ensure that txns with deferred io that have committed but haven't submitted their deferred writes get submitted. This aligns us with the other users of deferred_aggressive (e.g., _osr_drain_all). Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 852c6ba14e3..f5a198a4de4 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -8951,6 +8951,11 @@ int BlueStore::queue_transactions( << dendl; ++deferred_aggressive; deferred_try_submit(); + { + // wake up any previously finished deferred events + std::lock_guard l(kv_lock); + kv_cond.notify_one(); + } throttle_deferred_bytes.get(txc->cost); --deferred_aggressive; }