On Thu, Aug 09, 2012 at 04:29:57PM -0400, Rik van Riel wrote: > On 08/09/2012 05:20 AM, Mel Gorman wrote: > > >The intention is that an allocation can fail but each subsequent attempt will > >try harder until there is success. Each allocation request does a portion > >of the necessary work to spread the cost between multiple requests. > > At some point we need to stop doing that work, though. > > Otherwise we could end up back at the problem where > way too much memory gets evicted, and we get swap > storms.
That's the case without this patch as it'll still be running reclaim/compaction just less aggressively. For it to continually try like the system must be either continually under load preventing compaction ever working (which may be undesirable for order-3 and the like) or so badly fragmented it cannot recover (not aware of a situation where this happened). You could add a separate patch that checked if defer_shift == COMPACT_MAX_DEFER_SHIFT and to disable reclaim/compaction in that case but that will require enough SWAP_CLUSTER_MAX pages to be reclaimed over time or a large process to exit before compaction succeeds again. I would expect rates under load to be very low with such a patch applied. -- Mel Gorman SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/