From 29251473953b2a3be78ab31ed2bea7e11e0c8300 Mon Sep 17 00:00:00 2001 From: Michal Rakowski Date: Mon, 24 Jun 2019 14:24:10 +0200 Subject: [PATCH 1/2] Remove reduntant dirty check When flush completion is called there could be some clines marked as dirty since those could be in-use during flushing. --- src/mngt/ocf_mngt_flush.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/mngt/ocf_mngt_flush.c b/src/mngt/ocf_mngt_flush.c index 69684d4..df49e3e 100644 --- a/src/mngt/ocf_mngt_flush.c +++ b/src/mngt/ocf_mngt_flush.c @@ -598,20 +598,6 @@ static void _ocf_mngt_flush_finish(ocf_pipeline_t pipeline, void *priv, ocf_cache_t cache = context->cache; ocf_core_t core = context->core; - if (!error) { - switch(context->op) { - case flush_cache: - case purge_cache: - ENV_BUG_ON(ocf_mngt_cache_is_dirty(cache)); - break; - case flush_core: - case purge_core: - ENV_BUG_ON(env_atomic_read( - &core->runtime_meta->dirty_clines)); - break; - } - } - _ocf_mngt_end_flush(cache); switch (context->op) { From a818ffabfdc389252e83676126c4bfa84acdfa68 Mon Sep 17 00:00:00 2001 From: Michal Rakowski Date: Mon, 24 Jun 2019 15:23:06 +0200 Subject: [PATCH 2/2] Move ocf_mngt_cache_is_dirty to public mngt interface --- inc/ocf_mngt.h | 9 +++++++++ src/mngt/ocf_mngt_common.h | 2 -- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/inc/ocf_mngt.h b/inc/ocf_mngt.h index dae9e25..3c48018 100644 --- a/inc/ocf_mngt.h +++ b/inc/ocf_mngt.h @@ -605,6 +605,15 @@ typedef void (*ocf_mngt_cache_flush_end_t)(ocf_cache_t cache, void ocf_mngt_cache_flush(ocf_cache_t cache, ocf_mngt_cache_flush_end_t cmpl, void *priv); +/** + * @brief Check if cache is dirty + * + * @param[in] cache Cache handle + * + * @retval true if cache is dirty, false otherwise + */ +bool ocf_mngt_cache_is_dirty(ocf_cache_t cache); + /** * @brief Completion callback of core flush operation * diff --git a/src/mngt/ocf_mngt_common.h b/src/mngt/ocf_mngt_common.h index ee77cf9..38283d0 100644 --- a/src/mngt/ocf_mngt_common.h +++ b/src/mngt/ocf_mngt_common.h @@ -21,8 +21,6 @@ int _ocf_cleaning_thread(void *priv); int cache_mngt_thread_io_requests(void *data); -bool ocf_mngt_cache_is_dirty(ocf_cache_t cache); - int ocf_mngt_add_partition_to_cache(struct ocf_cache *cache, ocf_part_id_t part_id, const char *name, uint32_t min_size, uint32_t max_size, uint8_t priority, bool valid);