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
 |