From d0c06743f4477532d46155fb823049107f2a807f Mon Sep 17 00:00:00 2001 From: Igor Fedotov Date: Sun, 20 Sep 2020 12:22:05 +0300 Subject: [PATCH] os/bluestore: add missing structs to bluestore_cache_other mempool Fixes: https://tracker.ceph.com/issues/47551 Signed-off-by: Igor Fedotov (cherry picked from commit 4592c5df554190065fa9a994f7b6dc3fed7ea214) --- src/os/bluestore/bluestore_types.cc | 6 ++++++ src/os/bluestore/bluestore_types.h | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/src/os/bluestore/bluestore_types.cc b/src/os/bluestore/bluestore_types.cc index a0b799422f75a..d04773728c59b 100644 --- a/src/os/bluestore/bluestore_types.cc +++ b/src/os/bluestore/bluestore_types.cc @@ -389,6 +389,10 @@ void bluestore_blob_use_tracker_t::allocate() { ceph_assert(num_au != 0); bytes_per_au = new uint32_t[num_au]; + mempool::get_pool( + mempool::pool_index_t(mempool::mempool_bluestore_cache_other)). + adjust_count(1, sizeof(uint32_t) * num_au); + for (uint32_t i = 0; i < num_au; ++i) { bytes_per_au[i] = 0; } @@ -1032,6 +1036,8 @@ void bluestore_blob_t::split(uint32_t blob_offset, bluestore_blob_t& rb) } // bluestore_shared_blob_t +MEMPOOL_DEFINE_OBJECT_FACTORY(bluestore_shared_blob_t, bluestore_shared_blob_t, + bluestore_cache_other); void bluestore_shared_blob_t::dump(Formatter *f) const { diff --git a/src/os/bluestore/bluestore_types.h b/src/os/bluestore/bluestore_types.h index 174cf3dddbf19..4f686904501e4 100644 --- a/src/os/bluestore/bluestore_types.h +++ b/src/os/bluestore/bluestore_types.h @@ -266,6 +266,9 @@ struct bluestore_blob_use_tracker_t { void clear() { if (num_au != 0) { delete[] bytes_per_au; + mempool::get_pool( + mempool::pool_index_t(mempool::mempool_bluestore_cache_other)). + adjust_count(-1, -sizeof(uint32_t) * num_au); } bytes_per_au = 0; au_size = 0; @@ -866,6 +869,7 @@ ostream& operator<<(ostream& out, const bluestore_blob_t& o); /// shared blob state struct bluestore_shared_blob_t { + MEMPOOL_CLASS_HELPERS(); uint64_t sbid; ///> shared blob id bluestore_extent_ref_map_t ref_map; ///< shared blob extents -- 2.39.5