From 80c60fcde22cf1269ada45d0914543b8f7d49b3e Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 28 Sep 2017 08:02:50 -0400 Subject: [PATCH] os/bluestore: move several buffer{ptr,list}s into cache_other mempool Signed-off-by: Sage Weil --- src/os/bluestore/BlueStore.cc | 3 +++ src/os/bluestore/bluestore_types.h | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 4e7fc63dcdb..852c6ba14e3 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -1995,6 +1995,7 @@ void BlueStore::ExtentMap::update(KeyValueDB::Transaction t, unsigned n; // we need to encode inline_bl to measure encoded length bool never_happen = encode_some(0, OBJECT_MAX_SIZE, inline_bl, &n); + inline_bl.reassign_to_mempool(mempool::mempool_bluestore_cache_other); assert(!never_happen); size_t len = inline_bl.length(); dout(20) << __func__ << " inline shard " << len << " bytes from " << n @@ -3259,6 +3260,8 @@ BlueStore::OnodeRef BlueStore::Collection::get_onode( if (on->onode.extent_map_shards.empty()) { denc(on->extent_map.inline_bl, p); on->extent_map.decode_some(on->extent_map.inline_bl); + on->extent_map.inline_bl.reassign_to_mempool( + mempool::mempool_bluestore_cache_other); } else { on->extent_map.init_shards(false, false); } diff --git a/src/os/bluestore/bluestore_types.h b/src/os/bluestore/bluestore_types.h index 8e2b77aeb4c..267664d44a7 100644 --- a/src/os/bluestore/bluestore_types.h +++ b/src/os/bluestore/bluestore_types.h @@ -558,6 +558,7 @@ public: int len; denc_varint(len, p); csum_data = p.get_ptr(len); + csum_data.reassign_to_mempool(mempool::mempool_bluestore_cache_other); } if (has_unused()) { denc(unused, p); @@ -823,6 +824,7 @@ public: csum_chunk_order = order; csum_data = buffer::create(get_csum_value_size() * len / get_csum_chunk_size()); csum_data.zero(); + csum_data.reassign_to_mempool(mempool::mempool_bluestore_cache_other); } /// calculate csum for the buffer at the given b_off -- 2.39.5