Kconfig 3.4 KB

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