Re: [PATCH] Add __GFP_MOVABLE for callers to flag allocations thatmay be migrated

From: Christoph Lameter
Date: Wed Dec 06 2006 - 12:32:03 EST


On Wed, 6 Dec 2006, Mel Gorman wrote:
> Objective: Get contiguous block of free pages
> Required: Pages that can move
> Move means: Migrating them or reclaiming
> How we do it for high-order allocations: Take a page from the LRU, move
> the pages within that high-order block
> How we do it for unplug: Take the pages within the range of interest, move
> all the pages out of that range

This is mostly the same. For unplug we would clear the freelists of
page in the unplug range and take the pages off the LRU that are in the
range of interest and then move them. Page migration takes pages off the
LRU.

> In both cases, you are taking a subsection of a zone and doing something to
> it. In the beginning, we'll be reclaiming because it's easier and it's
> relatively well understood. Once stable, then work can start on defrag
> properly.

Both cases require a scanning of the LRU or freelists for pages in
that range. We are not actually doing reclaim since we do not age the
pages. We evict them all and are not doing reclaim in the usual way.

> I don't intend to marry the two. However, I intend to handle reclaim first
> because it's needed whether defrag exists or not.

Yes and we already have reclaim implemented. It can be used for freeing up
memory in a zone. But if you want to open up a specific range then what we
do may look a bit like reclaim but its fundamentally different since we
unconditionally clear the range regardless of aging.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/