From daca542df78cb7291c641f6719210fd8aa256fce Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 23 Jun 2016 17:09:20 -0400 Subject: [PATCH] os/bluestore: un-inline some 2Q methods Signed-off-by: Sage Weil --- src/os/bluestore/BlueStore.cc | 30 ++++++++++++++++++++++++++++++ src/os/bluestore/BlueStore.h | 27 ++------------------------- 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 359de96cbdc53..7df30d805890f 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -656,6 +656,36 @@ void BlueStore::TwoQCache::_add_buffer(Buffer *b, int level, Buffer *near) } } +void BlueStore::TwoQCache::_rm_buffer(Buffer *b) +{ + dout(20) << __func__ << " " << *b << dendl; + if (!b->is_empty()) { + assert(buffer_bytes >= b->length); + buffer_bytes -= b->length; + } + switch (b->cache_private) { + case BUFFER_WARM_IN: + buffer_warm_in.erase(buffer_warm_in.iterator_to(*b)); + break; + case BUFFER_WARM_OUT: + buffer_warm_out.erase(buffer_warm_out.iterator_to(*b)); + break; + case BUFFER_HOT: + buffer_hot.erase(buffer_hot.iterator_to(*b)); + break; + default: + assert(0 == "bad cache_private"); + } +} + +void BlueStore::TwoQCache::_adjust_buffer_size(Buffer *b, int64_t delta) +{ + dout(20) << __func__ << " delta " << delta << " on " << *b << dendl; + if (!b->is_empty()) { + buffer_bytes += delta; + } +} + void BlueStore::TwoQCache::trim(uint64_t onode_max, uint64_t buffer_max) { std::lock_guard l(lock); diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index 1ac611b0f7399..66be681da666c 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -656,31 +656,8 @@ public: void _touch_onode(OnodeRef& o) override; void _add_buffer(Buffer *b, int level, Buffer *near) override; - - void _rm_buffer(Buffer *b) override { - if (!b->is_empty()) { - assert(buffer_bytes >= b->length); - buffer_bytes -= b->length; - } - switch (b->cache_private) { - case BUFFER_WARM_IN: - buffer_warm_in.erase(buffer_warm_in.iterator_to(*b)); - break; - case BUFFER_WARM_OUT: - buffer_warm_out.erase(buffer_warm_out.iterator_to(*b)); - break; - case BUFFER_HOT: - buffer_hot.erase(buffer_hot.iterator_to(*b)); - break; - default: - assert(0 == "bad cache_private"); - } - } - void _adjust_buffer_size(Buffer *b, int64_t delta) override { - if (!b->is_empty()) { - buffer_bytes += delta; - } - } + void _rm_buffer(Buffer *b) override; + void _adjust_buffer_size(Buffer *b, int64_t delta) override; void _touch_buffer(Buffer *b) override { switch (b->cache_private) { case BUFFER_WARM_IN: -- 2.39.5