| From: SeongJae Park <sj@kernel.org> |
| Subject: Docs/mm/damon/design: document for intervals auto-tuning |
| Date: Mon, 3 Mar 2025 14:17:24 -0800 |
| |
| Document the design of DAMON sampling and aggregation intervals |
| auto-tuning. |
| |
| [sj@kernel.org: fix a typo on 'intervals auto-tuning' section] |
| Link: https://lkml.kernel.org/r/20250305182744.56125-1-sj@kernel.org |
| Link: https://lkml.kernel.org/r/20250303221726.484227-7-sj@kernel.org |
| Signed-off-by: SeongJae Park <sj@kernel.org> |
| Cc: Jonathan Corbet <corbet@lwn.net> |
| Cc: Stephen Rothwell <sfr@canb.auug.org.au> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| Documentation/mm/damon/design.rst | 46 ++++++++++++++++++++++++++++ |
| 1 file changed, 46 insertions(+) |
| |
| --- a/Documentation/mm/damon/design.rst~docs-mm-damon-design-document-for-intervals-auto-tuning |
| +++ a/Documentation/mm/damon/design.rst |
| @@ -313,6 +313,10 @@ sufficient for the given purpose, it sho |
| lowered. It is recommended to be set proportional to ``aggregation interval``. |
| By default, the ratio is set as ``1/20``, and it is still recommended. |
| |
| +Based on the manual tuning guide, DAMON provides more intuitive knob-based |
| +intervals auto tuning mechanism. Please refer to :ref:`the design document of |
| +the feature <damon_design_monitoring_intervals_autotuning>` for detail. |
| + |
| Refer to below documents for an example tuning based on the above guide. |
| |
| .. toctree:: |
| @@ -321,6 +325,48 @@ Refer to below documents for an example |
| monitoring_intervals_tuning_example |
| |
| |
| +.. _damon_design_monitoring_intervals_autotuning: |
| + |
| +Monitoring Intervals Auto-tuning |
| +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| + |
| +DAMON provides automatic tuning of the ``sampling interval`` and ``aggregation |
| +interval`` based on the :ref:`the tuning guide idea |
| +<damon_design_monitoring_params_tuning_guide>`. The tuning mechanism allows |
| +users to set the aimed amount of access events to observe via DAMON within |
| +given time interval. The target can be specified by the user as a ratio of |
| +DAMON-observed access events to the theoretical maximum amount of the events |
| +(``access_bp``) that measured within a given number of aggregations |
| +(``aggrs``). |
| + |
| +The DAMON-observed access events are calculated in byte granularity based on |
| +DAMON :ref:`region assumption <damon_design_region_based_sampling>`. For |
| +example, if a region of size ``X`` bytes of ``Y`` ``nr_accesses`` is found, it |
| +means ``X * Y`` access events are observed by DAMON. Theoretical maximum |
| +access events for the region is calculated in same way, but replacing ``Y`` |
| +with theoretical maximum ``nr_accesses``, which can be calculated as |
| +``aggregation interval / sampling interval``. |
| + |
| +The mechanism calculates the ratio of access events for ``aggrs`` aggregations, |
| +and increases or decrease the ``sampleing interval`` and ``aggregation |
| +interval`` in same ratio, if the observed access ratio is lower or higher than |
| +the target, respectively. The ratio of the intervals change is decided in |
| +proportion to the distance between current samples ratio and the target ratio. |
| + |
| +The user can further set the minimum and maximum ``sampling interval`` that can |
| +be set by the tuning mechanism using two parameters (``min_sample_us`` and |
| +``max_sample_us``). Because the tuning mechanism changes ``sampling interval`` |
| +and ``aggregation interval`` in same ratio always, the minimum and maximum |
| +``aggregation interval`` after each of the tuning changes can automatically set |
| +together. |
| + |
| +The tuning is turned off by default, and need to be set explicitly by the user. |
| +As a rule of thumbs and the Parreto principle, 4% access samples ratio target |
| +is recommended. Note that Parreto principle (80/20 rule) has applied twice. |
| +That is, assumes 4% (20% of 20%) DAMON-observed access events ratio (source) |
| +to capture 64% (80% multipled by 80%) real access events (outcomes). |
| + |
| + |
| .. _damon_design_damos: |
| |
| Operation Schemes |
| _ |