Lines Matching refs:and
19 features by reading from and writing to special sysfs files. Therefore,
20 you can write and use your personalized DAMON sysfs wrapper programs that
26 :ref:`sysfs interface <sysfs_interface>`. If you depend on this and cannot
27 move, please report your usecase to damon@lists.linux.dev and
31 users can utilize every feature of DAMON most flexibly and efficiently by
42 creates multiple directories and files under its sysfs directory,
43 ``<sysfs>/kernel/mm/damon/``. You can control DAMON by writing to and reading
61 directory is having ``/`` suffix, and files in each directory are separated by
100 The root of the DAMON sysfs interface is ``<sysfs>/kernel/mm/damon/``, and it
108 The monitoring-related information including request specifications and results
110 called kdamond, and multiple kdamonds could run in parallel.
121 In each kdamond directory, two files (``state`` and ``pid``) and one directory
162 In each context directory, two files (``avail_operations`` and ``operations``)
163 and three directories (``monitoring_attrs``, ``targets``, and ``schemes``)
167 virtual address space and the physical address space. You can get the list of
180 You can set and get what type of monitoring operations DAMON will use for the
181 context by writing one of the keywords listed in ``avail_operations`` file and
190 and efficiency of the monitoring are in ``monitoring_attrs`` directory.
191 Specifically, two directories, ``intervals`` and ``nr_regions`` exist in this
195 (``sample_us``), aggregation interval (``aggr_us``), and update interval
196 (``update_us``) exist. You can set and get the values in micro-seconds by
197 writing to and reading from the files.
199 Under ``nr_regions`` directory, two files for the lower-bound and upper-bound
200 of DAMON's monitoring regions (``min`` and ``max``, respectively), which
201 controls the monitoring overhead, exist. You can set and get the values by
202 writing to and rading from the files.
204 For more details about the intervals and monitoring regions range, please refer
217 In each target directory, one file (``pid_target``) and one directory
230 the ``contexts/<N>/operations`` file), DAMON automatically sets and updates the
235 In contrast, DAMON do not automatically sets and updates the monitoring target
251 In each region directory, you will find two files (``start`` and ``end``). You
252 can set and get the start and end addresses of the initial monitoring target
253 region by writing to and reading from the files, respectively.
262 <damon_design_damos>`). Users can get and set the schemes by reading from and
273 ``watermarks``, ``filters``, ``stats``, and ``tried_regions``) and one file
276 The ``action`` file is for setting and getting the scheme's :ref:`action
277 <damon_design_damos_action>`. The keywords that can be written to and read
278 from the file and their meaning are as below.
284 Supported by ``vaddr`` and ``fvaddr`` operations set.
286 Supported by ``vaddr`` and ``fvaddr`` operations set.
288 Supported by ``vaddr``, ``fvaddr`` and ``paddr`` operations set.
290 Supported by ``vaddr`` and ``fvaddr`` operations set.
292 Supported by ``vaddr`` and ``fvaddr`` operations set.
307 ``nr_accesses``, and ``age``) each having two files (``min`` and ``max``)
308 exist. You can set and get the access pattern for the given scheme by writing
309 to and reading from the ``min`` and ``max`` files under ``sz``,
310 ``nr_accesses``, and ``age`` directories, respectively. Note that the ``min``
311 and the ``max`` form a closed interval.
320 ``reset_interval_ms``) and one directory (``weights``) having three files
321 (``sz_permil``, ``nr_accesses_permil``, and ``age_permil``) in it exist.
323 You can set the ``time quota`` in milliseconds, ``size quota`` in bytes, and
326 for applying the ``action`` to memory regions of the ``access_pattern``, and to
328 ``reset_interval_ms``. Setting both ``ms`` and ``bytes`` zero disables the
332 <damon_design_damos_quotas_prioritization>` for size, access frequency, and age
343 ``high``, ``mid``, and ``low``) for setting the metric, the time interval
344 between check of the metric, and the three watermarks exist. You can set and
347 Keywords and meanings of those that can be written to the ``metric`` file are
367 ``memcg_path``, ``addr_start``, ``addr_end``, and ``target_idx``. To ``type``
374 filtering, you can specify the start and end address of the range to
375 ``addr_start`` and ``addr_end`` files, respectively. For the DAMON monitoring
394 Note that ``anon`` and ``memcg`` filters are currently supported only when
400 difference is applied to :ref:`stats <damos_stats>` and
408 DAMON counts the total number and bytes of regions that each scheme is tried to
410 applied, and the total number of the quota limit exceeds. This statistics can
414 (``nr_tried``, ``sz_tried``, ``nr_applied``, ``sz_applied``, and
429 that reading it returns the total size of the scheme tried regions, and creates
435 ``nr_accesses``, and ``age`` of the region.
438 file will only update the ``total_bytes`` file, and will not create the
446 and query-like efficient data access monitoring results retrievals. For the
447 latter use case, in particular, users can set the ``action`` as ``stat`` and
454 ``nr_accesses``, and ``age``). Reading the files will show the start and end
455 addresses, ``nr_accesses``, and ``age`` of the region that corresponding
464 10ms per second, and also don't page out more than 1GiB per second. Under the
466 free memory rate of the system every 5 seconds, start the monitoring and paging
475 # # set the basic access pattern and the action
495 <https://github.com/awslabs/damo>`_ rather than manually reading and writing
508 :ref:`sysfs interface <sysfs_interface>`. If you depend on this and cannot
509 move, please report your usecase to damon@lists.linux.dev and
513 ``schemes``, ``monitor_on``, ``kdamond_pid``, ``mk_contexts`` and
520 Users can get and set the ``sampling interval``, ``aggregation interval``,
521 ``update interval``, and min/max number of monitoring target regions by
522 reading from and writing to the ``attrs`` file. To know about the monitoring
524 example, below commands set those values to 5 ms, 100 ms, 1,000 ms, 10 and
525 1000, and then check it again::
539 the targets to, and get the ids of the current targets by reading from the
542 commands set processes having pids 42 and 4242 as the monitoring targets and
566 In case of the virtual address space monitoring, DAMON automatically sets and
571 workloads and therefore want to set optimal initial regions for the 'adaptive
574 In contrast, DAMON do not automatically sets and updates the monitoring target
586 starting from ``0``, and the regions should be passed in address order. For
587 example, below commands will set a couple of address ranges, ``1-100`` and
589 first one (index ``0``) in ``target_ids``, and another couple of address
590 ranges, ``20-40`` and ``50-100`` as that of pid 4242, which is the second one
611 Users can get and set the DAMON-based operation :ref:`schemes
612 <damon_design_damos>` by reading from and writing to ``schemes`` debugfs file.
629 Specifically, bytes for the size of regions (``min-size`` and ``max-size``),
631 (``min-acc`` and ``max-acc``), number of aggregate intervals for the age of
632 regions (``min-age`` and ``max-age``) are specified. Note that the ranges are
639 <damon_design_damos_action>`. The supported numbers and their meanings are as
663 ``<reset interval>`` milliseconds, and to apply the action to only up to
665 ``<ms>`` and ``<sz>`` zero disables the quota limits.
682 supported numbers and their meanings are as below.
698 It also counts the total number and bytes of regions that each scheme is tried
700 applied, and the total number of the quota limit exceeds. This statistics can
704 will show each scheme you entered in each line, and the five numbers for the
713 10ms per second, and also don't page out more than 1GiB per second. Under the
715 free memory rate of the system every 5 seconds, start the monitoring and paging
720 # scheme="4096 8192 0 5 10 20 2" # target access pattern and action
731 start the monitoring. You can start, stop, and check the current status of the
732 monitoring by writing to and reading from the ``monitor_on`` file. Writing
735 process is terminated. Below example commands turn on, off, and check the
770 and remove monitoring contexts for multiple ``kdamond`` required use case using
771 the ``mk_contexts`` and ``rm_contexts`` files.
784 If the context is not needed anymore, you can remove it and the corresponding
791 Note that ``mk_contexts``, ``rm_contexts``, and ``monitor_on`` files are in the
804 monitoring is turned on, you could record the tracepoint events and show