[PATCH] mm: document highmem_is_dirtyable sysctl

From: Michal Hocko
Date: Mon Jun 26 2017 - 05:32:32 EST


From: Michal Hocko <mhocko@xxxxxxxx>

It seems that there are still people using 32b kernels which a lot of
memory and the IO tend to suck a lot for them by default. Mostly because
writers are throttled too when the lowmem is used. We have
highmem_is_dirtyable to work around that issue but it seems we never
bothered to document it. Let's do it now, finally.

Cc: Alkis Georgopoulos <alkisg@xxxxxxxxx>
Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>
---
Hi,
JFYI this came out from recent discussion [1].

[1] http://lkml.kernel.org/r/20170622123736.1d80f1318eac41cd661b7757@xxxxxxxxxxxxxxxxxxxx

Documentation/sysctl/vm.txt | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt
index b4ad97f10b8e..48244c42ff52 100644
--- a/Documentation/sysctl/vm.txt
+++ b/Documentation/sysctl/vm.txt
@@ -240,6 +240,26 @@ fragmentation index is <= extfrag_threshold. The default value is 500.

==============================================================

+highmem_is_dirtyable
+
+Available only for systems with CONFIG_HIGHMEM enabled (32b systems).
+
+This parameter controls whether the high memory is considered for dirty
+writers throttling. This is not the case by default which means that
+only the amount of memory directly visible/usable by the kernel can
+be dirtied. As a result, on systems with a large amount of memory and
+lowmem basically depleted writers might be throttled too early and
+streaming writes can get very slow.
+
+Changing the value to non zero would allow more memory to be dirtied
+and thus allow writers to write more data which can be flushed to the
+storage more effectively. Note this also comes with a risk of pre-mature
+OOM killer because some writers (e.g. direct block device writes) can
+only use the low memory and they can fill it up with dirty data without
+any throttling.
+
+==============================================================
+
hugepages_treat_as_movable

This parameter controls whether we can allocate hugepages from ZONE_MOVABLE
--
2.11.0