Merge "mm: vmscan: support complete shrinker reclaim"
This commit is contained in:
commit
ec64129787
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue