2017-06-26 09:32:15

by Michal Hocko

[permalink] [raw]
Subject: [PATCH] mm: document highmem_is_dirtyable sysctl

From: Michal Hocko <[email protected]>

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 <[email protected]>
Signed-off-by: Michal Hocko <[email protected]>
---
Hi,
JFYI this came out from recent discussion [1].

[1] http://lkml.kernel.org/r/[email protected]

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


2017-06-26 15:27:41

by Johannes Weiner

[permalink] [raw]
Subject: Re: [PATCH] mm: document highmem_is_dirtyable sysctl

On Mon, Jun 26, 2017 at 11:32:00AM +0200, Michal Hocko wrote:
> From: Michal Hocko <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Michal Hocko <[email protected]>

Acked-by: Johannes Weiner <[email protected]>