Re: [PATCH 1/11] Add __GFP_MOVABLE flag and update callers

From: Hugh Dickins
Date: Fri Nov 24 2006 - 16:07:49 EST


On Fri, 24 Nov 2006, Mel Gorman wrote:
>
> Good catch. In the page clustering patches I work on, I am doing this;
>
> - page = alloc_page_vma(gfp | __GFP_ZERO, &pvma, 0);
> + page = alloc_page_vma(
> + set_migrateflags(gfp | __GFP_ZERO, __GFP_RECLAIMABLE),
> + &pvma, 0);
>
> to get rid of the MOVABLE flag and replace it with __GFP_RECLAIMABLE. This
> clustered the allocations together with allocations like inode cache. In
> retrospect, this was not a good idea because it assumes that tmpfs and shmem
> pages are short-lived. That may not be the case at all.
>...
> Thanks for that clarification. I suspected that something like this was the
> case when I removed the MOVABLE flag and used RECLAIMABLE but I wasn't 100%
> certain. In the tests I was running, tmpfs pages weren't a major problem so I
> didn't chase it down.

I'm fairly confused as to what MOVABLE versus RECLAIMABLE is supposed to
be meaning, and understand it's in flux, so haven't tried too hard. Just
so long as you understand that tmpfs data pages go out to swap under memory
pressure, whereas ramfs pages do not, and tmpfs swap vector pages do not.

Hugh
-
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/