Lumpy reclaim had a purpose but in the mind of some, it was to kick the
system so hard it thrashed. For others the purpose was to complicate
vmscan.c. Over time it was giving softer shoes and a nicer attitude but
memory compaction needs to step up and replace it so this patch sends
lumpy reclaim to the farm.
Here are the important notes related to the patch.
1. The tracepoint format changes for isolating LRU pages.
2. This patch stops reclaim/compaction entering sync reclaim as this
was only intended for lumpy reclaim and an oversight. Page migration
has its own logic for stalling on writeback pages if necessary and
memory compaction is already using it. This is a behaviour change.
3. RECLAIM_MODE_SYNC no longer exists. pageout() does not stall on
PageWriteback with CONFIG_COMPACTION. It has been this way for a
while. I am calling it out in case this is a surpise to people. This
behaviour avoids a situation where we wait on a page being written back
to slow storage like USB. Currently we depend on wait_iff_congested()
for throttling if if too many dirty pages are scanned.
4. Reclaim/compaction can no longer queue dirty pages in pageout() if
the underlying BDI is congested. Lumpy reclaim used this logic and
reclaim/compaction was using it in error. This is a behaviour change.
Signed-off-by: Mel Gorman <mgorman@suse.de> Cc: Rik van Riel <riel@redhat.com> Cc: Konstantin Khlebnikov <khlebnikov@openvz.org> Cc: Hugh Dickins <hughd@google.com> Cc: Andy Whitcroft <apw@shadowen.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>