Merge pull request #631 from robertbaldyga/more-conservative-mem-check

Restore more conservative free memory calculation method
This commit is contained in:
Robert Baldyga 2021-01-15 21:07:06 +01:00 committed by GitHub
commit a4753f3f90
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 31 deletions

View File

@ -7,42 +7,33 @@
. $(dirname $3)/conf_framework
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
cur_name=$(basename $2)
config_file_path=$1
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_page_state(1)" "linux/mm.h"
then
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;
}" ;;
add_function "
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)
{
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;
}" ;;
add_function "
static inline unsigned long cas_global_zone_page_state(enum zone_stat_item item)
{
return global_page_state(item);
}" ;;
*)
exit 1
esac

View File

@ -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)