Merge "mm: vmscan: support complete shrinker reclaim"

This commit is contained in:
Linux Build Service Account 2014-09-13 17:26:06 -07:00 committed by Gerrit - the friendly Code Review server
commit ec64129787
1 changed files with 8 additions and 1 deletions

View File

@ -293,6 +293,10 @@ unsigned long shrink_slab(struct shrink_control *shrink,
long new_nr;
long batch_size = shrinker->batch ? shrinker->batch
: SHRINK_BATCH;
long min_cache_size = batch_size;
if (current_is_kswapd())
min_cache_size = 0;
max_pass = do_shrinker_shrink(shrinker, shrink, 0);
if (max_pass <= 0)
@ -344,9 +348,12 @@ unsigned long shrink_slab(struct shrink_control *shrink,
nr_pages_scanned, lru_pages,
max_pass, delta, total_scan);
while (total_scan >= batch_size) {
while (total_scan > min_cache_size) {
int nr_before;
if (total_scan < batch_size)
batch_size = total_scan;
nr_before = do_shrinker_shrink(shrinker, shrink, 0);
shrink_ret = do_shrinker_shrink(shrinker, shrink,
batch_size);