Balancing the scan rate of major caches V2
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest13 patches 1 replyIn review
Changes since V1 from the cover letter
- better broken up of patches
- replace pages_more_aged with age_ge/age_gt
- expanded shrink_slab interface
- rewrite kswapd rebalance logic to be simple and robust
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/13 | mm: restore sc.nr_to_reclaimmm/ | +8 | 0 replies | |
| 2/13 | mm: simplify kswapd reclaim codemm/ | +34 | 0 replies | |
| 3/13 | mm: supporting variables and functions for balanced zone aginginclude/ mm/ mm/ | +68 | 0 replies | |
| 4/13 | mm: balance zone aging in direct reclaim pathmm/ | +28 | 0 replies | |
| 5/13 | mm: balance zone aging in kswapd reclaim pathmm/ | +20 | 1 reply | |
| 6/13 | mm: balance slab agingfs/ include/ mm/ | +48 | 0 replies | |
| 7/13 | mm: balance active/inactive list scan ratesinclude/ include/ mm/ +1 more | +33 | 0 replies | |
| 8/13 | mm: remove unnecessary variable and loopmm/ | +43 | 0 replies | |
| 9/13 | mm: remove swap_cluster_max from scan_controlmm/ | +4 | 0 replies | |
| 10/13 | mm: let sc.nr_scanned/sc.nr_reclaimed accumulatemm/ | +14 | 0 replies | |
| 11/13 | mm: fold sc.may_writepage and sc.may_swap into sc.flagsmm/ | +10 | 0 replies | |
| 12/13 | mm: add page reclaim debug tracesmm/ | +67 | 0 replies | |
| 13/13 | mm: fix minor scan count bugsmm/ | +6 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 00/13] Balancing the scan rate of major caches V2
Changes since V1:
- better broken up of patches
- replace pages_more_aged with age_ge/age_gt
- expanded shrink_slab interface
- rewrite kswapd rebalance logic to be simple and robust
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 envolves 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. Since shrink_slab() can be called from different CPUs, that effectly sync slab cache scan rates with that of the most scanned node.
The patches can be grouped as follows:
- balancing stuffs
mm-revert-vmscan-balancing-fix.patch
mm-simplify-kswapd-reclaim-code.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