Use available memory statistic when possible
Update function returning size of free memory to use available statistic if that's supported by given kernel. This function is used to check whether there is enough memory to start cache, and available statistic is preferred for this check over free statistic, as it does include size of page cache allocations which can be easily reclaimed by the system. Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
parent
3df37198ca
commit
b00de9c940
@ -9,12 +9,15 @@
|
||||
check() {
|
||||
cur_name=$(basename $2)
|
||||
config_file_path=$1
|
||||
if compile_module $cur_name "global_zone_page_state(1);" "linux/mm.h"
|
||||
if compile_module $cur_name "si_mem_available();" "linux/mm.h"
|
||||
then
|
||||
echo $cur_name "1" >> $config_file_path
|
||||
elif compile_module $cur_name "global_page_state(1);" "linux/mm.h"
|
||||
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
|
||||
@ -24,15 +27,21 @@ apply() {
|
||||
case "$1" in
|
||||
"1")
|
||||
add_function "
|
||||
static inline unsigned long cas_global_zone_page_state(enum zone_stat_item item)
|
||||
static inline unsigned long cas_get_free_memory(void)
|
||||
{
|
||||
return global_zone_page_state(item);
|
||||
return si_mem_available() << PAGE_SHIFT;
|
||||
}" ;;
|
||||
"2")
|
||||
add_function "
|
||||
static inline unsigned long cas_global_zone_page_state(enum zone_stat_item item)
|
||||
static inline unsigned long cas_get_free_memory(void)
|
||||
{
|
||||
return global_page_state(item);
|
||||
return global_zone_page_state(NR_FREE_PAGES) << PAGE_SHIFT;
|
||||
}" ;;
|
||||
"3")
|
||||
add_function "
|
||||
static inline unsigned long cas_get_free_memory(void)
|
||||
{
|
||||
return global_page_state(NR_FREE_PAGES) << PAGE_SHIFT;
|
||||
}" ;;
|
||||
*)
|
||||
exit 1
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright(c) 2012-2021 Intel Corporation
|
||||
* Copyright(c) 2012-2022 Intel Corporation
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
static inline uint64_t env_get_free_memory(void)
|
||||
{
|
||||
return cas_global_zone_page_state(NR_FREE_PAGES) << PAGE_SHIFT;
|
||||
return cas_get_free_memory();
|
||||
}
|
||||
|
||||
static inline void *env_malloc(size_t size, int flags)
|
||||
|
Loading…
Reference in New Issue
Block a user