From: xie xingguo Date: Tue, 6 Jun 2017 01:21:05 +0000 (+0800) Subject: os/bluestore: atomic deferred_batch_ops X-Git-Tag: v12.1.0~262^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=7005bbf754cbb4029593b0febdf649e0af421f7b;p=ceph.git os/bluestore: atomic deferred_batch_ops Signed-off-by: xie xingguo --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index af3a0a2218408..b6d5573adf8f2 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -8299,7 +8299,7 @@ void BlueStore::_kv_finalize_thread() if (!deferred_aggressive) { std::lock_guard l(deferred_lock); - if (deferred_queue_size >= deferred_batch_ops || + if (deferred_queue_size >= deferred_batch_ops.load() || throttle_deferred_bytes.past_midpoint()) { _deferred_try_submit(); } diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index b19aa51ecb8c3..56fff90d2edb8 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -1866,7 +1866,7 @@ private: size_t block_size_order = 0; ///< bits to shift to get block size uint64_t min_alloc_size = 0; ///< minimum allocation unit (power of 2) - int deferred_batch_ops = 0; ///< deferred batch size + std::atomic deferred_batch_ops = {0}; ///< deferred batch size ///< bits for min_alloc_size std::atomic min_alloc_size_order = {0};