From ca3e1a598497c7c941c0efcd0913efa8a422f057 Mon Sep 17 00:00:00 2001 From: Robert Baldyga Date: Thu, 14 Jan 2021 14:38:03 +0100 Subject: [PATCH] Revert "modules: use si_mem_available() when possible" This method produced too optimistic free memory value, which in result led to oom killer activation. This patch restores more conservative free memory calculation method. This reverts commit 1e9b7a4262327b9519653bd3700141d054a2f438. Signed-off-by: Robert Baldyga --- configure.d/1_global_page_state.conf | 29 ++++++++++------------------ modules/cas_cache/ocf_env.h | 2 +- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/configure.d/1_global_page_state.conf b/configure.d/1_global_page_state.conf index 7c74b44..37460e4 100644 --- a/configure.d/1_global_page_state.conf +++ b/configure.d/1_global_page_state.conf @@ -9,39 +9,30 @@ check() { cur_name=$(basename $2) config_file_path=$1 - if compile_module $cur_name "si_mem_available()" "linux/mm.h" + if compile_module $cur_name "global_zone_page_state(1)" "linux/mm.h" then echo $cur_name "1" >> $config_file_path - - elif compile_module $cur_name "global_zone_page_state(1)" "linux/mm.h" - then - echo $cur_name "2" >> $config_file_path elif compile_module $cur_name "global_page_state(1)" "linux/mm.h" then - echo $cur_name "3" >> $config_file_path - else - echo $cur_name "X" >> $config_file_path - fi + echo $cur_name "2" >> $config_file_path + else + echo $cur_name "X" >> $config_file_path + fi } apply() { case "$1" in "1") add_function " - static inline unsigned long cas_get_free_mem(void) - { return si_mem_available() << PAGE_SHIFT; + static inline unsigned long cas_global_zone_page_state(enum zone_stat_item item) + { + return global_zone_page_state(item); }" ;; "2") add_function " - static inline unsigned long cas_get_free_mem(void) + static inline unsigned long cas_global_zone_page_state(enum zone_stat_item item) { - return global_zone_page_state(NR_FREE_PAGES) << PAGE_SHIFT; - }" ;; - "3") - add_function " - static inline unsigned long cas_get_free_mem(void) - { - return global_page_state(NR_FREE_PAGES) << PAGE_SHIFT; + return global_page_state(item); }" ;; *) exit 1 diff --git a/modules/cas_cache/ocf_env.h b/modules/cas_cache/ocf_env.h index 6f1e2e3..040e40b 100644 --- a/modules/cas_cache/ocf_env.h +++ b/modules/cas_cache/ocf_env.h @@ -21,7 +21,7 @@ static inline uint64_t env_get_free_memory(void) { - return cas_get_free_mem(); + return cas_global_zone_page_state(NR_FREE_PAGES) << PAGE_SHIFT; } static inline void *env_malloc(size_t size, int flags)