FROMGIT: mm/pagealloc: sysctl: change watermark_scale_factor max limit to 30%
For embedded systems with low total memory, having to run applications with relatively large memory requirements, 10% max limitation for watermark_scale_factor poses an issue of triggering direct reclaim every time such application is started. This results in slow application startup times and bad end-user experience. By increasing watermark_scale_factor max limit we allow vendors more flexibility to choose the right level of kswapd aggressiveness for their device and workload requirements. Link: https://lkml.kernel.org/r/20211124193604.2758863-1-surenb@google.com Signed-off-by: Suren Baghdasaryan <surenb@google.com> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Lukas Middendorf <kernel@tuxforce.de> Cc: Antti Palosaari <crope@iki.fi> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> Cc: Luis Chamberlain <mcgrof@kernel.org> Cc: Kees Cook <keescook@chromium.org> Cc: Iurii Zaikin <yzaikin@google.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Vlastimil Babka <vbabka@suse.cz> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Zhang Yi <yi.zhang@huawei.com> Cc: Fengfei Xi <xi.fengfei@h3c.com> Cc: Mike Rapoport <rppt@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> (cherry picked from commit 4e36dc369cc7581ac19a7523303e682a53e52e59 git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master) Bug: 194652782 Signed-off-by: Suren Baghdasaryan <surenb@google.com> Change-Id: I3e926c8b222933a10c79068d22a1407ff3181824
This commit is contained in:
@@ -948,7 +948,7 @@ how much memory needs to be free before kswapd goes back to sleep.
|
|||||||
|
|
||||||
The unit is in fractions of 10,000. The default value of 10 means the
|
The unit is in fractions of 10,000. The default value of 10 means the
|
||||||
distances between watermarks are 0.1% of the available memory in the
|
distances between watermarks are 0.1% of the available memory in the
|
||||||
node/system. The maximum value is 1000, or 10% of memory.
|
node/system. The maximum value is 3000, or 30% of memory.
|
||||||
|
|
||||||
A high rate of threads entering direct reclaim (allocstall) or kswapd
|
A high rate of threads entering direct reclaim (allocstall) or kswapd
|
||||||
going to sleep prematurely (kswapd_low_wmark_hit_quickly) can indicate
|
going to sleep prematurely (kswapd_low_wmark_hit_quickly) can indicate
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ static unsigned long long_max = LONG_MAX;
|
|||||||
static int one_hundred = 100;
|
static int one_hundred = 100;
|
||||||
static int two_hundred = 200;
|
static int two_hundred = 200;
|
||||||
static int one_thousand = 1000;
|
static int one_thousand = 1000;
|
||||||
|
static int three_thousand = 3000;
|
||||||
#ifdef CONFIG_PRINTK
|
#ifdef CONFIG_PRINTK
|
||||||
static int ten_thousand = 10000;
|
static int ten_thousand = 10000;
|
||||||
#endif
|
#endif
|
||||||
@@ -2968,7 +2969,7 @@ static struct ctl_table vm_table[] = {
|
|||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = watermark_scale_factor_sysctl_handler,
|
.proc_handler = watermark_scale_factor_sysctl_handler,
|
||||||
.extra1 = SYSCTL_ONE,
|
.extra1 = SYSCTL_ONE,
|
||||||
.extra2 = &one_thousand,
|
.extra2 = &three_thousand,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "percpu_pagelist_high_fraction",
|
.procname = "percpu_pagelist_high_fraction",
|
||||||
|
|||||||
Reference in New Issue
Block a user