From: Xinyu Huang Date: Thu, 30 Dec 2021 08:43:08 +0000 (+0800) Subject: crimson/os/seastore/cache: clean up LRU X-Git-Tag: v17.1.0~127^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=402e3d9a71ceb1591548f9e9584b42271dd042fb;p=ceph-ci.git crimson/os/seastore/cache: clean up LRU Signed-off-by: Xinyu Huang --- diff --git a/src/crimson/os/seastore/cache.cc b/src/crimson/os/seastore/cache.cc index 6f7f6833f38..8eacead9899 100644 --- a/src/crimson/os/seastore/cache.cc +++ b/src/crimson/os/seastore/cache.cc @@ -34,7 +34,6 @@ Cache::Cache( Cache::~Cache() { LOG_PREFIX(Cache::~Cache); - lru.clear(); for (auto &i: extents) { ERROR("extent {} still alive", i); } @@ -618,9 +617,9 @@ void Cache::add_extent(CachedExtentRef ref) if (ref->is_dirty()) { add_to_dirty(ref); - } else if (!ref->is_placeholder()) { - lru.add_to_lru(*ref); - } + } else { + touch_extent(*ref); + } DEBUG("extent {}", *ref); } diff --git a/src/crimson/os/seastore/cache.h b/src/crimson/os/seastore/cache.h index 4d0225ead1e..c262760ce9b 100644 --- a/src/crimson/os/seastore/cache.h +++ b/src/crimson/os/seastore/cache.h @@ -725,16 +725,6 @@ private: remove_from_lru(lru.front()); } } - public: - LRU(size_t capacity) : capacity(capacity) {} - - size_t get_current_contents_bytes() const { - return contents; - } - - size_t get_current_contents_extents() const { - return lru.size(); - } void add_to_lru(CachedExtent &extent) { assert( @@ -750,6 +740,17 @@ private: trim_to_capacity(); } + public: + LRU(size_t capacity) : capacity(capacity) {} + + size_t get_current_contents_bytes() const { + return contents; + } + + size_t get_current_contents_extents() const { + return lru.size(); + } + void remove_from_lru(CachedExtent &extent) { assert(extent.is_clean()); assert(!extent.is_pending()); @@ -787,7 +788,7 @@ private: } ~LRU() { - assert(lru.empty()); + clear(); } } lru; diff --git a/src/crimson/os/seastore/transaction_manager.cc b/src/crimson/os/seastore/transaction_manager.cc index 255b082ee99..a04c45ef17b 100644 --- a/src/crimson/os/seastore/transaction_manager.cc +++ b/src/crimson/os/seastore/transaction_manager.cc @@ -470,9 +470,7 @@ TransactionManager::get_extent_if_live_ret TransactionManager::get_extent_if_liv }); } -TransactionManager::~TransactionManager() { - cache->clear_lru(); -} +TransactionManager::~TransactionManager() {} void TransactionManager::register_metrics() {