[PATCH 0/5] Linear reclaim V1

Andy Whitcroft
2006-09-08T12:24:47Z

Linear Reclaim (V1)

When we are out of memory of a suitable size we enter reclaim.
The current reclaim algorithm targets pages in LRU order, which
is great for fairness but highly unsuitable if you desire pages at
higher orders. To get pages of higher order we must shoot down a
very high proportion of memory; >95% in a lot of cases.

This patch set adds a linear reclaim algorithm to the allocator.
It targets groups of pages at the specified order rather than in
lru order. Passing over each area at this size and assessing the
likelyhood of reclaiming all of the pages within. If chances are
high, we apply reclaim to all of the busy pages in this area in
the hopes of consolidating a complete page at that order. This is
designed to be used when we are out of higher order pages.

This patch set is particularly effective when utilised with
an anti-fragmentation scheme which groups pages of similar
reclaimability together.

As it stands we introduce a complete second reclaim algorithm.
Once this has stablised it would make sense to merge the two
algorithms. Targetting variable size blocks using pages at the
end of the LRU as seeds. When operating at order 0 the algorithms
would then be equivalent.

-apw

Base: 2.6.18-rc5-mm1

Patches:
o linear-reclaim-add-order-to-reclaim-path
o linear-reclaim-export-page_order-and-family
o linear-reclaim-pull-out-unfreeable-page-return
o linear-reclaim-add-pfn_valid_within-for-zone-holes
o linear-reclaim-core

Current version: V1