[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0705181012090.17783@skynet.skynet.ie>
Date: Fri, 18 May 2007 10:23:05 +0100 (IST)
From: Mel Gorman <mel@....ul.ie>
To: Andrew Morton <akpm@...ux-foundation.org>
cc: linux-kernel@...r.kernel.org, linux-mm@...ck.org
Subject: Re: [PATCH 5/5] Mark page cache pages as __GFP_PAGECACHE instead of
__GFP_MOVABLE
On Thu, 17 May 2007, Andrew Morton wrote:
> On Thu, 17 May 2007 11:12:03 +0100 (IST)
> Mel Gorman <mel@....ul.ie> wrote:
>
>> --- linux-2.6.22-rc1-mm1-025_gfphighuser/fs/buffer.c 2007-05-16 22:55:50.000000000 +0100
>> +++ linux-2.6.22-rc1-mm1-030_pagecache_mark/fs/buffer.c 2007-05-16 23:07:30.000000000 +0100
>> @@ -1009,7 +1009,7 @@ grow_dev_page(struct block_device *bdev,
>> struct buffer_head *bh;
>>
>> page = find_or_create_page(inode->i_mapping, index,
>> - GFP_NOFS|__GFP_RECLAIMABLE);
>> + GFP_NOFS_PAGECACHE);
>> if (!page)
>> return NULL;
>>
>
> I ended up with
>
> page = find_or_create_page(inode->i_mapping, index,
> (mapping_gfp_mask(inode->i_mapping) & ~__GFP_FS)|__GFP_MOVABLE);
>
> here.
>
That looks like it'll work fine with respects to grouping by mobility but
there is a slight functional difference worth noting. Specifically, the
old code did not obey cpuset limits because __GFP_HARDWALL was not set.
This change gets it's GFP mask from bdget() calling mapping_set_gfp_mask()
which is GFP_USER and so will obey CPUSET limits. This new version looks
more correct.
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists