From 1d1561649c01621c4b89feb595992752492d01fa Mon Sep 17 00:00:00 2001 From: Roel Apfelbaum Date: Thu, 30 Nov 2023 03:12:38 -0500 Subject: [PATCH] Remove redundant fallback-PT counter accesses The fewer (atomic variable accesses on IO path) the better fare Signed-off-by: Roel Apfelbaum Signed-off-by: Michal Mielewczyk --- src/engine/cache_engine.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/engine/cache_engine.c b/src/engine/cache_engine.c index c291214..f7f160e 100644 --- a/src/engine/cache_engine.c +++ b/src/engine/cache_engine.c @@ -139,12 +139,17 @@ static ocf_req_cb ocf_cache_mode_to_engine_cb( bool ocf_fallback_pt_is_on(ocf_cache_t cache) { - ENV_BUG_ON(env_atomic_read(&cache->fallback_pt_error_counter) < 0); + int threshold = cache->fallback_pt_error_threshold; + int counter; - return (cache->fallback_pt_error_threshold != - OCF_CACHE_FALLBACK_PT_INACTIVE && - env_atomic_read(&cache->fallback_pt_error_counter) >= - cache->fallback_pt_error_threshold); + if (threshold == OCF_CACHE_FALLBACK_PT_INACTIVE) + return false; + + counter = env_atomic_read(&cache->fallback_pt_error_counter); + + ENV_BUG_ON(counter < 0); + + return counter >= threshold; } void ocf_resolve_effective_cache_mode(ocf_cache_t cache,