1# SPDX-License-Identifier: GPL-2.0-only 2 3menu "Data Access Monitoring" 4 5config DAMON 6 bool "DAMON: Data Access Monitoring Framework" 7 default y 8 help 9 This builds a framework that allows kernel subsystems to monitor 10 access frequency of each memory region. The information can be useful 11 for performance-centric DRAM level memory management. 12 13 See https://www.kernel.org/doc/html/latest/mm/damon/index.html for 14 more information. 15 16config DAMON_KUNIT_TEST 17 bool "Test for damon" if !KUNIT_ALL_TESTS 18 depends on DAMON && KUNIT=y 19 default KUNIT_ALL_TESTS 20 help 21 This builds the DAMON Kunit test suite. 22 23 For more information on KUnit and unit tests in general, please refer 24 to the KUnit documentation. 25 26 If unsure, say N. 27 28config DAMON_VADDR 29 bool "Data access monitoring operations for virtual address spaces" 30 depends on DAMON && MMU 31 select PAGE_IDLE_FLAG 32 default DAMON 33 help 34 This builds the default data access monitoring operations for DAMON 35 that work for virtual address spaces. 36 37config DAMON_PADDR 38 bool "Data access monitoring operations for the physical address space" 39 depends on DAMON && MMU 40 select PAGE_IDLE_FLAG 41 default DAMON 42 help 43 This builds the default data access monitoring operations for DAMON 44 that works for the physical address space. 45 46config DAMON_VADDR_KUNIT_TEST 47 bool "Test for DAMON operations" if !KUNIT_ALL_TESTS 48 depends on DAMON_VADDR && KUNIT=y 49 default KUNIT_ALL_TESTS 50 help 51 This builds the DAMON virtual addresses operations Kunit test suite. 52 53 For more information on KUnit and unit tests in general, please refer 54 to the KUnit documentation. 55 56 If unsure, say N. 57 58config DAMON_SYSFS 59 bool "DAMON sysfs interface" 60 depends on DAMON && SYSFS 61 default DAMON 62 help 63 This builds the sysfs interface for DAMON. The user space can use 64 the interface for arbitrary data access monitoring. 65 66config DAMON_SYSFS_KUNIT_TEST 67 bool "Test for damon sysfs interface" if !KUNIT_ALL_TESTS 68 depends on DAMON_SYSFS && KUNIT=y 69 default KUNIT_ALL_TESTS 70 help 71 This builds the DAMON sysfs interface Kunit test suite. 72 73 For more information on KUnit and unit tests in general, please refer 74 to the KUnit documentation. 75 76 If unsure, say N. 77 78config DAMON_RECLAIM 79 bool "Build DAMON-based reclaim (DAMON_RECLAIM)" 80 depends on DAMON_PADDR 81 help 82 This builds the DAMON-based reclamation subsystem. It finds pages 83 that not accessed for a long time (cold) using DAMON and reclaim 84 those. 85 86 This is suggested to be used as a proactive and lightweight 87 reclamation under light memory pressure, while the traditional page 88 scanning-based reclamation is used for heavy pressure. 89 90config DAMON_LRU_SORT 91 bool "Build DAMON-based LRU-lists sorting (DAMON_LRU_SORT)" 92 depends on DAMON_PADDR 93 help 94 This builds the DAMON-based LRU-lists sorting subsystem. It tries to 95 protect frequently accessed (hot) pages while rarely accessed (cold) 96 pages reclaimed first under memory pressure. 97 98endmenu 99