|| ||Linus Torvalds <torvalds-AT-osdl.org>|
|| ||Mel Gorman <mel-AT-skynet.ie>|
|| ||Re: [PATCH 1/11] Add __GFP_MOVABLE flag and update callers|
|| ||Thu, 23 Nov 2006 09:11:59 -0800 (PST)|
|| ||Christoph Lameter <clameter-AT-sgi.com>, linux-mm-AT-kvack.org,
Linux Kernel Mailing List <linux-kernel-AT-vger.kernel.org>|
On Thu, 23 Nov 2006, Mel Gorman wrote:
> There are a suprising number of GFP_HIGHUSER users. I've included an
> untested patch below to give an idea of what the reworked patch would
> look like.
Thanks. Seeing the patch actually was useful, because I think this isa
good idea quite regardless of anything else: it adds a certain amount of
"inherent documentation" when you see a line like
page = alloc_page(GFP_HIGHUNMOVABLE);
because it makes it very obvious that something is going on.
At the same time, I do get the feelign that maybe we should simply go the
other way: talk about allocating MOVABLE pages instead of talking about
allocating pages that are NOT movable.
Because usually it's really that way you think about it: when you allocate
a _movable_ page, you need to add support for moving it some way (ie you
need to put it on the proper page-cache lists etc), while a page that you
don't think about is generally _not_ movable.
So: I think this is the right direction, but I would actually prefer to
page = alloc_page(GFP_[HIGH_]MOVABLE);
instead, and then just teach the routines that create movable pages
(whether they are movable because they are in the page cache, or for some
other reason) to use that flag instead of GFP_[HIGH]USER.
And the assumption would be that if it's MOVABLE, then it's obviously a
USER allocation (it it can fail much more eagerly - that's really what the
whole USER bit ends up meaning internally).
to post comments)