![]() | |||||||||||||
Messages in this thread |
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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2006-11-25 11:49 [from the cache] ©2003-2008 | |||||||||||||