Messages in this thread | | | Date | Fri, 10 Aug 2012 09:14:28 +0100 | From | Mel Gorman <> | Subject | Re: [PATCH 2/6] mm: vmscan: Scale number of pages reclaimed by reclaim/compaction based on failures |
| |
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
| |