There's an obvious explanation for the high loadavg people are seeing when
their systems go into thrash mode: when free is exhausted, every task that
fails to get a block in __alloc_pages will become PF_MEMALLOC and start
scanning. The remaining tasks that are still running will soon also fail in
__alloc_pages and jump onto the dogpile. This is a pretty clear
demonstration of why the current "self-help" strategy is flawed.
Those tasks that can't get memory should block, leaving one or two threads to
sort things out under predictable conditions, then restart the blocked
threads as appropriate.
-- Daniel - 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/