Documentation/admin-guide/mm/damon/start.rst

Source file repositories/reference/linux-study-clean/Documentation/admin-guide/mm/damon/start.rst

File Facts

System
Linux kernel
Corpus path
Documentation/admin-guide/mm/damon/start.rst
Extension
.rst
Size
8782 bytes
Lines
179
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

.. SPDX-License-Identifier: GPL-2.0

===============
Getting Started
===============

This document briefly describes how you can use DAMON by demonstrating its
default user space tool.  Please note that this document describes only a part
of its features for brevity.  Please refer to the usage `doc
<https://github.com/damonitor/damo/blob/next/USAGE.md>`_ of the tool for more
details.


Prerequisites
=============

Kernel
------

You should first ensure your system is running on a kernel built with
``CONFIG_DAMON_*=y``.


User Space Tool
---------------

For the demonstration, we will use the default user space tool for DAMON,
called DAMON Operator (DAMO).  It is available at
https://github.com/damonitor/damo.  The examples below assume that ``damo`` is on
your ``$PATH``.  It's not mandatory, though.

Because DAMO is using the sysfs interface (refer to :doc:`usage` for the
detail) of DAMON, you should ensure :doc:`sysfs </filesystems/sysfs>` is
mounted.


Snapshot Data Access Patterns
=============================

The commands below show the memory access pattern of a program at the moment of
the execution. ::

    $ git clone https://github.com/sjp38/masim; cd masim; make
    $ sudo damo start "./masim ./configs/stairs.cfg --quiet"
    $ sudo damo report access
    heatmap: 641111111000000000000000000000000000000000000000000000[...]33333333333333335557984444[...]7
    # min/max temperatures: -1,840,000,000, 370,010,000, column size: 3.925 MiB
    0   addr 86.182 TiB   size 8.000 KiB   access 0 %   age 14.900 s
    1   addr 86.182 TiB   size 8.000 KiB   access 60 %  age 0 ns
    2   addr 86.182 TiB   size 3.422 MiB   access 0 %   age 4.100 s
    3   addr 86.182 TiB   size 2.004 MiB   access 95 %  age 2.200 s
    4   addr 86.182 TiB   size 29.688 MiB  access 0 %   age 14.100 s
    5   addr 86.182 TiB   size 29.516 MiB  access 0 %   age 16.700 s
    6   addr 86.182 TiB   size 29.633 MiB  access 0 %   age 17.900 s
    7   addr 86.182 TiB   size 117.652 MiB access 0 %   age 18.400 s
    8   addr 126.990 TiB  size 62.332 MiB  access 0 %   age 9.500 s
    9   addr 126.990 TiB  size 13.980 MiB  access 0 %   age 5.200 s
    10  addr 126.990 TiB  size 9.539 MiB   access 100 % age 3.700 s
    11  addr 126.990 TiB  size 16.098 MiB  access 0 %   age 6.400 s
    12  addr 127.987 TiB  size 132.000 KiB access 0 %   age 2.900 s
    total size: 314.008 MiB
    $ sudo damo stop

The first command of the above example downloads and builds an artificial
memory access generator program called ``masim``.  The second command asks DAMO
to start the program via the given command and make DAMON monitors the newly
started process.  The third command retrieves the current snapshot of the
monitored access pattern of the process from DAMON and shows the pattern in a
human readable format.

Annotation

Implementation Notes