This patch introduces three new sysctls to /proc/sys/vm: wmark_min_kbytes, wmark_low_kbytes and wmark_high_kbytes. Each entry is used to compute watermark[min], watermark[low] and watermark[high] for each zone. These parameters are also updated when min_free_kbytes are changed because originally they are set based on min_free_kbytes. On the other hand, min_free_kbytes is updated when wmark_free_kbytes changes. By using the parameters one can adjust the difference among watermark[min], watermark[low] and watermark[high] and as a result one can tune the kernel reclaim behaviour to fit their requirement. Signed-off-by: Satoru Moriya <satoru.moriya@xxxxxxx> --- Documentation/sysctl/vm.txt | 37 +++++++++++++++ include/linux/mmzone.h | 6 ++ kernel/sysctl.c | 28 +++++++++++- mm/page_alloc.c | 109 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 179 insertions(+), 1 deletions(-) diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt index e10b279..674681d 100644 --- a/Documentation/sysctl/vm.txt +++ b/Documentation/sysctl/vm.txt @@ -55,6 +55,9 @@ Currently, these files are in /proc/sys/vm: - stat_interval - swappiness - vfs_cache_pressure +- wmark_high_kbytes +- wmark_low_kbytes +- wmark_min_kbytes - zone_reclaim_mode ============================================================== @@ -360,6 +363,8 @@ become subtly broken, and prone to deadlock under high loads. Setting this too high will OOM your machine instantly. +This is also updated when wmark_min_free_kbytes changes. + ============================================================= min_slab_ratio: @@ -664,6 +669,38 @@ causes the kernel to prefer to reclaim dentries and inodes. ============================================================== +wmark_high_kbytes + +Contains the amount of free memory above which kswapd stops reclaiming pages. + +The Linux VM uses this number to compute a watermark[WMARK_HIGH] value for +each zone in the system. This is also updated when min_free_kbytes is updated. +The minimum is wmark_low_kbytes. + +============================================================== + +wmark_low_kbytes + +Contains the amount of free memory below which kswapd starts to reclaim pages. + +The Linux VM uses this number to compute a watermark[WMARK_LOW] value for +each zone in the system. This is also updated when min_free_kbytes changes