mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
Docs/mm/damon/design: document data attributes monitoring
Update DAMON design document for newly added data attributes monitoring feature. Link: https://lore.kernel.org/20260518234119.97569-21-sj@kernel.org Signed-off-by: SeongJae Park <sj@kernel.org> Cc: David Hildenbrand <david@kernel.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Liam R. Howlett <liam@infradead.org> Cc: Lorenzo Stoakes <ljs@kernel.org> Cc: "Masami Hiramatsu (Google)" <mhiramat@kernel.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Mike Rapoport <rppt@kernel.org> Cc: Shuah Khan <shuah@kernel.org> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Vlastimil Babka <vbabka@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
14885da09b
commit
f4e9895423
|
|
@ -276,6 +276,43 @@ interval``, DAMON checks if the region's size and access frequency
|
|||
(``nr_accesses``) has significantly changed. If so, the counter is reset to
|
||||
zero. Otherwise, the counter is increased.
|
||||
|
||||
Data Attributes Monitoring
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Data access pattern is only one type of data attributes. In some use cases,
|
||||
users need to know more data attributes information. For example, users may
|
||||
need to know how much of a given hot or cold memory region is backed by
|
||||
anonymous pages, or belong to a specific cgroup. For such use case, data
|
||||
attributes monitoring feature is provided.
|
||||
|
||||
Using the feature, users can register data attributes of their interest to the
|
||||
DAMON :ref:`context <damon_design_execution_model_and_data_structures>`. The
|
||||
registration is made by specifying a probe per attribute. Each of the probe
|
||||
specifies a rule to determine if a given memory region has the related
|
||||
attribute. The rule is constructed with multiple filters. The filters work
|
||||
same to :ref:`DAMOS filters <damon_design_damos_filters>` except the supported
|
||||
filter types. Currently only ``anon`` filter type is supported for data
|
||||
attributes monitoring.
|
||||
|
||||
If such probes are registered, DAMON executes the probes for each region's
|
||||
sampling memory when it does the access :ref:`sampling
|
||||
<damon_design_region_based_sampling>`. The number of samples that identified
|
||||
as having the data attribute (hitting the probe) per :ref:`aggregation interval
|
||||
<damon_design_monitoring>` is accounted in a per-region per-probe counter.
|
||||
Users can therefore know how much of a given DAMON region has a specific data
|
||||
attribute by reading the per-region per-probe probe hits counter after each
|
||||
aggregation interval.
|
||||
|
||||
This is a sampling based mechanism. Hence, it is lightweight but the output
|
||||
may include some measurement errors. The output should be used with good
|
||||
understanding of statistics.
|
||||
|
||||
Another way to do this for higher accuracy is using :ref:`DAMOS filter
|
||||
<damon_design_damos_filters>` with ``stat`` :ref:`action
|
||||
<damon_design_damos_action>` and ``sz_ops_filter_passed`` :ref:`stat
|
||||
<damon_design_damos_stat>`. This approach provides the data attributes
|
||||
information in page level. But, because it is operated in page level, the
|
||||
overhead is proportional to the size of the memory.
|
||||
|
||||
Dynamic Target Space Updates Handling
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user