linux/mm/damon
SeongJae Park ee801b7dd7 mm/damon/schemes: activate schemes based on a watermarks mechanism
DAMON-based operation schemes need to be manually turned on and off.  In
some use cases, however, the condition for turning a scheme on and off
would depend on the system's situation.  For example, schemes for
proactive pages reclamation would need to be turned on when some memory
pressure is detected, and turned off when the system has enough free
memory.

For easier control of schemes activation based on the system situation,
this introduces a watermarks-based mechanism.  The client can describe
the watermark metric (e.g., amount of free memory in the system),
watermark check interval, and three watermarks, namely high, mid, and
low.  If the scheme is deactivated, it only gets the metric and compare
that to the three watermarks for every check interval.  If the metric is
higher than the high watermark, the scheme is deactivated.  If the
metric is between the mid watermark and the low watermark, the scheme is
activated.  If the metric is lower than the low watermark, the scheme is
deactivated again.  This is to allow users fall back to traditional
page-granularity mechanisms.

Link: https://lkml.kernel.org/r/20211019150731.16699-12-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Amit Shah <amit@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: David Hildenbrand <david@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Cc: David Woodhouse <dwmw@amazon.com>
Cc: Greg Thelen <gthelen@google.com>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Leonard Foerster <foersleo@amazon.de>
Cc: Marco Elver <elver@google.com>
Cc: Markus Boehme <markubo@amazon.de>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-11-06 13:30:45 -07:00
..
core-test.h mm/damon/core-test: fix wrong expectations for 'damon_split_regions_of()' 2021-10-28 17:18:55 -07:00
core.c mm/damon/schemes: activate schemes based on a watermarks mechanism 2021-11-06 13:30:45 -07:00
dbgfs-test.h mm/damon/dbgfs-test: add a unit test case for 'init_regions' 2021-11-06 13:30:44 -07:00
dbgfs.c mm/damon/schemes: activate schemes based on a watermarks mechanism 2021-11-06 13:30:45 -07:00
Kconfig mm/damon/dbgfs: support physical memory monitoring 2021-11-06 13:30:45 -07:00
Makefile mm/damon: implement primitives for physical address space monitoring 2021-11-06 13:30:45 -07:00
paddr.c mm/damon/vaddr,paddr: support pageout prioritization 2021-11-06 13:30:45 -07:00
prmtv-common.c mm/damon/vaddr,paddr: support pageout prioritization 2021-11-06 13:30:45 -07:00
prmtv-common.h mm/damon/vaddr,paddr: support pageout prioritization 2021-11-06 13:30:45 -07:00
vaddr-test.h mm/damon: add kunit tests 2021-09-08 11:50:25 -07:00
vaddr.c mm/damon/vaddr,paddr: support pageout prioritization 2021-11-06 13:30:45 -07:00