107 lines
3.2 KiB
Plaintext
107 lines
3.2 KiB
Plaintext
|
# 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.
|
||
|
|
||
|
This will be removed after >5.15.y LTS kernel is released, so users
|
||
|
should move to the sysfs interface (DAMON_SYSFS).
|
||
|
|
||
|
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.
|
||
|
|
||
|
config DAMON_LRU_SORT
|
||
|
bool "Build DAMON-based LRU-lists sorting (DAMON_LRU_SORT)"
|
||
|
depends on DAMON_PADDR
|
||
|
help
|
||
|
This builds the DAMON-based LRU-lists sorting subsystem. It tries to
|
||
|
protect frequently accessed (hot) pages while rarely accessed (cold)
|
||
|
pages reclaimed first under memory pressure.
|
||
|
|
||
|
endmenu
|