xref: /linux/Documentation/ABI/testing/sysfs-kernel-mm-damon (revision ad30469a841b50dbb541df4d6971d891f703c297)
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