On Mon,  4 Apr 2016 08:46:09 +0900 Minchan Kim <minc...@kernel.org> wrote:

> We have been reclaimed highmem zone if buffer_heads is over limit
> but [1] changed the behavior so it doesn't reclaim highmem zone
> although buffer_heads is over the limit.
> This patch restores the logic.
> 
> [1] commit 6b4f7799c6a5 ("mm: vmscan: invoke slab shrinkers from 
> shrink_zone()")
> 
> ...
>
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -2550,7 +2550,7 @@ static void shrink_zones(struct zonelist *zonelist, 
> struct scan_control *sc)
>               sc->gfp_mask |= __GFP_HIGHMEM;
>  
>       for_each_zone_zonelist_nodemask(zone, z, zonelist,
> -                                     requested_highidx, sc->nodemask) {
> +                                     gfp_zone(sc->gfp_mask), sc->nodemask) {
>               enum zone_type classzone_idx;
>  
>               if (!populated_zone(zone))

Wait wut wot.  We broke this over a year ago?  Highmem pagecache pages
pinning buffer_head lowmem used to be a huuuge problem.  Before most of
you were born ;)

Reply via email to