Index: sys/vm/uma_core.c =================================================================== --- sys/vm/uma_core.c +++ sys/vm/uma_core.c @@ -1482,14 +1482,6 @@ { int cpu; - /* - * Polite bucket sizes shrinking was not enough, shrink aggressively. - */ - if (zone) - cache_shrink(zone, NULL); - else - zone_foreach(cache_shrink, NULL); - CPU_FOREACH(cpu) { thread_lock(curthread); sched_bind(curthread, cpu); @@ -5225,6 +5217,7 @@ break; case UMA_RECLAIM_DRAIN_CPU: zone_foreach(zone_drain, arg); + zone_foreach(cache_shrink, NULL); pcpu_cache_drain_safe(NULL); zone_foreach(zone_drain, arg); break; @@ -5292,6 +5285,7 @@ zone_drain(zone, arg); break; case UMA_RECLAIM_DRAIN_CPU: + cache_shrink(zone, NULL); pcpu_cache_drain_safe(zone); zone_drain(zone, arg); break;