From 65445a478803656f0d39fd634b40c4476cb3f1f3 Mon Sep 17 00:00:00 2001 From: linux Date: Thu, 9 Nov 2017 15:55:08 +0100 Subject: [PATCH] os/bluestore: avoid excessive ops in _txc_release_alloc Signed-off-by: Igor Fedotov --- src/os/bluestore/BlueStore.cc | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 1abe4683b36..fd6308195ff 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -8327,17 +8327,11 @@ void BlueStore::_txc_finish(TransContext *txc) void BlueStore::_txc_release_alloc(TransContext *txc) { - interval_set bulk_release_extents; // it's expected we're called with lazy_release_lock already taken! - if (!cct->_conf->bluestore_debug_no_reuse_blocks) { + if (likely(!cct->_conf->bluestore_debug_no_reuse_blocks)) { dout(10) << __func__ << " " << txc << " " << txc->released << dendl; - // interval_set seems to be too costly for inserting things in - // bstore_kv_final. We could serialize in simpler format and perform - // the merge separately, maybe even in a dedicated thread. - bulk_release_extents.insert(txc->released); + alloc->release(txc->released); } - - alloc->release(bulk_release_extents); txc->allocated.clear(); txc->released.clear(); } -- 2.39.5