From 4e8c037d7b9f6d5f181927436f934376541fb96c Mon Sep 17 00:00:00 2001 From: Michal Mielewczyk Date: Tue, 16 Mar 2021 13:22:28 +0100 Subject: [PATCH 1/2] Fix `ocf_engine_unmapped_count()` Inserted entries should be considered mapped. Signed-off-by: Michal Mielewczyk --- src/engine/engine_common.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/engine/engine_common.h b/src/engine/engine_common.h index aabffe9..353c607 100644 --- a/src/engine/engine_common.h +++ b/src/engine/engine_common.h @@ -109,7 +109,8 @@ static inline uint32_t ocf_engine_mapped_count(struct ocf_request *req) */ static inline uint32_t ocf_engine_unmapped_count(struct ocf_request *req) { - return req->core_line_count - (req->info.hit_no + req->info.invalid_no); + return req->core_line_count - + (req->info.hit_no + req->info.invalid_no + req->info.insert_no); } void ocf_map_cache_line(struct ocf_request *req, From 71ec08c1587b183746ffbc96ff725bf290f0ffb7 Mon Sep 17 00:00:00 2001 From: Michal Mielewczyk Date: Tue, 16 Mar 2021 15:37:03 +0100 Subject: [PATCH 2/2] Assert number of cachelines to evict Number of cachelines to evcit can't be greater than the number of unmapped entries in request. Signed-off-by: Michal Mielewczyk --- src/eviction/lru.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/eviction/lru.c b/src/eviction/lru.c index 5b3ae39..f5a7a83 100644 --- a/src/eviction/lru.c +++ b/src/eviction/lru.c @@ -683,6 +683,8 @@ uint32_t evp_lru_req_clines(struct ocf_request *req, ++req_idx; ++i; + /* Number of cachelines to evict have to match space in the request */ + ENV_BUG_ON(req_idx == req->core_line_count && i != cline_no ); } return i;