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