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
 |