xref: /linux/mm/damon/Kconfig (revision 12d021659c7aa5059835e671e57c4a163a64d2e9)
12224d848SSeongJae Park# SPDX-License-Identifier: GPL-2.0-only
22224d848SSeongJae Park
32224d848SSeongJae Parkmenu "Data Access Monitoring"
42224d848SSeongJae Park
52224d848SSeongJae Parkconfig DAMON
62224d848SSeongJae Park	bool "DAMON: Data Access Monitoring Framework"
72224d848SSeongJae Park	help
82224d848SSeongJae Park	  This builds a framework that allows kernel subsystems to monitor
92224d848SSeongJae Park	  access frequency of each memory region. The information can be useful
102224d848SSeongJae Park	  for performance-centric DRAM level memory management.
112224d848SSeongJae Park
126901cf55SDiederik de Haas	  See https://www.kernel.org/doc/html/latest/mm/damon/index.html for
132224d848SSeongJae Park	  more information.
142224d848SSeongJae Park
1517ccae8bSSeongJae Parkconfig DAMON_KUNIT_TEST
1617ccae8bSSeongJae Park	bool "Test for damon" if !KUNIT_ALL_TESTS
1717ccae8bSSeongJae Park	depends on DAMON && KUNIT=y
1817ccae8bSSeongJae Park	default KUNIT_ALL_TESTS
1917ccae8bSSeongJae Park	help
2017ccae8bSSeongJae Park	  This builds the DAMON Kunit test suite.
2117ccae8bSSeongJae Park
2217ccae8bSSeongJae Park	  For more information on KUnit and unit tests in general, please refer
2317ccae8bSSeongJae Park	  to the KUnit documentation.
2417ccae8bSSeongJae Park
2517ccae8bSSeongJae Park	  If unsure, say N.
2617ccae8bSSeongJae Park
273f49584bSSeongJae Parkconfig DAMON_VADDR
28f7d911c3SSeongJae Park	bool "Data access monitoring operations for virtual address spaces"
293f49584bSSeongJae Park	depends on DAMON && MMU
303f49584bSSeongJae Park	select PAGE_IDLE_FLAG
313f49584bSSeongJae Park	help
32f7d911c3SSeongJae Park	  This builds the default data access monitoring operations for DAMON
33f24b0626SGeert Uytterhoeven	  that work for virtual address spaces.
343f49584bSSeongJae Park
35a28397beSSeongJae Parkconfig DAMON_PADDR
36f7d911c3SSeongJae Park	bool "Data access monitoring operations for the physical address space"
37a28397beSSeongJae Park	depends on DAMON && MMU
38a28397beSSeongJae Park	select PAGE_IDLE_FLAG
39a28397beSSeongJae Park	help
40f7d911c3SSeongJae Park	  This builds the default data access monitoring operations for DAMON
41a28397beSSeongJae Park	  that works for the physical address space.
42a28397beSSeongJae Park
4317ccae8bSSeongJae Parkconfig DAMON_VADDR_KUNIT_TEST
44f7d911c3SSeongJae Park	bool "Test for DAMON operations" if !KUNIT_ALL_TESTS
4517ccae8bSSeongJae Park	depends on DAMON_VADDR && KUNIT=y
4617ccae8bSSeongJae Park	default KUNIT_ALL_TESTS
4717ccae8bSSeongJae Park	help
48f7d911c3SSeongJae Park	  This builds the DAMON virtual addresses operations Kunit test suite.
4917ccae8bSSeongJae Park
5017ccae8bSSeongJae Park	  For more information on KUnit and unit tests in general, please refer
5117ccae8bSSeongJae Park	  to the KUnit documentation.
5217ccae8bSSeongJae Park
5317ccae8bSSeongJae Park	  If unsure, say N.
5417ccae8bSSeongJae Park
55c951cd3bSSeongJae Parkconfig DAMON_SYSFS
56c951cd3bSSeongJae Park	bool "DAMON sysfs interface"
57c951cd3bSSeongJae Park	depends on DAMON && SYSFS
58c951cd3bSSeongJae Park	help
59c951cd3bSSeongJae Park	  This builds the sysfs interface for DAMON.  The user space can use
60c951cd3bSSeongJae Park	  the interface for arbitrary data access monitoring.
61c951cd3bSSeongJae Park
62b8ee5575SSeongJae Parkconfig DAMON_SYSFS_KUNIT_TEST
63*12d02165SSeongJae Park	bool "Test for damon sysfs interface" if !KUNIT_ALL_TESTS
64b8ee5575SSeongJae Park	depends on DAMON_SYSFS && KUNIT=y
65b8ee5575SSeongJae Park	default KUNIT_ALL_TESTS
66b8ee5575SSeongJae Park	help
67b8ee5575SSeongJae Park	  This builds the DAMON sysfs interface Kunit test suite.
68b8ee5575SSeongJae Park
69b8ee5575SSeongJae Park	  For more information on KUnit and unit tests in general, please refer
70b8ee5575SSeongJae Park	  to the KUnit documentation.
71b8ee5575SSeongJae Park
72b8ee5575SSeongJae Park	  If unsure, say N.
73b8ee5575SSeongJae Park
74f4cba4bfSSeongJae Parkconfig DAMON_DBGFS_DEPRECATED
7561e88a2fSSeongJae Park	bool "DAMON debugfs interface (DEPRECATED!)"
76c026291aSSeongJae Park	depends on DAMON_VADDR && DAMON_PADDR && DEBUG_FS
774bc05954SSeongJae Park	help
784bc05954SSeongJae Park	  This builds the debugfs interface for DAMON.  The user space admins
794bc05954SSeongJae Park	  can use the interface for arbitrary data access monitoring.
804bc05954SSeongJae Park
814bc05954SSeongJae Park	  If unsure, say N.
824bc05954SSeongJae Park
8361e88a2fSSeongJae Park	  This is deprecated, so users should move to the sysfs interface
8461e88a2fSSeongJae Park	  (DAMON_SYSFS).  If you depend on this and cannot move, please report
8561e88a2fSSeongJae Park	  your usecase to damon@lists.linux.dev and linux-mm@kvack.org.
86e8600ce2SSeongJae Park
87f4cba4bfSSeongJae Parkconfig DAMON_DBGFS
88f4cba4bfSSeongJae Park	bool
89f4cba4bfSSeongJae Park	default y
90f4cba4bfSSeongJae Park	depends on DAMON_DBGFS_DEPRECATED
91f4cba4bfSSeongJae Park
9217ccae8bSSeongJae Parkconfig DAMON_DBGFS_KUNIT_TEST
9317ccae8bSSeongJae Park	bool "Test for damon debugfs interface" if !KUNIT_ALL_TESTS
9417ccae8bSSeongJae Park	depends on DAMON_DBGFS && KUNIT=y
9517ccae8bSSeongJae Park	default KUNIT_ALL_TESTS
9617ccae8bSSeongJae Park	help
9717ccae8bSSeongJae Park	  This builds the DAMON debugfs interface Kunit test suite.
9817ccae8bSSeongJae Park
9917ccae8bSSeongJae Park	  For more information on KUnit and unit tests in general, please refer
10017ccae8bSSeongJae Park	  to the KUnit documentation.
10117ccae8bSSeongJae Park
10217ccae8bSSeongJae Park	  If unsure, say N.
10317ccae8bSSeongJae Park
10443b0536cSSeongJae Parkconfig DAMON_RECLAIM
10543b0536cSSeongJae Park	bool "Build DAMON-based reclaim (DAMON_RECLAIM)"
10643b0536cSSeongJae Park	depends on DAMON_PADDR
10743b0536cSSeongJae Park	help
10843b0536cSSeongJae Park	  This builds the DAMON-based reclamation subsystem.  It finds pages
10943b0536cSSeongJae Park	  that not accessed for a long time (cold) using DAMON and reclaim
11043b0536cSSeongJae Park	  those.
11143b0536cSSeongJae Park
11243b0536cSSeongJae Park	  This is suggested to be used as a proactive and lightweight
11343b0536cSSeongJae Park	  reclamation under light memory pressure, while the traditional page
11443b0536cSSeongJae Park	  scanning-based reclamation is used for heavy pressure.
11543b0536cSSeongJae Park
11640e983ccSSeongJae Parkconfig DAMON_LRU_SORT
11740e983ccSSeongJae Park	bool "Build DAMON-based LRU-lists sorting (DAMON_LRU_SORT)"
11840e983ccSSeongJae Park	depends on DAMON_PADDR
11940e983ccSSeongJae Park	help
12040e983ccSSeongJae Park	  This builds the DAMON-based LRU-lists sorting subsystem.  It tries to
12140e983ccSSeongJae Park	  protect frequently accessed (hot) pages while rarely accessed (cold)
12240e983ccSSeongJae Park	  pages reclaimed first under memory pressure.
12340e983ccSSeongJae Park
1242224d848SSeongJae Parkendmenu
125