427 lines · plain
1what: /sys/kernel/mm/damon/2Date: Mar 20223Contact: SeongJae Park <sj@kernel.org>4Description: Interface for Data Access MONitoring (DAMON). Contains files5 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 202210Contact: SeongJae Park <sj@kernel.org>11Description: Interface for privileged users of DAMON. Contains files for12 controlling DAMON that aimed to be used by privileged users.13 14What: /sys/kernel/mm/damon/admin/kdamonds/nr_kdamonds15Date: Mar 202216Contact: SeongJae Park <sj@kernel.org>17Description: Writing a number 'N' to this file creates the number of18 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>/state22Date: Mar 202223Contact: SeongJae Park <sj@kernel.org>24Description: Writing 'on' or 'off' to this file makes the kdamond starts or25 stops, respectively. Reading the file returns the keywords26 based on the current status. Writing 'commit' to this file27 makes the kdamond reads the user inputs in the sysfs files28 except 'state' again. Writing 'commit_schemes_quota_goals' to29 this file makes the kdamond reads the quota goal files again.30 Writing 'update_schemes_stats' to the file updates contents of31 schemes stats files of the kdamond. Writing32 'update_schemes_tried_regions' to the file updates contents of33 'tried_regions' directory of every scheme directory of this34 kdamond. Writing 'update_schemes_tried_bytes' to the file35 updates only '.../tried_regions/total_bytes' files of this36 kdamond. Writing 'clear_schemes_tried_regions' to the file37 removes contents of the 'tried_regions' directory. Writing38 'update_schemes_effective_quotas' to the file updates39 '.../quotas/effective_bytes' files of this kdamond.40 41What: /sys/kernel/mm/damon/admin/kdamonds/<K>/pid42Date: Mar 202243Contact: SeongJae Park <sj@kernel.org>44Description: Reading this file returns the pid of the kdamond if it is45 running.46 47What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/nr_contexts48Date: Mar 202249Contact: SeongJae Park <sj@kernel.org>50Description: Writing a number 'N' to this file creates the number of51 directories for controlling each DAMON context named '0' to52 'N-1' under the contexts/ directory.53 54What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/avail_operations55Date: Apr 202256Contact: SeongJae Park <sj@kernel.org>57Description: Reading this file returns the available monitoring operations58 sets on the currently running kernel.59 60What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/operations61Date: Mar 202262Contact: SeongJae Park <sj@kernel.org>63Description: Writing a keyword for a monitoring operations set ('vaddr' for64 virtual address spaces monitoring, 'fvaddr' for fixed virtual65 address ranges monitoring, and 'paddr' for the physical address66 space monitoring) to this file makes the context to use the67 operations set. Reading the file returns the keyword for the68 operations set the context is set to use.69 70 Note that only the operations sets that listed in71 'avail_operations' file are valid inputs.72 73What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/intervals/sample_us74Date: Mar 202275Contact: SeongJae Park <sj@kernel.org>76Description: Writing a value to this file sets the sampling interval of the77 DAMON context in microseconds as the value. Reading this file78 returns the value.79 80What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/intervals/aggr_us81Date: Mar 202282Contact: SeongJae Park <sj@kernel.org>83Description: Writing a value to this file sets the aggregation interval of84 the DAMON context in microseconds as the value. Reading this85 file returns the value.86 87What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/intervals/update_us88Date: Mar 202289Contact: SeongJae Park <sj@kernel.org>90Description: Writing a value to this file sets the update interval of the91 DAMON context in microseconds as the value. Reading this file92 returns the value.93 94What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/nr_regions/min95 96WDate: Mar 202297Contact: SeongJae Park <sj@kernel.org>98Description: Writing a value to this file sets the minimum number of99 monitoring regions of the DAMON context as the value. Reading100 this file returns the value.101 102What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/nr_regions/max103Date: Mar 2022104Contact: SeongJae Park <sj@kernel.org>105Description: Writing a value to this file sets the maximum number of106 monitoring regions of the DAMON context as the value. Reading107 this file returns the value.108 109What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/targets/nr_targets110Date: Mar 2022111Contact: SeongJae Park <sj@kernel.org>112Description: Writing a number 'N' to this file creates the number of113 directories for controlling each DAMON target of the context114 named '0' to 'N-1' under the contexts/ directory.115 116What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/targets/<T>/pid_target117Date: Mar 2022118Contact: SeongJae Park <sj@kernel.org>119Description: Writing to and reading from this file sets and gets the pid of120 the target process if the context is for virtual address spaces121 monitoring, respectively.122 123What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/targets/<T>/regions/nr_regions124Date: Mar 2022125Contact: SeongJae Park <sj@kernel.org>126Description: Writing a number 'N' to this file creates the number of127 directories for setting each DAMON target memory region of the128 context named '0' to 'N-1' under the regions/ directory. In129 case of the virtual address space monitoring, DAMON130 automatically sets the target memory region based on the target131 processes' mappings.132 133What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/targets/<T>/regions/<R>/start134Date: Mar 2022135Contact: SeongJae Park <sj@kernel.org>136Description: Writing to and reading from this file sets and gets the start137 address of the monitoring region.138 139What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/targets/<T>/regions/<R>/end140Date: Mar 2022141Contact: SeongJae Park <sj@kernel.org>142Description: Writing to and reading from this file sets and gets the end143 address of the monitoring region.144 145What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/nr_schemes146Date: Mar 2022147Contact: SeongJae Park <sj@kernel.org>148Description: Writing a number 'N' to this file creates the number of149 directories for controlling each DAMON-based operation scheme150 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>/action153Date: Mar 2022154Contact: SeongJae Park <sj@kernel.org>155Description: Writing to and reading from this file sets and gets the action156 of the scheme.157 158What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/target_nid159Date: Jun 2024160Contact: SeongJae Park <sj@kernel.org>161Description: Action's target NUMA node id. Supported by only relevant162 actions.163 164What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/apply_interval_us165Date: Sep 2023166Contact: SeongJae Park <sj@kernel.org>167Description: Writing a value to this file sets the action apply interval of168 the scheme in microseconds. Reading this file returns the169 value.170 171What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/sz/min172Date: Mar 2022173Contact: SeongJae Park <sj@kernel.org>174Description: Writing to and reading from this file sets and gets the minimum175 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/max178Date: Mar 2022179Contact: SeongJae Park <sj@kernel.org>180Description: Writing to and reading from this file sets and gets the maximum181 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/min184Date: Mar 2022185Contact: SeongJae Park <sj@kernel.org>186Description: Writing to and reading from this file sets and gets the manimum187 '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/max190Date: Mar 2022191Contact: SeongJae Park <sj@kernel.org>192Description: Writing to and reading from this file sets and gets the maximum193 'nr_accesses' of the scheme's target regions.194 195What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/age/min196Date: Mar 2022197Contact: SeongJae Park <sj@kernel.org>198Description: Writing to and reading from this file sets and gets the minimum199 'age' of the scheme's target regions.200 201What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/access_pattern/age/max202Date: Mar 2022203Contact: SeongJae Park <sj@kernel.org>204Description: Writing to and reading from this file sets and gets the maximum205 'age' of the scheme's target regions.206 207What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/ms208Date: Mar 2022209Contact: SeongJae Park <sj@kernel.org>210Description: Writing to and reading from this file sets and gets the time211 quota of the scheme in milliseconds.212 213What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/bytes214Date: Mar 2022215Contact: SeongJae Park <sj@kernel.org>216Description: Writing to and reading from this file sets and gets the size217 quota of the scheme in bytes.218 219What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/effective_bytes220Date: Feb 2024221Contact: SeongJae Park <sj@kernel.org>222Description: Reading from this file gets the effective size quota of the223 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_ms226Date: Mar 2022227Contact: SeongJae Park <sj@kernel.org>228Description: Writing to and reading from this file sets and gets the quotas229 charge reset interval of the scheme in milliseconds.230 231What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goals/nr_goals232Date: Nov 2023233Contact: SeongJae Park <sj@kernel.org>234Description: Writing a number 'N' to this file creates the number of235 directories for setting automatic tuning of the scheme's236 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_metric239Date: Feb 2024240Contact: SeongJae Park <sj@kernel.org>241Description: Writing to and reading from this file sets and gets the quota242 auto-tuning goal metric.243 244What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goals/<G>/target_value245Date: Nov 2023246Contact: SeongJae Park <sj@kernel.org>247Description: Writing to and reading from this file sets and gets the target248 value of the goal metric.249 250What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goals/<G>/current_value251Date: Nov 2023252Contact: SeongJae Park <sj@kernel.org>253Description: Writing to and reading from this file sets and gets the current254 value of the goal metric.255 256What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/weights/sz_permil257Date: Mar 2022258Contact: SeongJae Park <sj@kernel.org>259Description: Writing to and reading from this file sets and gets the260 under-quota limit regions prioritization weight for 'size' in261 permil.262 263What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/weights/nr_accesses_permil264Date: Mar 2022265Contact: SeongJae Park <sj@kernel.org>266Description: Writing to and reading from this file sets and gets the267 under-quota limit regions prioritization weight for268 'nr_accesses' in permil.269 270What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/weights/age_permil271Date: Mar 2022272Contact: SeongJae Park <sj@kernel.org>273Description: Writing to and reading from this file sets and gets the274 under-quota limit regions prioritization weight for 'age' in275 permil.276 277What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/metric278Date: Mar 2022279Contact: SeongJae Park <sj@kernel.org>280Description: Writing to and reading from this file sets and gets the metric281 of the watermarks for the scheme. The writable/readable282 keywords for this file are 'none' for disabling the watermarks283 feature, or 'free_mem_rate' for the system's global free memory284 rate in permil.285 286What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/interval_us287Date: Mar 2022288Contact: SeongJae Park <sj@kernel.org>289Description: Writing to and reading from this file sets and gets the metric290 check interval of the watermarks for the scheme in291 microseconds.292 293What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/high294Date: Mar 2022295Contact: SeongJae Park <sj@kernel.org>296Description: Writing to and reading from this file sets and gets the high297 watermark of the scheme in permil.298 299What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/mid300Date: Mar 2022301Contact: SeongJae Park <sj@kernel.org>302Description: Writing to and reading from this file sets and gets the mid303 watermark of the scheme in permil.304 305What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/low306Date: Mar 2022307Contact: SeongJae Park <sj@kernel.org>308Description: Writing to and reading from this file sets and gets the low309 watermark of the scheme in permil.310 311What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/nr_filters312Date: Dec 2022313Contact: SeongJae Park <sj@kernel.org>314Description: Writing a number 'N' to this file creates the number of315 directories for setting filters of the scheme named '0' to316 'N-1' under the filters/ directory.317 318What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/type319Date: Dec 2022320Contact: SeongJae Park <sj@kernel.org>321Description: Writing to and reading from this file sets and gets the type of322 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_path328Date: Dec 2022329Contact: SeongJae Park <sj@kernel.org>330Description: If 'memcg' is written to the 'type' file, writing to and331 reading from this file sets and gets the path to the memory332 cgroup of the interest.333 334What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/addr_start335Date: Jul 2023336Contact: SeongJae Park <sj@kernel.org>337Description: If 'addr' is written to the 'type' file, writing to or reading338 from this file sets or gets the start address of the address339 range for the filter.340 341What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/addr_end342Date: Jul 2023343Contact: SeongJae Park <sj@kernel.org>344Description: If 'addr' is written to the 'type' file, writing to or reading345 from this file sets or gets the end address of the address346 range for the filter.347 348What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/target_idx349Date: Dec 2022350Contact: SeongJae Park <sj@kernel.org>351Description: If 'target' is written to the 'type' file, writing to or352 reading from this file sets or gets the index of the DAMON353 monitoring target of the interest.354 355What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/matching356Date: Dec 2022357Contact: SeongJae Park <sj@kernel.org>358Description: Writing 'Y' or 'N' to this file sets whether to filter out359 pages that do or do not match to the 'type' and 'memcg_path',360 respectively. Filter out means the action of the scheme will361 not be applied to.362 363What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/nr_tried364Date: Mar 2022365Contact: SeongJae Park <sj@kernel.org>366Description: Reading this file returns the number of regions that the action367 of the scheme has tried to be applied.368 369What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/sz_tried370Date: Mar 2022371Contact: SeongJae Park <sj@kernel.org>372Description: Reading this file returns the total size of regions that the373 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_applied376Date: Mar 2022377Contact: SeongJae Park <sj@kernel.org>378Description: Reading this file returns the number of regions that the action379 of the scheme has successfully applied.380 381What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/sz_applied382Date: Mar 2022383Contact: SeongJae Park <sj@kernel.org>384Description: Reading this file returns the total size of regions that the385 action of the scheme has successfully applied in bytes.386 387What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/qt_exceeds388Date: Mar 2022389Contact: SeongJae Park <sj@kernel.org>390Description: Reading this file returns the number of the exceed events of391 the scheme's quotas.392 393What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/total_bytes394Date: Jul 2023395Contact: SeongJae Park <sj@kernel.org>396Description: Reading this file returns the total amount of memory that397 corresponding DAMON-based Operation Scheme's action has tried398 to be applied.399 400What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/start401Date: Oct 2022402Contact: SeongJae Park <sj@kernel.org>403Description: Reading this file returns the start address of a memory region404 that corresponding DAMON-based Operation Scheme's action has405 tried to be applied.406 407What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/end408Date: Oct 2022409Contact: SeongJae Park <sj@kernel.org>410Description: Reading this file returns the end address of a memory region411 that corresponding DAMON-based Operation Scheme's action has412 tried to be applied.413 414What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/nr_accesses415Date: Oct 2022416Contact: SeongJae Park <sj@kernel.org>417Description: Reading this file returns the 'nr_accesses' of a memory region418 that corresponding DAMON-based Operation Scheme's action has419 tried to be applied.420 421What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/age422Date: Oct 2022423Contact: SeongJae Park <sj@kernel.org>424Description: Reading this file returns the 'age' of a memory region that425 corresponding DAMON-based Operation Scheme's action has tried426 to be applied.427