On Tue, Nov 13, 2018 at 01:56:11PM +0100, Michal Hocko wrote: >On Tue 13-11-18 16:04:36, Wei Yang wrote: >> Commit 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 fix 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. > >The issue should be cosmetic but the code consistency is definitely an >improvement. Moving this from swap.h makes a lot of sense as well. > >> Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx> > >Acked-by: Michal Hocko <mhocko@xxxxxxxx> Thanks. > >> --- >> v2: move node_reclaim() to mm/internal.h >> --- >> include/linux/swap.h | 6 ------ >> mm/internal.h | 10 ++++++++++ >> 2 files changed, 10 insertions(+), 6 deletions(-) >> >> diff --git a/include/linux/swap.h b/include/linux/swap.h >> index d8a07a4f171d..065988c27373 100644 >> --- a/include/linux/swap.h >> +++ b/include/linux/swap.h >> @@ -358,14 +358,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); >> diff --git a/mm/internal.h b/mm/internal.h >> index 291eb2b6d1d8..6a57811ae47d 100644 >> --- a/mm/internal.h >> +++ b/mm/internal.h >> @@ -444,6 +444,16 @@ static inline void mminit_validate_memmodel_limits(unsigned long *start_pfn, >> #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; >> -- >> 2.15.1 > >-- >Michal Hocko >SUSE Labs -- Wei Yang Help you, Help me