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 | ||
6901cf55 | 12 | See https://www.kernel.org/doc/html/latest/mm/damon/index.html for |
2224d848 SP |
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 | |
0acfc656 | 31 | default DAMON |
3f49584b | 32 | help |
f7d911c3 | 33 | This builds the default data access monitoring operations for DAMON |
f24b0626 | 34 | that work for virtual address spaces. |
3f49584b | 35 | |
a28397be | 36 | config DAMON_PADDR |
f7d911c3 | 37 | bool "Data access monitoring operations for the physical address space" |
a28397be SP |
38 | depends on DAMON && MMU |
39 | select PAGE_IDLE_FLAG | |
0acfc656 | 40 | default DAMON |
a28397be | 41 | help |
f7d911c3 | 42 | This builds the default data access monitoring operations for DAMON |
a28397be SP |
43 | that works for the physical address space. |
44 | ||
17ccae8b | 45 | config DAMON_VADDR_KUNIT_TEST |
f7d911c3 | 46 | bool "Test for DAMON operations" if !KUNIT_ALL_TESTS |
17ccae8b SP |
47 | depends on DAMON_VADDR && KUNIT=y |
48 | default KUNIT_ALL_TESTS | |
49 | help | |
f7d911c3 | 50 | This builds the DAMON virtual addresses operations Kunit test suite. |
17ccae8b SP |
51 | |
52 | For more information on KUnit and unit tests in general, please refer | |
53 | to the KUnit documentation. | |
54 | ||
55 | If unsure, say N. | |
56 | ||
c951cd3b SP |
57 | config DAMON_SYSFS |
58 | bool "DAMON sysfs interface" | |
59 | depends on DAMON && SYSFS | |
0acfc656 | 60 | default DAMON |
c951cd3b SP |
61 | help |
62 | This builds the sysfs interface for DAMON. The user space can use | |
63 | the interface for arbitrary data access monitoring. | |
64 | ||
b8ee5575 | 65 | config DAMON_SYSFS_KUNIT_TEST |
12d02165 | 66 | bool "Test for damon sysfs interface" if !KUNIT_ALL_TESTS |
b8ee5575 SP |
67 | depends on DAMON_SYSFS && KUNIT=y |
68 | default KUNIT_ALL_TESTS | |
69 | help | |
70 | This builds the DAMON sysfs interface Kunit test suite. | |
71 | ||
72 | For more information on KUnit and unit tests in general, please refer | |
73 | to the KUnit documentation. | |
74 | ||
75 | If unsure, say N. | |
76 | ||
43b0536c SP |
77 | config DAMON_RECLAIM |
78 | bool "Build DAMON-based reclaim (DAMON_RECLAIM)" | |
79 | depends on DAMON_PADDR | |
80 | help | |
81 | This builds the DAMON-based reclamation subsystem. It finds pages | |
82 | that not accessed for a long time (cold) using DAMON and reclaim | |
83 | those. | |
84 | ||
85 | This is suggested to be used as a proactive and lightweight | |
86 | reclamation under light memory pressure, while the traditional page | |
87 | scanning-based reclamation is used for heavy pressure. | |
88 | ||
40e983cc SP |
89 | config DAMON_LRU_SORT |
90 | bool "Build DAMON-based LRU-lists sorting (DAMON_LRU_SORT)" | |
91 | depends on DAMON_PADDR | |
92 | help | |
93 | This builds the DAMON-based LRU-lists sorting subsystem. It tries to | |
94 | protect frequently accessed (hot) pages while rarely accessed (cold) | |
95 | pages reclaimed first under memory pressure. | |
96 | ||
2224d848 | 97 | endmenu |