On Sat, 29 Sep 2007 10:47:12 +0200 Peter Zijlstra <[EMAIL PROTECTED]> wrote:
> > On Sat, 2007-09-29 at 01:13 -0700, Andrew Morton wrote: > > On Fri, 28 Sep 2007 20:25:50 +0200 Peter Zijlstra <[EMAIL PROTECTED]> wrote: > > > > > > > > On Fri, 2007-09-28 at 11:20 -0700, Christoph Lameter wrote: > > > > > > > > start 2 processes that each mmap a separate 64M file, and which does > > > > > sequential writes on them. start a 3th process that does the same with > > > > > 64M anonymous. > > > > > > > > > > wait for a while, and you'll see order=1 failures. > > > > > > > > Really? That means we can no longer even allocate stacks for forking. > > > > > > > > Its surprising that neither lumpy reclaim nor the mobility patches can > > > > deal with it? Lumpy reclaim should be able to free neighboring pages to > > > > avoid the order 1 failure unless there are lots of pinned pages. > > > > > > > > I guess then that lots of pages are pinned through I/O? > > > > > > memory got massively fragemented, as anti-frag gets easily defeated. > > > setting min_free_kbytes to 12M does seem to solve it - it forces 2 max > > > order blocks to stay available, so we don't mix types. however 12M on > > > 128M is rather a lot. > > > > > > its still on my todo list to look at it further.. > > > > > > > That would be really really bad (as in: patch-dropping time) if those > > order-1 allocations are not atomic. > > > > What's the callsite? > > Ah, right, that was the detail... all this lumpy reclaim is useless for > atomic allocations. And with SLUB using higher order pages, atomic !0 > order allocations will be very very common. Oh OK. I thought we'd already fixed slub so that it didn't do that. Maybe that fix is in -mm but I don't think so. Trying to do atomic order-1 allocations on behalf of arbitray slab caches just won't fly - this is a significant degradation in kernel reliability, as you've very easily demonstrated. > One I can remember was: > > add_to_page_cache() > radix_tree_insert() > radix_tree_node_alloc() > kmem_cache_alloc() > > which is an atomic callsite. > > Which leaves us in a situation where we can load pages, because there is > free memory, but can't manage to allocate memory to track them.. Right. Leading to application failure which for many is equivalent to a complete system outage. - 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/