Lines Matching +full:directory +full:- +full:based
1 .. SPDX-License-Identifier: GPL-2.0
9 - *DAMON user space tool.*
11 system administrators who want a just-working human-friendly interface.
12 Using this, users can use the DAMON’s major features in a human-friendly way.
17 - *sysfs interface.*
28 - *debugfs interface.*
32 - *Kernel Space Programming Interface.*
45 creates multiple directories and files under its sysfs directory,
47 from the files under the directory.
60 ---------------
63 figure, parents-children relations are represented with indentations, each
64 directory is having ``/`` suffix, and files in each directory are separated by
96 ----
99 has one directory named ``admin``. The directory contains the files for
101 having the root permission could use this directory.
104 ---------
106 The monitoring-related information including request specifications and results
110 Under the ``admin`` directory, one directory, ``kdamonds``, which has files for
111 controlling the kdamonds exist. In the beginning, this directory has only one
113 of child directories named ``0`` to ``N-1``. Each directory represents each
117 -------------
119 In each kdamond directory, two files (``state`` and ``pid``) and one directory
127 for each DAMON-based operation scheme of the kdamond. For details of the
132 ``contexts`` directory contains files for controlling the monitoring contexts
136 ----------------------
138 In the beginning, this directory has only one file, ``nr_contexts``. Writing a
140 ``0`` to ``N-1``. Each directory represents each monitoring context. At the
145 -------------
147 In each context directory, two files (``avail_operations`` and ``operations``)
154 ``avail_operations`` file. Based on the kernel configuration, the file will
157 - vaddr: Monitor virtual address spaces of specific processes
158 - fvaddr: Monitor fixed virtual address ranges
159 - paddr: Monitor the physical address space of the system
161 Please refer to :ref:`regions sysfs directory <sysfs_regions>` for detailed
170 ------------------------------
173 and efficiency of the monitoring are in ``monitoring_attrs`` directory.
175 directory.
177 Under ``intervals`` directory, three files for DAMON's sampling interval
179 (``update_us``) exist. You can set and get the values in micro-seconds by
182 Under ``nr_regions`` directory, two files for the lower-bound and upper-bound
191 ---------------------
193 In the beginning, this directory has only one file, ``nr_targets``. Writing a
195 to ``N-1``. Each directory represents each monitoring target.
198 ------------
200 In each target directory, one file (``pid_target``) and one directory
210 -------------------
225 as they want, by writing proper values to the files under this directory.
227 In the beginning, this directory has only one file, ``nr_regions``. Writing a
229 to ``N-1``. Each directory represents each initial monitoring target region.
232 ------------
234 In each region directory, you will find two files (``start`` and ``end``). You
239 ---------------------
241 For usual DAMON-based data access aware memory management optimizations, users
246 directory.
248 In the beginning, this directory has only one file, ``nr_schemes``. Writing a
250 to ``N-1``. Each directory represents each DAMON-based operation scheme.
253 ------------
255 In each scheme directory, four directories (``access_pattern``, ``quotas``,
262 - ``willneed``: Call ``madvise()`` for the region with ``MADV_WILLNEED``
263 - ``cold``: Call ``madvise()`` for the region with ``MADV_COLD``
264 - ``pageout``: Call ``madvise()`` for the region with ``MADV_PAGEOUT``
265 - ``hugepage``: Call ``madvise()`` for the region with ``MADV_HUGEPAGE``
266 - ``nohugepage``: Call ``madvise()`` for the region with ``MADV_NOHUGEPAGE``
267 - ``lru_prio``: Prioritize the region on its LRU lists.
268 - ``lru_deprio``: Deprioritize the region on its LRU lists.
269 - ``stat``: Do nothing but count the statistics
272 ---------------------------
274 The target access pattern of each DAMON-based operation scheme is constructed
279 Under the ``access_pattern`` directory, three directories (``sz``,
286 -------------------
297 regions of the ``target access pattern`` based on their size, access frequency,
301 Under ``quotas`` directory, three files (``ms``, ``bytes``,
302 ``reset_interval_ms``) and one directory (``weights``) having three files
308 frequency, and age in per-thousand unit by writing the values to the three
309 files under the ``weights`` directory.
312 -----------------------
314 To allow easy activation and deactivation of each scheme based on system
322 Under the watermarks directory, five files (``metric``, ``interval_us``,
329 - none: Ignore the watermarks
330 - free_mem_rate: System's free memory rate (per thousand)
337 ------------------
344 The statistics can be retrieved by reading the files under ``stats`` directory
403 ``rm_contexts`` under its debugfs directory, ``<debugfs>/damon/``.
407 ----------
423 ----------
453 ---------------------------------
459 file-mapped area. Or, some users can know the initial access pattern of their
475 example, below commands will set a couple of address ranges, ``1-100`` and
476 ``100-200`` as the initial monitoring target region of pid 42, which is the
478 ranges, ``20-40`` and ``50-100`` as that of pid 4242, which is the second one
497 -------
499 For usual DAMON-based data access aware memory management optimizations, users
519 min-size max-size min-acc max-acc min-age max-age
521 Specifically, bytes for the size of regions (``min-size`` and ``max-size``),
523 (``min-acc`` and ``max-acc``), number of aggregate intervals for the age of
524 regions (``min-age`` and ``max-age``) are specified. Note that the ranges are
534 - 0: Call ``madvise()`` for the region with ``MADV_WILLNEED``
535 - 1: Call ``madvise()`` for the region with ``MADV_COLD``
536 - 2: Call ``madvise()`` for the region with ``MADV_PAGEOUT``
537 - 3: Call ``madvise()`` for the region with ``MADV_HUGEPAGE``
538 - 4: Call ``madvise()`` for the region with ``MADV_NOHUGEPAGE``
539 - 5: Do nothing but count the statistics
558 regions of the ``target access pattern`` based on their size, access frequency,
567 Some schemes would need to run based on current value of the system's specific
576 - 0: Ignore the watermarks
577 - 1: System's free memory rate (per thousand)
620 --------------
636 Please note that you cannot write to the above-mentioned debugfs files while
638 an error code such as ``-EBUSY`` will be returned.
642 ---------------------
659 ---------------------------------
666 directory of the name on the DAMON debugfs directory. The directory will have
671 # ls: cannot access 'foo': No such file or directory
677 directory by putting the name of the context to the ``rm_contexts`` file. ::
681 # ls: cannot access 'foo': No such file or directory
684 root directory only.
698 # perf record -e damon:damon_aggregated &