]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: move several buffer{ptr,list}s into cache_other mempool 18001/head
authorSage Weil <sage@redhat.com>
Thu, 28 Sep 2017 12:02:50 +0000 (08:02 -0400)
committerSage Weil <sage@redhat.com>
Thu, 28 Sep 2017 12:17:00 +0000 (08:17 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc
src/os/bluestore/bluestore_types.h

index 4e7fc63dcdbd7d3460410c940e905dd38ebcc3c6..852c6ba14e3150c70aab6a412650cf15bb07e3b3 100644 (file)
@@ -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);
     }
index 8e2b77aeb4c48217872b819190e5b76bb2703938..267664d44a7a109f544e54b4e09c92846e4967f9 100644 (file)
@@ -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