51 lines
2.2 KiB
ReStructuredText
51 lines
2.2 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0
|
|
|
|
==========================
|
|
Frequently Asked Questions
|
|
==========================
|
|
|
|
Why a new subsystem, instead of extending perf or other user space tools?
|
|
=========================================================================
|
|
|
|
First, because it needs to be lightweight as much as possible so that it can be
|
|
used online, any unnecessary overhead such as kernel - user space context
|
|
switching cost should be avoided. Second, DAMON aims to be used by other
|
|
programs including the kernel. Therefore, having a dependency on specific
|
|
tools like perf is not desirable. These are the two biggest reasons why DAMON
|
|
is implemented in the kernel space.
|
|
|
|
|
|
Can 'idle pages tracking' or 'perf mem' substitute DAMON?
|
|
=========================================================
|
|
|
|
Idle page tracking is a low level primitive for access check of the physical
|
|
address space. 'perf mem' is similar, though it can use sampling to minimize
|
|
the overhead. On the other hand, DAMON is a higher-level framework for the
|
|
monitoring of various address spaces. It is focused on memory management
|
|
optimization and provides sophisticated accuracy/overhead handling mechanisms.
|
|
Therefore, 'idle pages tracking' and 'perf mem' could provide a subset of
|
|
DAMON's output, but cannot substitute DAMON.
|
|
|
|
|
|
Does DAMON support virtual memory only?
|
|
=======================================
|
|
|
|
No. The core of the DAMON is address space independent. The address space
|
|
specific low level primitive parts including monitoring target regions
|
|
constructions and actual access checks can be implemented and configured on the
|
|
DAMON core by the users. In this way, DAMON users can monitor any address
|
|
space with any access check technique.
|
|
|
|
Nonetheless, DAMON provides vma/rmap tracking and PTE Accessed bit check based
|
|
implementations of the address space dependent functions for the virtual memory
|
|
and the physical memory by default, for a reference and convenient use.
|
|
|
|
|
|
Can I simply monitor page granularity?
|
|
======================================
|
|
|
|
Yes. You can do so by setting the ``min_nr_regions`` attribute higher than the
|
|
working set size divided by the page size. Because the monitoring target
|
|
regions size is forced to be ``>=page size``, the region split will make no
|
|
effect.
|