From: "sh.yoon" <sh.yoon@xxxxxxx> When zone watermark is not ok in get_page_from_freelist(), we call zone_reclaim(). But !CONFIG_NUMA system`s zone_reclaim() just returns zero. Zero means ZONE_RECLAIM_SOME and check zone watermark again needlessly. To avoid needless zone watermark check, change it as ZONE_RECLAIM_NOSCAN. Signed-off-by: sh.yoon <sh.yoon@xxxxxxx> --- include/linux/swap.h | 7 ++++++- mm/internal.h | 5 ----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/linux/swap.h b/include/linux/swap.h index 3887472..e04e435 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -332,6 +332,11 @@ extern int vm_swappiness; extern int remove_mapping(struct address_space *mapping, struct page *page); extern unsigned long vm_total_pages; +#define ZONE_RECLAIM_NOSCAN -2 +#define ZONE_RECLAIM_FULL -1 +#define ZONE_RECLAIM_SOME 0 +#define ZONE_RECLAIM_SUCCESS 1 + #ifdef CONFIG_NUMA extern int zone_reclaim_mode; extern int sysctl_min_unmapped_ratio; @@ -341,7 +346,7 @@ extern int zone_reclaim(struct zone *, gfp_t, unsigned int); #define zone_reclaim_mode 0 static inline int zone_reclaim(struct zone *z, gfp_t mask, unsigned int order) { - return 0; + return ZONE_RECLAIM_NOSCAN; } #endif diff --git a/mm/internal.h b/mm/internal.h index a25e359..d8ec7f8 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -397,11 +397,6 @@ static inline void mminit_validate_memmodel_limits(unsigned long *start_pfn, } #endif /* CONFIG_SPARSEMEM */ -#define ZONE_RECLAIM_NOSCAN -2 -#define ZONE_RECLAIM_FULL -1 -#define ZONE_RECLAIM_SOME 0 -#define ZONE_RECLAIM_SUCCESS 1 - extern int hwpoison_filter(struct page *p); extern u32 hwpoison_filter_dev_major; -- 2.1.4 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>