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>/apply_interval_us 159Date: Sep 2023 160Contact: SeongJae Park <sj@kernel.org> 161Description: Writing a value to this file sets the action apply interval of 162 the scheme in microseconds. Reading this file returns the 163 value. 164 165What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/sz/min 166Date: Mar 2022 167Contact: SeongJae Park <sj@kernel.org> 168Description: Writing to and reading from this file sets and gets the minimum 169 size of the scheme's target regions in bytes. 170 171What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/sz/max 172Date: Mar 2022 173Contact: SeongJae Park <sj@kernel.org> 174Description: Writing to and reading from this file sets and gets the maximum 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/nr_accesses/min 178Date: Mar 2022 179Contact: SeongJae Park <sj@kernel.org> 180Description: Writing to and reading from this file sets and gets the manimum 181 'nr_accesses' of the scheme's target regions. 182 183What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/nr_accesses/max 184Date: Mar 2022 185Contact: SeongJae Park <sj@kernel.org> 186Description: Writing to and reading from this file sets and gets the maximum 187 'nr_accesses' of the scheme's target regions. 188 189What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/age/min 190Date: Mar 2022 191Contact: SeongJae Park <sj@kernel.org> 192Description: Writing to and reading from this file sets and gets the minimum 193 'age' of the scheme's target regions. 194 195What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/age/max 196Date: Mar 2022 197Contact: SeongJae Park <sj@kernel.org> 198Description: Writing to and reading from this file sets and gets the maximum 199 'age' of the scheme's target regions. 200 201What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/ms 202Date: Mar 2022 203Contact: SeongJae Park <sj@kernel.org> 204Description: Writing to and reading from this file sets and gets the time 205 quota of the scheme in milliseconds. 206 207What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/bytes 208Date: Mar 2022 209Contact: SeongJae Park <sj@kernel.org> 210Description: Writing to and reading from this file sets and gets the size 211 quota of the scheme in bytes. 212 213What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/effective_bytes 214Date: Feb 2024 215Contact: SeongJae Park <sj@kernel.org> 216Description: Reading from this file gets the effective size quota of the 217 scheme in bytes, which adjusted for the time quota and goals. 218 219What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/reset_interval_ms 220Date: Mar 2022 221Contact: SeongJae Park <sj@kernel.org> 222Description: Writing to and reading from this file sets and gets the quotas 223 charge reset interval of the scheme in milliseconds. 224 225What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goals/nr_goals 226Date: Nov 2023 227Contact: SeongJae Park <sj@kernel.org> 228Description: Writing a number 'N' to this file creates the number of 229 directories for setting automatic tuning of the scheme's 230 aggressiveness named '0' to 'N-1' under the goals/ directory. 231 232What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goals/<G>/target_metric 233Date: Feb 2024 234Contact: SeongJae Park <sj@kernel.org> 235Description: Writing to and reading from this file sets and gets the quota 236 auto-tuning goal metric. 237 238What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goals/<G>/target_value 239Date: Nov 2023 240Contact: SeongJae Park <sj@kernel.org> 241Description: Writing to and reading from this file sets and gets the target 242 value of the goal metric. 243 244What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goals/<G>/current_value 245Date: Nov 2023 246Contact: SeongJae Park <sj@kernel.org> 247Description: Writing to and reading from this file sets and gets the current 248 value of the goal metric. 249 250What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/weights/sz_permil 251Date: Mar 2022 252Contact: SeongJae Park <sj@kernel.org> 253Description: Writing to and reading from this file sets and gets the 254 under-quota limit regions prioritization weight for 'size' in 255 permil. 256 257What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/weights/nr_accesses_permil 258Date: Mar 2022 259Contact: SeongJae Park <sj@kernel.org> 260Description: Writing to and reading from this file sets and gets the 261 under-quota limit regions prioritization weight for 262 'nr_accesses' in permil. 263 264What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/weights/age_permil 265Date: Mar 2022 266Contact: SeongJae Park <sj@kernel.org> 267Description: Writing to and reading from this file sets and gets the 268 under-quota limit regions prioritization weight for 'age' in 269 permil. 270 271What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/metric 272Date: Mar 2022 273Contact: SeongJae Park <sj@kernel.org> 274Description: Writing to and reading from this file sets and gets the metric 275 of the watermarks for the scheme. The writable/readable 276 keywords for this file are 'none' for disabling the watermarks 277 feature, or 'free_mem_rate' for the system's global free memory 278 rate in permil. 279 280What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/interval_us 281Date: Mar 2022 282Contact: SeongJae Park <sj@kernel.org> 283Description: Writing to and reading from this file sets and gets the metric 284 check interval of the watermarks for the scheme in 285 microseconds. 286 287What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/high 288Date: Mar 2022 289Contact: SeongJae Park <sj@kernel.org> 290Description: Writing to and reading from this file sets and gets the high 291 watermark of the scheme in permil. 292 293What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/mid 294Date: Mar 2022 295Contact: SeongJae Park <sj@kernel.org> 296Description: Writing to and reading from this file sets and gets the mid 297 watermark of the scheme in permil. 298 299What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/low 300Date: Mar 2022 301Contact: SeongJae Park <sj@kernel.org> 302Description: Writing to and reading from this file sets and gets the low 303 watermark of the scheme in permil. 304 305What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/nr_filters 306Date: Dec 2022 307Contact: SeongJae Park <sj@kernel.org> 308Description: Writing a number 'N' to this file creates the number of 309 directories for setting filters of the scheme named '0' to 310 'N-1' under the filters/ directory. 311 312What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/type 313Date: Dec 2022 314Contact: SeongJae Park <sj@kernel.org> 315Description: Writing to and reading from this file sets and gets the type of 316 the memory of the interest. 'anon' for anonymous pages, 317 'memcg' for specific memory cgroup, 'young' for young pages, 318 'addr' for address range (an open-ended interval), or 'target' 319 for DAMON monitoring target can be written and read. 320 321What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/memcg_path 322Date: Dec 2022 323Contact: SeongJae Park <sj@kernel.org> 324Description: If 'memcg' is written to the 'type' file, writing to and 325 reading from this file sets and gets the path to the memory 326 cgroup of the interest. 327 328What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/addr_start 329Date: Jul 2023 330Contact: SeongJae Park <sj@kernel.org> 331Description: If 'addr' is written to the 'type' file, writing to or reading 332 from this file sets or gets the start address of the address 333 range for the filter. 334 335What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/addr_end 336Date: Jul 2023 337Contact: SeongJae Park <sj@kernel.org> 338Description: If 'addr' is written to the 'type' file, writing to or reading 339 from this file sets or gets the end address of the address 340 range for the filter. 341 342What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/target_idx 343Date: Dec 2022 344Contact: SeongJae Park <sj@kernel.org> 345Description: If 'target' is written to the 'type' file, writing to or 346 reading from this file sets or gets the index of the DAMON 347 monitoring target of the interest. 348 349What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/matching 350Date: Dec 2022 351Contact: SeongJae Park <sj@kernel.org> 352Description: Writing 'Y' or 'N' to this file sets whether to filter out 353 pages that do or do not match to the 'type' and 'memcg_path', 354 respectively. Filter out means the action of the scheme will 355 not be applied to. 356 357What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/nr_tried 358Date: Mar 2022 359Contact: SeongJae Park <sj@kernel.org> 360Description: Reading this file returns the number of regions that the action 361 of the scheme has tried to be applied. 362 363What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/sz_tried 364Date: Mar 2022 365Contact: SeongJae Park <sj@kernel.org> 366Description: Reading this file returns the total size of regions that the 367 action of the scheme has tried to be applied in bytes. 368 369What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/nr_applied 370Date: Mar 2022 371Contact: SeongJae Park <sj@kernel.org> 372Description: Reading this file returns the number of regions that the action 373 of the scheme has successfully applied. 374 375What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/sz_applied 376Date: Mar 2022 377Contact: SeongJae Park <sj@kernel.org> 378Description: Reading this file returns the total size of regions that the 379 action of the scheme has successfully applied in bytes. 380 381What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/qt_exceeds 382Date: Mar 2022 383Contact: SeongJae Park <sj@kernel.org> 384Description: Reading this file returns the number of the exceed events of 385 the scheme's quotas. 386 387What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/total_bytes 388Date: Jul 2023 389Contact: SeongJae Park <sj@kernel.org> 390Description: Reading this file returns the total amount of memory that 391 corresponding DAMON-based Operation Scheme's action has tried 392 to be applied. 393 394What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/start 395Date: Oct 2022 396Contact: SeongJae Park <sj@kernel.org> 397Description: Reading this file returns the start address of a memory region 398 that corresponding DAMON-based Operation Scheme's action has 399 tried to be applied. 400 401What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/end 402Date: Oct 2022 403Contact: SeongJae Park <sj@kernel.org> 404Description: Reading this file returns the end address of a memory region 405 that corresponding DAMON-based Operation Scheme's action has 406 tried to be applied. 407 408What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/nr_accesses 409Date: Oct 2022 410Contact: SeongJae Park <sj@kernel.org> 411Description: Reading this file returns the 'nr_accesses' of a memory region 412 that corresponding DAMON-based Operation Scheme's action has 413 tried to be applied. 414 415What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/age 416Date: Oct 2022 417Contact: SeongJae Park <sj@kernel.org> 418Description: Reading this file returns the 'age' of a memory region that 419 corresponding DAMON-based Operation Scheme's action has tried 420 to be applied. 421