
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>
52 lines
1.2 KiB
Bash
52 lines
1.2 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Copyright(c) 2012-2022 Intel Corporation
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
. $(dirname $3)/conf_framework.sh
|
|
|
|
check() {
|
|
cur_name=$(basename $2)
|
|
config_file_path=$1
|
|
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_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
|
|
}
|
|
|
|
apply() {
|
|
case "$1" in
|
|
"1")
|
|
add_function "
|
|
static inline unsigned long cas_get_free_memory(void)
|
|
{
|
|
return si_mem_available() << PAGE_SHIFT;
|
|
}" ;;
|
|
"2")
|
|
add_function "
|
|
static inline unsigned long cas_get_free_memory(void)
|
|
{
|
|
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
|
|
esac
|
|
}
|
|
|
|
conf_run $@
|