On Fri, 24 Nov 2006, Hugh Dickins wrote:
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.
A MOVABLE allocation may be moved with page migration or paged out by
kswapd.
RECLAIMABLE on the other hand applies to short-lived allocations (like a
socket buffer) or allocations for slab caches that may be reaped such as
inode caches or dcache.
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.
Right, I'll take a much closer look with this in mind and make the
distinction. Thanks
--
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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]