On Wed, Dec 08, 2010 at 05:23:24PM -0800, Andrew Morton wrote: > People at google have told me they've seen the same thing. A fork is > taking 15 minutes when someone else is doing a dd, because the fork > enters direct-reclaim trying for an order-one page. It successfully > frees some order-one pages but before it gets back to allocate one, dd > has gone and stolen them, or split them apart. > > This problem would have got worse when slub came along doing its stupid > unnecessary high-order allocations. Yeah, we can all blame slub, but even when I force everything to be order-0 except task_struct and kmalloc(>4096), I still see problems, even if they aren't as obvious. Until reclaim holds a page it is about to turn into an order-1, or until it can hold all of the pages until the watermark is reached including the allocation it may be directly reclaiming for, this operation is always going to be non-fair so long as kswapd can run while other allocations are happening. Let me guess, Linus will say RCU fixes this.. ;) Simon- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>