lkml.org 
[lkml]   [2016]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 20/27] mm, vmscan: Update classzone_idx if buffer_heads_over_limit
    From
    Date
    On 06/09/2016 08:04 PM, Mel Gorman wrote:
    > If buffer heads are over the limit then the direct reclaim gfp_mask
    > is promoted to __GFP_HIGHMEM so that lowmem is indirectly freed. With
    > node-based reclaim, it is also required that the classzone_idx be updated
    > or the pages will be skipped.
    >
    > Signed-off-by: Mel Gorman <mgorman@techsingularity.net>

    Acked-by: Vlastimil Babka <vbabka@suse.cz>

    > ---
    > mm/vmscan.c | 4 +++-
    > 1 file changed, 3 insertions(+), 1 deletion(-)
    >
    > diff --git a/mm/vmscan.c b/mm/vmscan.c
    > index 3edf941e9965..7a2d69612231 100644
    > --- a/mm/vmscan.c
    > +++ b/mm/vmscan.c
    > @@ -2547,8 +2547,10 @@ static void shrink_zones(struct zonelist *zonelist, struct scan_control *sc,
    > * highmem pages could be pinning lowmem pages storing buffer_heads
    > */
    > orig_mask = sc->gfp_mask;
    > - if (buffer_heads_over_limit)
    > + if (buffer_heads_over_limit) {
    > sc->gfp_mask |= __GFP_HIGHMEM;
    > + classzone_idx = gfp_zone(sc->gfp_mask);
    > + }
    >
    > for_each_zone_zonelist_nodemask(zone, z, zonelist,
    > gfp_zone(sc->gfp_mask), sc->nodemask) {
    >

    \
     
     \ /
      Last update: 2016-06-17 11:41    [W:4.118 / U:0.324 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site