| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- # 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://www.kernel.org/doc/html/latest/mm/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
- default DAMON
- 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
- default DAMON
- 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
- default DAMON
- help
- This builds the sysfs interface for DAMON. The user space can use
- the interface for arbitrary data access monitoring.
- config DAMON_SYSFS_KUNIT_TEST
- bool "Test for damon sysfs interface" if !KUNIT_ALL_TESTS
- depends on DAMON_SYSFS && KUNIT=y
- default KUNIT_ALL_TESTS
- help
- This builds the DAMON sysfs 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.
- config DAMON_STAT
- bool "Build data access monitoring stat (DAMON_STAT)"
- depends on DAMON_PADDR
- help
- This builds the DAMON-based access monitoring statistics subsystem.
- It runs DAMON and expose access monitoring results in simple stat
- metrics.
- config DAMON_STAT_ENABLED_DEFAULT
- bool "Enable DAMON_STAT by default"
- depends on DAMON_STAT
- default DAMON_STAT
- help
- Whether to enable DAMON_STAT by default. Users can disable it in
- boot or runtime using its 'enabled' parameter.
- endmenu
|