From a947127f550948272a09299fa666425ebcb7f2fe Mon Sep 17 00:00:00 2001 From: Robert Baldyga Date: Fri, 14 Jan 2022 17:16:21 +0100 Subject: [PATCH] Introduce ocf_lru_add_free() function Signed-off-by: Robert Baldyga --- src/ocf_lru.c | 9 +++++++++ src/ocf_lru.h | 1 + 2 files changed, 10 insertions(+) diff --git a/src/ocf_lru.c b/src/ocf_lru.c index ad87f1a..fee3849 100644 --- a/src/ocf_lru.c +++ b/src/ocf_lru.c @@ -1027,3 +1027,12 @@ uint32_t ocf_lru_num_free(ocf_cache_t cache) { return env_atomic_read(&cache->free.runtime->curr_size); } + +void ocf_lru_add_free(ocf_cache_t cache, ocf_cache_line_t cline) +{ + uint32_t lru_list = (cline % OCF_NUM_LRU_LISTS); + struct ocf_lru_list *list; + + list = ocf_lru_get_list(&cache->free, lru_list, true); + add_lru_head_nobalance(cache, list, cline); +} diff --git a/src/ocf_lru.h b/src/ocf_lru.h index a8b0abd..e093ee8 100644 --- a/src/ocf_lru.h +++ b/src/ocf_lru.h @@ -30,6 +30,7 @@ void ocf_lru_clean(ocf_cache_t cache, struct ocf_user_part *user_part, ocf_queue_t io_queue, uint32_t count); void ocf_lru_repart(ocf_cache_t cache, ocf_cache_line_t cline, struct ocf_part *src_upart, struct ocf_part *dst_upart); +void ocf_lru_add_free(ocf_cache_t cache, ocf_cache_line_t cline); uint32_t ocf_lru_num_free(ocf_cache_t cache); void ocf_lru_populate(ocf_cache_t cache, ocf_cache_line_t num_free_clines); struct ocf_lru_list *ocf_lru_get_list(struct ocf_part *part,