The patch titled Subject: vmscan: return NODE_RECLAIM_NOSCAN in node_reclaim() when CONFIG_NUMA is n has been added to the -mm tree. Its filename is vmscan-return-node_reclaim_noscan-in-node_reclaim-when-config_numa-is-n.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/vmscan-return-node_reclaim_noscan-in-node_reclaim-when-config_numa-is-n.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/vmscan-return-node_reclaim_noscan-in-node_reclaim-when-config_numa-is-n.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Wei Yang <richard.weiyang@xxxxxxxxx> Subject: vmscan: return NODE_RECLAIM_NOSCAN in node_reclaim() when CONFIG_NUMA is n fa5e084e43eb ("vmscan: do not unconditionally treat zones that fail zone_reclaim() as full") changed the return value of node_reclaim(). The original return value 0 means NODE_RECLAIM_SOME after this commit. While the return value of node_reclaim() when CONFIG_NUMA is n is not changed. This will leads to call zone_watermark_ok() again. This patch fixes the return value by adjusting to NODE_RECLAIM_NOSCAN. Since node_reclaim() is only called in page_alloc.c, move it to mm/internal.h. Link: http://lkml.kernel.org/r/20181113080436.22078-1-richard.weiyang@xxxxxxxxx Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx> Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> Reviewed-by: Matthew Wilcox <willy@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/swap.h | 6 ------ mm/internal.h | 10 ++++++++++ 2 files changed, 10 insertions(+), 6 deletions(-) --- a/include/linux/swap.h~vmscan-return-node_reclaim_noscan-in-node_reclaim-when-config_numa-is-n +++ a/include/linux/swap.h @@ -357,14 +357,8 @@ extern unsigned long vm_total_pages; extern int node_reclaim_mode; extern int sysctl_min_unmapped_ratio; extern int sysctl_min_slab_ratio; -extern int node_reclaim(struct pglist_data *, gfp_t, unsigned int); #else #define node_reclaim_mode 0 -static inline int node_reclaim(struct pglist_data *pgdat, gfp_t mask, - unsigned int order) -{ - return 0; -} #endif extern int page_evictable(struct page *page); --- a/mm/internal.h~vmscan-return-node_reclaim_noscan-in-node_reclaim-when-config_numa-is-n +++ a/mm/internal.h @@ -444,6 +444,16 @@ static inline void mminit_validate_memmo #define NODE_RECLAIM_SOME 0 #define NODE_RECLAIM_SUCCESS 1 +#ifdef CONFIG_NUMA +extern int node_reclaim(struct pglist_data *, gfp_t, unsigned int); +#else +static inline int node_reclaim(struct pglist_data *pgdat, gfp_t mask, + unsigned int order) +{ + return NODE_RECLAIM_NOSCAN; +} +#endif + extern int hwpoison_filter(struct page *p); extern u32 hwpoison_filter_dev_major; _ Patches currently in -mm which might be from richard.weiyang@xxxxxxxxx are mm-slub-remove-validation-on-cpu_slab-in-__flush_cpu_slab.patch mm-slub-page-is-always-non-null-for-node_match.patch mm-slub-record-final-state-of-slub-action-in-deactivate_slab.patch mm-remove-reset-of-pcp-counter-in-pageset_init.patch vmscan-return-node_reclaim_noscan-in-node_reclaim-when-config_numa-is-n.patch