Re: [PATCH] mm: Make zone_reclaim() return ZONE_RECLAIM_NOSCAN not zero

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri 26-06-15 11:39:08, sh.yoon@xxxxxxx wrote:
> 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.

The return value might be indeed confusing, but

> To avoid needless zone watermark check, change it as ZONE_RECLAIM_NOSCAN.

this shouldn't happen because zone_reclaim_mode is always 0 for
!CONFIG_NUMA so we do not even get to call zone_reclaim. So this part of
the changelog is misleading.

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

-- 
Michal Hocko
SUSE Labs

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



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]