12224d848SSeongJae Park# SPDX-License-Identifier: GPL-2.0-only 22224d848SSeongJae Park 32224d848SSeongJae Parkmenu "Data Access Monitoring" 42224d848SSeongJae Park 52224d848SSeongJae Parkconfig DAMON 62224d848SSeongJae Park bool "DAMON: Data Access Monitoring Framework" 72224d848SSeongJae Park help 82224d848SSeongJae Park This builds a framework that allows kernel subsystems to monitor 92224d848SSeongJae Park access frequency of each memory region. The information can be useful 102224d848SSeongJae Park for performance-centric DRAM level memory management. 112224d848SSeongJae Park 122224d848SSeongJae Park See https://damonitor.github.io/doc/html/latest-damon/index.html for 132224d848SSeongJae Park more information. 142224d848SSeongJae Park 1517ccae8bSSeongJae Parkconfig DAMON_KUNIT_TEST 1617ccae8bSSeongJae Park bool "Test for damon" if !KUNIT_ALL_TESTS 1717ccae8bSSeongJae Park depends on DAMON && KUNIT=y 1817ccae8bSSeongJae Park default KUNIT_ALL_TESTS 1917ccae8bSSeongJae Park help 2017ccae8bSSeongJae Park This builds the DAMON Kunit test suite. 2117ccae8bSSeongJae Park 2217ccae8bSSeongJae Park For more information on KUnit and unit tests in general, please refer 2317ccae8bSSeongJae Park to the KUnit documentation. 2417ccae8bSSeongJae Park 2517ccae8bSSeongJae Park If unsure, say N. 2617ccae8bSSeongJae Park 273f49584bSSeongJae Parkconfig DAMON_VADDR 28f7d911c3SSeongJae Park bool "Data access monitoring operations for virtual address spaces" 293f49584bSSeongJae Park depends on DAMON && MMU 303f49584bSSeongJae Park select PAGE_IDLE_FLAG 313f49584bSSeongJae Park help 32f7d911c3SSeongJae Park This builds the default data access monitoring operations for DAMON 33f24b0626SGeert Uytterhoeven that work for virtual address spaces. 343f49584bSSeongJae Park 35a28397beSSeongJae Parkconfig DAMON_PADDR 36f7d911c3SSeongJae Park bool "Data access monitoring operations for the physical address space" 37a28397beSSeongJae Park depends on DAMON && MMU 38a28397beSSeongJae Park select PAGE_IDLE_FLAG 39a28397beSSeongJae Park help 40f7d911c3SSeongJae Park This builds the default data access monitoring operations for DAMON 41a28397beSSeongJae Park that works for the physical address space. 42a28397beSSeongJae Park 4317ccae8bSSeongJae Parkconfig DAMON_VADDR_KUNIT_TEST 44f7d911c3SSeongJae Park bool "Test for DAMON operations" if !KUNIT_ALL_TESTS 4517ccae8bSSeongJae Park depends on DAMON_VADDR && KUNIT=y 4617ccae8bSSeongJae Park default KUNIT_ALL_TESTS 4717ccae8bSSeongJae Park help 48f7d911c3SSeongJae Park This builds the DAMON virtual addresses operations Kunit test suite. 4917ccae8bSSeongJae Park 5017ccae8bSSeongJae Park For more information on KUnit and unit tests in general, please refer 5117ccae8bSSeongJae Park to the KUnit documentation. 5217ccae8bSSeongJae Park 5317ccae8bSSeongJae Park If unsure, say N. 5417ccae8bSSeongJae Park 55c951cd3bSSeongJae Parkconfig DAMON_SYSFS 56c951cd3bSSeongJae Park bool "DAMON sysfs interface" 57c951cd3bSSeongJae Park depends on DAMON && SYSFS 58c951cd3bSSeongJae Park help 59c951cd3bSSeongJae Park This builds the sysfs interface for DAMON. The user space can use 60c951cd3bSSeongJae Park the interface for arbitrary data access monitoring. 61c951cd3bSSeongJae Park 624bc05954SSeongJae Parkconfig DAMON_DBGFS 63*61e88a2fSSeongJae Park bool "DAMON debugfs interface (DEPRECATED!)" 64c026291aSSeongJae Park depends on DAMON_VADDR && DAMON_PADDR && DEBUG_FS 654bc05954SSeongJae Park help 664bc05954SSeongJae Park This builds the debugfs interface for DAMON. The user space admins 674bc05954SSeongJae Park can use the interface for arbitrary data access monitoring. 684bc05954SSeongJae Park 694bc05954SSeongJae Park If unsure, say N. 704bc05954SSeongJae Park 71*61e88a2fSSeongJae Park This is deprecated, so users should move to the sysfs interface 72*61e88a2fSSeongJae Park (DAMON_SYSFS). If you depend on this and cannot move, please report 73*61e88a2fSSeongJae Park your usecase to damon@lists.linux.dev and linux-mm@kvack.org. 74e8600ce2SSeongJae Park 7517ccae8bSSeongJae Parkconfig DAMON_DBGFS_KUNIT_TEST 7617ccae8bSSeongJae Park bool "Test for damon debugfs interface" if !KUNIT_ALL_TESTS 7717ccae8bSSeongJae Park depends on DAMON_DBGFS && KUNIT=y 7817ccae8bSSeongJae Park default KUNIT_ALL_TESTS 7917ccae8bSSeongJae Park help 8017ccae8bSSeongJae Park This builds the DAMON debugfs interface Kunit test suite. 8117ccae8bSSeongJae Park 8217ccae8bSSeongJae Park For more information on KUnit and unit tests in general, please refer 8317ccae8bSSeongJae Park to the KUnit documentation. 8417ccae8bSSeongJae Park 8517ccae8bSSeongJae Park If unsure, say N. 8617ccae8bSSeongJae Park 8743b0536cSSeongJae Parkconfig DAMON_RECLAIM 8843b0536cSSeongJae Park bool "Build DAMON-based reclaim (DAMON_RECLAIM)" 8943b0536cSSeongJae Park depends on DAMON_PADDR 9043b0536cSSeongJae Park help 9143b0536cSSeongJae Park This builds the DAMON-based reclamation subsystem. It finds pages 9243b0536cSSeongJae Park that not accessed for a long time (cold) using DAMON and reclaim 9343b0536cSSeongJae Park those. 9443b0536cSSeongJae Park 9543b0536cSSeongJae Park This is suggested to be used as a proactive and lightweight 9643b0536cSSeongJae Park reclamation under light memory pressure, while the traditional page 9743b0536cSSeongJae Park scanning-based reclamation is used for heavy pressure. 9843b0536cSSeongJae Park 9940e983ccSSeongJae Parkconfig DAMON_LRU_SORT 10040e983ccSSeongJae Park bool "Build DAMON-based LRU-lists sorting (DAMON_LRU_SORT)" 10140e983ccSSeongJae Park depends on DAMON_PADDR 10240e983ccSSeongJae Park help 10340e983ccSSeongJae Park This builds the DAMON-based LRU-lists sorting subsystem. It tries to 10440e983ccSSeongJae Park protect frequently accessed (hot) pages while rarely accessed (cold) 10540e983ccSSeongJae Park pages reclaimed first under memory pressure. 10640e983ccSSeongJae Park 1072224d848SSeongJae Parkendmenu 108