On (16/09/07 19:53), J?rn Engel didst pronounce: > On Sat, 15 September 2007 01:44:49 -0700, Andrew Morton wrote: > > On Tue, 11 Sep 2007 14:12:26 +0200 Jörn Engel <joern@xxxxxxxxx> wrote: > > > > > While I agree with your concern, those numbers are quite silly. The > > > chances of 99.8% of pages being free and the remaining 0.2% being > > > perfectly spread across all 2MB large_pages are lower than those of SHA1 > > > creating a collision. > > > > Actually it'd be pretty easy to craft an application which allocates seven > > pages for pagecache, then one for <something>, then seven for pagecache, then > > one for <something>, etc. > > > > I've had test apps which do that sort of thing accidentally. The result > > wasn't pretty. > > I bet! My (false) assumption was the same as Goswin's. If non-movable > pages are clearly seperated from movable ones and will evict movable > ones before polluting further mixed superpages, Nick's scenario would be > nearly infinitely impossible. > It would be plain impossible from a fragmentation point-of-view but you meet interesting situations when a GFP_NOFS allocation has no kernel blocks available to use. It can't reclaim, maybe it can move but not with current code (it should be able to with the Memory Compaction patches). > Assumption doesn't reflect current code. Enforcing this assumption > would cost extra overhead. The amount of effort to make Christoph's > approach work reliably seems substantial and I have no idea whether it > would be worth it. > Current code doesn't reflect your assumptions simply because the costs are so high. We'd need to be really sure it's worth it and if the answer is "yes", then we are looking at Andrea's approach (more likely) or I can check out evicting blocks of 16KB, 64KB or whatever the large block is. -- 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-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html