| # SPDX-License-Identifier: GPL-2.0-only | |
| menu "Data Access Monitoring" | |
| config DAMON | |
| bool "DAMON: Data Access Monitoring Framework" | |
| help | |
| This builds a framework that allows kernel subsystems to monitor | |
| access frequency of each memory region. The information can be useful | |
| for performance-centric DRAM level memory management. | |
| See https://damonitor.github.io/doc/html/latest-damon/index.html for | |
| more information. | |
| config DAMON_KUNIT_TEST | |
| bool "Test for damon" if !KUNIT_ALL_TESTS | |
| depends on DAMON && KUNIT=y | |
| default KUNIT_ALL_TESTS | |
| help | |
| This builds the DAMON Kunit test suite. | |
| For more information on KUnit and unit tests in general, please refer | |
| to the KUnit documentation. | |
| If unsure, say N. | |
| config DAMON_VADDR | |
| bool "Data access monitoring operations for virtual address spaces" | |
| depends on DAMON && MMU | |
| select PAGE_IDLE_FLAG | |
| help | |
| This builds the default data access monitoring operations for DAMON | |
| that work for virtual address spaces. | |
| config DAMON_PADDR | |
| bool "Data access monitoring operations for the physical address space" | |
| depends on DAMON && MMU | |
| select PAGE_IDLE_FLAG | |
| help | |
| This builds the default data access monitoring operations for DAMON | |
| that works for the physical address space. | |
| config DAMON_VADDR_KUNIT_TEST | |
| bool "Test for DAMON operations" if !KUNIT_ALL_TESTS | |
| depends on DAMON_VADDR && KUNIT=y | |
| default KUNIT_ALL_TESTS | |
| help | |
| This builds the DAMON virtual addresses operations Kunit test suite. | |
| For more information on KUnit and unit tests in general, please refer | |
| to the KUnit documentation. | |
| If unsure, say N. | |
| config DAMON_SYSFS | |
| bool "DAMON sysfs interface" | |
| depends on DAMON && SYSFS | |
| help | |
| This builds the sysfs interface for DAMON. The user space can use | |
| the interface for arbitrary data access monitoring. | |
| config DAMON_DBGFS | |
| bool "DAMON debugfs interface" | |
| depends on DAMON_VADDR && DAMON_PADDR && DEBUG_FS | |
| help | |
| This builds the debugfs interface for DAMON. The user space admins | |
| can use the interface for arbitrary data access monitoring. | |
| If unsure, say N. | |
| config DAMON_DBGFS_KUNIT_TEST | |
| bool "Test for damon debugfs interface" if !KUNIT_ALL_TESTS | |
| depends on DAMON_DBGFS && KUNIT=y | |
| default KUNIT_ALL_TESTS | |
| help | |
| This builds the DAMON debugfs interface Kunit test suite. | |
| For more information on KUnit and unit tests in general, please refer | |
| to the KUnit documentation. | |
| If unsure, say N. | |
| config DAMON_RECLAIM | |
| bool "Build DAMON-based reclaim (DAMON_RECLAIM)" | |
| depends on DAMON_PADDR | |
| help | |
| This builds the DAMON-based reclamation subsystem. It finds pages | |
| that not accessed for a long time (cold) using DAMON and reclaim | |
| those. | |
| This is suggested to be used as a proactive and lightweight | |
| reclamation under light memory pressure, while the traditional page | |
| scanning-based reclamation is used for heavy pressure. | |
| endmenu |