Hi all,
This patch balances the aging rates of active_list/inactive_list/slab.
It started out as an effort to enable the adaptive read-ahead to handle large
number of concurrent readers. Then I found it involves much more stuffs, and
deserves a standalone patchset to address the balancing problem as a whole.
The whole picture of balancing:
- In each node, inactive_list scan rates are synced with each other.
It is done in the direct/kswapd reclaim path.
- In each zone, active_list scan rate always follows that of inactive_list.
- Slab cache scan rates always follow that of the current node.
If the shrinkers are not NUMA aware, they will effectly sync scan rates
with that of the most scanned node.
The patches can be grouped as follows:
- balancing stuffs
vm-kswapd-incmin.patch
mm-balance-zone-aging-supporting-facilities.patch
mm-balance-zone-aging-in-direct-reclaim.patch
mm-balance-zone-aging-in-kswapd-reclaim.patch
mm-balance-slab-aging.patch
mm-balance-active-inactive-list-aging.patch
- pure code cleanups
mm-remove-unnecessary-variable-and-loop.patch
mm-remove-swap-cluster-max-from-scan-control.patch
mm-accumulate-nr-scanned-reclaimed-in-scan-control.patch
mm-turn-bool-variables-into-flags-in-scan-control.patch
- debug code
mm-page-reclaim-debug-traces.patch
- a minor fix
mm-scan-accounting-fix.patch
Thanks,
Wu Fengguang
--
Dept. Automation University of Science and Technology of China