1what: /sys/kernel/mm/damon/ 2Date: Mar 2022 3Contact: SeongJae Park <sj@kernel.org> 4Description: Interface for Data Access MONitoring (DAMON). Contains files 5 for controlling DAMON. For more details on DAMON itself, 6 please refer to Documentation/admin-guide/mm/damon/index.rst. 7 8What: /sys/kernel/mm/damon/admin/ 9Date: Mar 2022 10Contact: SeongJae Park <sj@kernel.org> 11Description: Interface for privileged users of DAMON. Contains files for 12 controlling DAMON that aimed to be used by privileged users. 13 14What: /sys/kernel/mm/damon/admin/kdamonds/nr_kdamonds 15Date: Mar 2022 16Contact: SeongJae Park <sj@kernel.org> 17Description: Writing a number 'N' to this file creates the number of 18 directories for controlling each DAMON worker thread (kdamond) 19 named '0' to 'N-1' under the kdamonds/ directory. 20 21What: /sys/kernel/mm/damon/admin/kdamonds/<K>/state 22Date: Mar 2022 23Contact: SeongJae Park <sj@kernel.org> 24Description: Writing 'on' or 'off' to this file makes the kdamond starts or 25 stops, respectively. Reading the file returns the keywords 26 based on the current status. Writing 'commit' to this file 27 makes the kdamond reads the user inputs in the sysfs files 28 except 'state' again. Writing 'commit_schemes_quota_goals' to 29 this file makes the kdamond reads the quota goal files again. 30 Writing 'update_schemes_stats' to the file updates contents of 31 schemes stats files of the kdamond. Writing 32 'update_schemes_tried_regions' to the file updates contents of 33 'tried_regions' directory of every scheme directory of this 34 kdamond. Writing 'update_schemes_tried_bytes' to the file 35 updates only '.../tried_regions/total_bytes' files of this 36 kdamond. Writing 'clear_schemes_tried_regions' to the file 37 removes contents of the 'tried_regions' directory. Writing 38 'update_schemes_effective_quotas' to the file updates 39 '.../quotas/effective_bytes' files of this kdamond. 40 41What: /sys/kernel/mm/damon/admin/kdamonds/<K>/pid 42Date: Mar 2022 43Contact: SeongJae Park <sj@kernel.org> 44Description: Reading this file returns the pid of the kdamond if it is 45 running. 46 47What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/nr_contexts 48Date: Mar 2022 49Contact: SeongJae Park <sj@kernel.org> 50Description: Writing a number 'N' to this file creates the number of 51 directories for controlling each DAMON context named '0' to 52 'N-1' under the contexts/ directory. 53 54What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/avail_operations 55Date: Apr 2022 56Contact: SeongJae Park <sj@kernel.org> 57Description: Reading this file returns the available monitoring operations 58 sets on the currently running kernel. 59 60What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/operations 61Date: Mar 2022 62Contact: SeongJae Park <sj@kernel.org> 63Description: Writing a keyword for a monitoring operations set ('vaddr' for 64 virtual address spaces monitoring, 'fvaddr' for fixed virtual 65 address ranges monitoring, and 'paddr' for the physical address 66 space monitoring) to this file makes the context to use the 67 operations set. Reading the file returns the keyword for the 68 operations set the context is set to use. 69 70 Note that only the operations sets that listed in 71 'avail_operations' file are valid inputs. 72 73What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/intervals/sample_us 74Date: Mar 2022 75Contact: SeongJae Park <sj@kernel.org> 76Description: Writing a value to this file sets the sampling interval of the 77 DAMON context in microseconds as the value. Reading this file 78 returns the value. 79 80What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/intervals/aggr_us 81Date: Mar 2022 82Contact: SeongJae Park <sj@kernel.org> 83Description: Writing a value to this file sets the aggregation interval of 84 the DAMON context in microseconds as the value. Reading this 85 file returns the value. 86 87What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/intervals/update_us 88Date: Mar 2022 89Contact: SeongJae Park <sj@kernel.org> 90Description: Writing a value to this file sets the update interval of the 91 DAMON context in microseconds as the value. Reading this file 92 returns the value. 93 94What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/nr_regions/min 95 96WDate: Mar 2022 97Contact: SeongJae Park <sj@kernel.org> 98Description: Writing a value to this file sets the minimum number of 99 monitoring regions of the DAMON context as the value. Reading 100 this file returns the value. 101 102What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/nr_regions/max 103Date: Mar 2022 104Contact: SeongJae Park <sj@kernel.org> 105Description: Writing a value to this file sets the maximum number of 106 monitoring regions of the DAMON context as the value. Reading 107 this file returns the value. 108 109What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/targets/nr_targets 110Date: Mar 2022 111Contact: SeongJae Park <sj@kernel.org> 112Description: Writing a number 'N' to this file creates the number of 113 directories for controlling each DAMON target of the context 114 named '0' to 'N-1' under the contexts/ directory. 115 116What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/targets/<T>/pid_target 117Date: Mar 2022 118Contact: SeongJae Park <sj@kernel.org> 119Description: Writing to and reading from this file sets and gets the pid of 120 the target process if the context is for virtual address spaces 121 monitoring, respectively. 122 123What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/targets/<T>/regions/nr_regions 124Date: Mar 2022 125Contact: SeongJae Park <sj@kernel.org> 126Description: Writing a number 'N' to this file creates the number of 127 directories for setting each DAMON target memory region of the 128 context named '0' to 'N-1' under the regions/ directory. In 129 case of the virtual address space monitoring, DAMON 130 automatically sets the target memory region based on the target 131 processes' mappings. 132 133What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/targets/<T>/regions/<R>/start 134Date: Mar 2022 135Contact: SeongJae Park <sj@kernel.org> 136Description: Writing to and reading from this file sets and gets the start 137 address of the monitoring region. 138 139What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/targets/<T>/regions/<R>/end 140Date: Mar 2022 141Contact: SeongJae Park <sj@kernel.org> 142Description: Writing to and reading from this file sets and gets the end 143 address of the monitoring region. 144 145What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/nr_schemes 146Date: Mar 2022 147Contact: SeongJae Park <sj@kernel.org> 148Description: Writing a number 'N' to this file creates the number of 149 directories for controlling each DAMON-based operation scheme 150 of the context named '0' to 'N-1' under the schemes/ directory. 151 152What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/action 153Date: Mar 2022 154Contact: SeongJae Park <sj@kernel.org> 155Description: Writing to and reading from this file sets and gets the action 156 of the scheme. 157 158What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/target_nid 159Date: Jun 2024 160Contact: SeongJae Park <sj@kernel.org> 161Description: Action's target NUMA node id. Supported by only relevant 162 actions. 163 164What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/apply_interval_us 165Date: Sep 2023 166Contact: SeongJae Park <sj@kernel.org> 167Description: Writing a value to this file sets the action apply interval of 168 the scheme in microseconds. Reading this file returns the 169 value. 170 171What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/sz/min 172Date: Mar 2022 173Contact: SeongJae Park <sj@kernel.org> 174Description: Writing to and reading from this file sets and gets the minimum 175 size of the scheme's target regions in bytes. 176 177What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/sz/max 178Date: Mar 2022 179Contact: SeongJae Park <sj@kernel.org> 180Description: Writing to and reading from this file sets and gets the maximum 181 size of the scheme's target regions in bytes. 182 183What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/nr_accesses/min 184Date: Mar 2022 185Contact: SeongJae Park <sj@kernel.org> 186Description: Writing to and reading from this file sets and gets the manimum 187 'nr_accesses' of the scheme's target regions. 188 189What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/nr_accesses/max 190Date: Mar 2022 191Contact: SeongJae Park <sj@kernel.org> 192Description: Writing to and reading from this file sets and gets the maximum 193 'nr_accesses' of the scheme's target regions. 194 195What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/age/min 196Date: Mar 2022 197Contact: SeongJae Park <sj@kernel.org> 198Description: Writing to and reading from this file sets and gets the minimum 199 'age' of the scheme's target regions. 200 201What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/age/max 202Date: Mar 2022 203Contact: SeongJae Park <sj@kernel.org> 204Description: Writing to and reading from this file sets and gets the maximum 205 'age' of the scheme's target regions. 206 207What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/ms 208Date: Mar 2022 209Contact: SeongJae Park <sj@kernel.org> 210Description: Writing to and reading from this file sets and gets the time 211 quota of the scheme in milliseconds. 212 213What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/bytes 214Date: Mar 2022 215Contact: SeongJae Park <sj@kernel.org> 216Description: Writing to and reading from this file sets and gets the size 217 quota of the scheme in bytes. 218 219What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/effective_bytes 220Date: Feb 2024 221Contact: SeongJae Park <sj@kernel.org> 222Description: Reading from this file gets the effective size quota of the 223 scheme in bytes, which adjusted for the time quota and goals. 224 225What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/reset_interval_ms 226Date: Mar 2022 227Contact: SeongJae Park <sj@kernel.org> 228Description: Writing to and reading from this file sets and gets the quotas 229 charge reset interval of the scheme in milliseconds. 230 231What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goals/nr_goals 232Date: Nov 2023 233Contact: SeongJae Park <sj@kernel.org> 234Description: Writing a number 'N' to this file creates the number of 235 directories for setting automatic tuning of the scheme's 236 aggressiveness named '0' to 'N-1' under the goals/ directory. 237 238What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goals/<G>/target_metric 239Date: Feb 2024 240Contact: SeongJae Park <sj@kernel.org> 241Description: Writing to and reading from this file sets and gets the quota 242 auto-tuning goal metric. 243 244What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goals/<G>/target_value 245Date: Nov 2023 246Contact: SeongJae Park <sj@kernel.org> 247Description: Writing to and reading from this file sets and gets the target 248 value of the goal metric. 249 250What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goals/<G>/current_value 251Date: Nov 2023 252Contact: SeongJae Park <sj@kernel.org> 253Description: Writing to and reading from this file sets and gets the current 254 value of the goal metric. 255 256What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/weights/sz_permil 257Date: Mar 2022 258Contact: SeongJae Park <sj@kernel.org> 259Description: Writing to and reading from this file sets and gets the 260 under-quota limit regions prioritization weight for 'size' in 261 permil. 262 263What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/weights/nr_accesses_permil 264Date: Mar 2022 265Contact: SeongJae Park <sj@kernel.org> 266Description: Writing to and reading from this file sets and gets the 267 under-quota limit regions prioritization weight for 268 'nr_accesses' in permil. 269 270What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/weights/age_permil 271Date: Mar 2022 272Contact: SeongJae Park <sj@kernel.org> 273Description: Writing to and reading from this file sets and gets the 274 under-quota limit regions prioritization weight for 'age' in 275 permil. 276 277What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/metric 278Date: Mar 2022 279Contact: SeongJae Park <sj@kernel.org> 280Description: Writing to and reading from this file sets and gets the metric 281 of the watermarks for the scheme. The writable/readable 282 keywords for this file are 'none' for disabling the watermarks 283 feature, or 'free_mem_rate' for the system's global free memory 284 rate in permil. 285 286What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/interval_us 287Date: Mar 2022 288Contact: SeongJae Park <sj@kernel.org> 289Description: Writing to and reading from this file sets and gets the metric 290 check interval of the watermarks for the scheme in 291 microseconds. 292 293What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/high 294Date: Mar 2022 295Contact: SeongJae Park <sj@kernel.org> 296Description: Writing to and reading from this file sets and gets the high 297 watermark of the scheme in permil. 298 299What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/mid 300Date: Mar 2022 301Contact: SeongJae Park <sj@kernel.org> 302Description: Writing to and reading from this file sets and gets the mid 303 watermark of the scheme in permil. 304 305What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/low 306Date: Mar 2022 307Contact: SeongJae Park <sj@kernel.org> 308Description: Writing to and reading from this file sets and gets the low 309 watermark of the scheme in permil. 310 311What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/nr_filters 312Date: Dec 2022 313Contact: SeongJae Park <sj@kernel.org> 314Description: Writing a number 'N' to this file creates the number of 315 directories for setting filters of the scheme named '0' to 316 'N-1' under the filters/ directory. 317 318What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/type 319Date: Dec 2022 320Contact: SeongJae Park <sj@kernel.org> 321Description: Writing to and reading from this file sets and gets the type of 322 the memory of the interest. 'anon' for anonymous pages, 323 'memcg' for specific memory cgroup, 'young' for young pages, 324 'addr' for address range (an open-ended interval), or 'target' 325 for DAMON monitoring target can be written and read. 326 327What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/memcg_path 328Date: Dec 2022 329Contact: SeongJae Park <sj@kernel.org> 330Description: If 'memcg' is written to the 'type' file, writing to and 331 reading from this file sets and gets the path to the memory 332 cgroup of the interest. 333 334What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/addr_start 335Date: Jul 2023 336Contact: SeongJae Park <sj@kernel.org> 337Description: If 'addr' is written to the 'type' file, writing to or reading 338 from this file sets or gets the start address of the address 339 range for the filter. 340 341What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/addr_end 342Date: Jul 2023 343Contact: SeongJae Park <sj@kernel.org> 344Description: If 'addr' is written to the 'type' file, writing to or reading 345 from this file sets or gets the end address of the address 346 range for the filter. 347 348What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/target_idx 349Date: Dec 2022 350Contact: SeongJae Park <sj@kernel.org> 351Description: If 'target' is written to the 'type' file, writing to or 352 reading from this file sets or gets the index of the DAMON 353 monitoring target of the interest. 354 355What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/matching 356Date: Dec 2022 357Contact: SeongJae Park <sj@kernel.org> 358Description: Writing 'Y' or 'N' to this file sets whether to filter out 359 pages that do or do not match to the 'type' and 'memcg_path', 360 respectively. Filter out means the action of the scheme will 361 not be applied to. 362 363What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/nr_tried 364Date: Mar 2022 365Contact: SeongJae Park <sj@kernel.org> 366Description: Reading this file returns the number of regions that the action 367 of the scheme has tried to be applied. 368 369What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/sz_tried 370Date: Mar 2022 371Contact: SeongJae Park <sj@kernel.org> 372Description: Reading this file returns the total size of regions that the 373 action of the scheme has tried to be applied in bytes. 374 375What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/nr_applied 376Date: Mar 2022 377Contact: SeongJae Park <sj@kernel.org> 378Description: Reading this file returns the number of regions that the action 379 of the scheme has successfully applied. 380 381What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/sz_applied 382Date: Mar 2022 383Contact: SeongJae Park <sj@kernel.org> 384Description: Reading this file returns the total size of regions that the 385 action of the scheme has successfully applied in bytes. 386 387What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/qt_exceeds 388Date: Mar 2022 389Contact: SeongJae Park <sj@kernel.org> 390Description: Reading this file returns the number of the exceed events of 391 the scheme's quotas. 392 393What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/total_bytes 394Date: Jul 2023 395Contact: SeongJae Park <sj@kernel.org> 396Description: Reading this file returns the total amount of memory that 397 corresponding DAMON-based Operation Scheme's action has tried 398 to be applied. 399 400What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/start 401Date: Oct 2022 402Contact: SeongJae Park <sj@kernel.org> 403Description: Reading this file returns the start address of a memory region 404 that corresponding DAMON-based Operation Scheme's action has 405 tried to be applied. 406 407What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/end 408Date: Oct 2022 409Contact: SeongJae Park <sj@kernel.org> 410Description: Reading this file returns the end address of a memory region 411 that corresponding DAMON-based Operation Scheme's action has 412 tried to be applied. 413 414What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/nr_accesses 415Date: Oct 2022 416Contact: SeongJae Park <sj@kernel.org> 417Description: Reading this file returns the 'nr_accesses' of a memory region 418 that corresponding DAMON-based Operation Scheme's action has 419 tried to be applied. 420 421What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/age 422Date: Oct 2022 423Contact: SeongJae Park <sj@kernel.org> 424Description: Reading this file returns the 'age' of a memory region that 425 corresponding DAMON-based Operation Scheme's action has tried 426 to be applied. 427