On Mon, 4 Apr 2016 08:46:09 +0900 Minchan Kim <minchan@xxxxxxxxxx> 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 ;) -- 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>