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