Commit | Line | Data |
---|---|---|
2224d848 SP |
1 | # SPDX-License-Identifier: GPL-2.0-only |
2 | ||
3 | menu "Data Access Monitoring" | |
4 | ||
5 | config DAMON | |
6 | bool "DAMON: Data Access Monitoring Framework" | |
7 | help | |
8 | This builds a framework that allows kernel subsystems to monitor | |
9 | access frequency of each memory region. The information can be useful | |
10 | for performance-centric DRAM level memory management. | |
11 | ||
12 | See https://damonitor.github.io/doc/html/latest-damon/index.html for | |
13 | more information. | |
14 | ||
17ccae8b SP |
15 | config DAMON_KUNIT_TEST |
16 | bool "Test for damon" if !KUNIT_ALL_TESTS | |
17 | depends on DAMON && KUNIT=y | |
18 | default KUNIT_ALL_TESTS | |
19 | help | |
20 | This builds the DAMON Kunit test suite. | |
21 | ||
22 | For more information on KUnit and unit tests in general, please refer | |
23 | to the KUnit documentation. | |
24 | ||
25 | If unsure, say N. | |
26 | ||
3f49584b | 27 | config DAMON_VADDR |
f7d911c3 | 28 | bool "Data access monitoring operations for virtual address spaces" |
3f49584b SP |
29 | depends on DAMON && MMU |
30 | select PAGE_IDLE_FLAG | |
31 | help | |
f7d911c3 | 32 | This builds the default data access monitoring operations for DAMON |
f24b0626 | 33 | that work for virtual address spaces. |
3f49584b | 34 | |
a28397be | 35 | config DAMON_PADDR |
f7d911c3 | 36 | bool "Data access monitoring operations for the physical address space" |
a28397be SP |
37 | depends on DAMON && MMU |
38 | select PAGE_IDLE_FLAG | |
39 | help | |
f7d911c3 | 40 | This builds the default data access monitoring operations for DAMON |
a28397be SP |
41 | that works for the physical address space. |
42 | ||
17ccae8b | 43 | config DAMON_VADDR_KUNIT_TEST |
f7d911c3 | 44 | bool "Test for DAMON operations" if !KUNIT_ALL_TESTS |
17ccae8b SP |
45 | depends on DAMON_VADDR && KUNIT=y |
46 | default KUNIT_ALL_TESTS | |
47 | help | |
f7d911c3 | 48 | This builds the DAMON virtual addresses operations Kunit test suite. |
17ccae8b SP |
49 | |
50 | For more information on KUnit and unit tests in general, please refer | |
51 | to the KUnit documentation. | |
52 | ||
53 | If unsure, say N. | |
54 | ||
c951cd3b SP |
55 | config DAMON_SYSFS |
56 | bool "DAMON sysfs interface" | |
57 | depends on DAMON && SYSFS | |
58 | help | |
59 | This builds the sysfs interface for DAMON. The user space can use | |
60 | the interface for arbitrary data access monitoring. | |
61 | ||
b8ee5575 SP |
62 | config DAMON_SYSFS_KUNIT_TEST |
63 | bool "Test for damon debugfs interface" if !KUNIT_ALL_TESTS | |
64 | depends on DAMON_SYSFS && KUNIT=y | |
65 | default KUNIT_ALL_TESTS | |
66 | help | |
67 | This builds the DAMON sysfs interface Kunit test suite. | |
68 | ||
69 | For more information on KUnit and unit tests in general, please refer | |
70 | to the KUnit documentation. | |
71 | ||
72 | If unsure, say N. | |
73 | ||
4bc05954 | 74 | config DAMON_DBGFS |
61e88a2f | 75 | bool "DAMON debugfs interface (DEPRECATED!)" |
c026291a | 76 | depends on DAMON_VADDR && DAMON_PADDR && DEBUG_FS |
4bc05954 SP |
77 | help |
78 | This builds the debugfs interface for DAMON. The user space admins | |
79 | can use the interface for arbitrary data access monitoring. | |
80 | ||
81 | If unsure, say N. | |
82 | ||
61e88a2f SP |
83 | This is deprecated, so users should move to the sysfs interface |
84 | (DAMON_SYSFS). If you depend on this and cannot move, please report | |
85 | your usecase to damon@lists.linux.dev and linux-mm@kvack.org. | |
e8600ce2 | 86 | |
17ccae8b SP |
87 | config DAMON_DBGFS_KUNIT_TEST |
88 | bool "Test for damon debugfs interface" if !KUNIT_ALL_TESTS | |
89 | depends on DAMON_DBGFS && KUNIT=y | |
90 | default KUNIT_ALL_TESTS | |
91 | help | |
92 | This builds the DAMON debugfs interface Kunit test suite. | |
93 | ||
94 | For more information on KUnit and unit tests in general, please refer | |
95 | to the KUnit documentation. | |
96 | ||
97 | If unsure, say N. | |
98 | ||
43b0536c SP |
99 | config DAMON_RECLAIM |
100 | bool "Build DAMON-based reclaim (DAMON_RECLAIM)" | |
101 | depends on DAMON_PADDR | |
102 | help | |
103 | This builds the DAMON-based reclamation subsystem. It finds pages | |
104 | that not accessed for a long time (cold) using DAMON and reclaim | |
105 | those. | |
106 | ||
107 | This is suggested to be used as a proactive and lightweight | |
108 | reclamation under light memory pressure, while the traditional page | |
109 | scanning-based reclamation is used for heavy pressure. | |
110 | ||
40e983cc SP |
111 | config DAMON_LRU_SORT |
112 | bool "Build DAMON-based LRU-lists sorting (DAMON_LRU_SORT)" | |
113 | depends on DAMON_PADDR | |
114 | help | |
115 | This builds the DAMON-based LRU-lists sorting subsystem. It tries to | |
116 | protect frequently accessed (hot) pages while rarely accessed (cold) | |
117 | pages reclaimed first under memory pressure. | |
118 | ||
2224d848 | 119 | endmenu |