All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] docs/zh_CN: add vm damon translation
@ 2022-01-13  3:18 Yanteng Si
  2022-01-13  3:18 ` [PATCH 1/4] docs/zh_CN: add damon index tronslation Yanteng Si
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Yanteng Si @ 2022-01-13  3:18 UTC (permalink / raw)
  To: corbet, alexs, seakeel
  Cc: Yanteng Si, tangyizhou, chenhuacai, jiaxun.yang, linux-doc, siyanteng01

All guys, let's study damon together.

Translate .../vm/damon/* into Chinese.

Yanteng Si (4):
  docs/zh_CN: add damon index tronslation
  docs/zh_CN: add damon faq translation
  docs/zh_CN: add damon design translation
  docs/zh_CN: add damon api translation

 .../translations/zh_CN/vm/damon/api.rst       |  32 ++++
 .../translations/zh_CN/vm/damon/design.rst    | 139 ++++++++++++++++++
 .../translations/zh_CN/vm/damon/faq.rst       |  48 ++++++
 .../translations/zh_CN/vm/damon/index.rst     |  33 +++++
 Documentation/translations/zh_CN/vm/index.rst |   2 +-
 5 files changed, 253 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/translations/zh_CN/vm/damon/api.rst
 create mode 100644 Documentation/translations/zh_CN/vm/damon/design.rst
 create mode 100644 Documentation/translations/zh_CN/vm/damon/faq.rst
 create mode 100644 Documentation/translations/zh_CN/vm/damon/index.rst

-- 
2.27.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/4] docs/zh_CN: add damon index tronslation
  2022-01-13  3:18 [PATCH 0/4] docs/zh_CN: add vm damon translation Yanteng Si
@ 2022-01-13  3:18 ` Yanteng Si
  2022-01-14  2:51   ` Alex Shi
  2022-01-13  3:18 ` [PATCH 2/4] docs/zh_CN: add damon faq translation Yanteng Si
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Yanteng Si @ 2022-01-13  3:18 UTC (permalink / raw)
  To: corbet, alexs, seakeel
  Cc: Yanteng Si, tangyizhou, chenhuacai, jiaxun.yang, linux-doc, siyanteng01

1) Translate .../vm/damon/index.rst into Chinese.
2) add damon into .../zh_CN/vm/index.rst

Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
 .../translations/zh_CN/vm/damon/index.rst     | 33 +++++++++++++++++++
 Documentation/translations/zh_CN/vm/index.rst |  2 +-
 2 files changed, 34 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/translations/zh_CN/vm/damon/index.rst

diff --git a/Documentation/translations/zh_CN/vm/damon/index.rst b/Documentation/translations/zh_CN/vm/damon/index.rst
new file mode 100644
index 000000000000..9a7b4ea91cb8
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/damon/index.rst
@@ -0,0 +1,33 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/damon/index.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+
+==========================
+DAMON:数据访问监视器
+==========================
+
+DAMON是Linux内核的一个数据访问监控框架子系统。DAMON的核心机制使其成为
+(该核心机制详见(Documentation/translations/zh_CN/vm/damon/design.rst))
+
+ - *准确度* (监测输出对DRAM级别的内存管理足够有用;但可能不适合CPU Cache级别),
+ - *轻量级* (监控开销低到可以在线应用),以及
+ - *可扩展* (无论目标工作负载的大小,开销的上限值都在恒定范围内)。
+
+因此,利用这个框架,内核的内存管理机制可以做出高级决策。会导致高数据访问监控开销的实
+验性内存管理优化工作可以再次进行。同时,在用户空间,有一些特殊工作负载的用户可以编写
+个性化的应用程序,以便更好地了解和优化他们的工作负载和系统。
+
+.. toctree::
+   :maxdepth: 2
+
+TODOLIST:
+*   faq
+*   design
+*   api
diff --git a/Documentation/translations/zh_CN/vm/index.rst b/Documentation/translations/zh_CN/vm/index.rst
index fc39f0d60318..432bc3ef1c18 100644
--- a/Documentation/translations/zh_CN/vm/index.rst
+++ b/Documentation/translations/zh_CN/vm/index.rst
@@ -23,10 +23,10 @@ TODO:待引用文档集被翻译完毕后请及时修改此处)
 
    active_mm
    balance
+   damon/index
 
 TODOLIST:
 * arch_pgtable_helpers
-* damon/index
 * free_page_reporting
 * frontswap
 * highmem
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/4] docs/zh_CN: add damon faq translation
  2022-01-13  3:18 [PATCH 0/4] docs/zh_CN: add vm damon translation Yanteng Si
  2022-01-13  3:18 ` [PATCH 1/4] docs/zh_CN: add damon index tronslation Yanteng Si
@ 2022-01-13  3:18 ` Yanteng Si
  2022-01-14  2:52   ` Alex Shi
  2022-01-13  3:18 ` [PATCH 3/4] docs/zh_CN: add damon design translation Yanteng Si
  2022-01-13  3:18 ` [PATCH 4/4] docs/zh_CN: add damon api translation Yanteng Si
  3 siblings, 1 reply; 9+ messages in thread
From: Yanteng Si @ 2022-01-13  3:18 UTC (permalink / raw)
  To: corbet, alexs, seakeel
  Cc: Yanteng Si, tangyizhou, chenhuacai, jiaxun.yang, linux-doc, siyanteng01

Translate .../vm/damon/faq.rst into Chinese.

Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
 .../translations/zh_CN/vm/damon/faq.rst       | 48 +++++++++++++++++++
 .../translations/zh_CN/vm/damon/index.rst     |  4 +-
 2 files changed, 51 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/translations/zh_CN/vm/damon/faq.rst

diff --git a/Documentation/translations/zh_CN/vm/damon/faq.rst b/Documentation/translations/zh_CN/vm/damon/faq.rst
new file mode 100644
index 000000000000..07b4ac19407d
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/damon/faq.rst
@@ -0,0 +1,48 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/damon/faq.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+
+========
+常见问题
+========
+
+为什么是一个新的子系统,而不是扩展perf或其他用户空间工具?
+==========================================================
+
+首先,因为它需要尽可能的轻量级,以便可以在线使用,所以应该避免任何不必要的开销,如内核-用户
+空间的上下文切换成本。第二,DAMON的目标是被包括内核在内的其他程序所使用。因此,对特定工具
+(如perf)的依赖性是不可取的。这就是DAMON在内核空间实现的两个最大的原因。
+
+
+“闲置页面跟踪” 或 “perf mem” 可以替代DAMON吗?
+==============================================
+
+闲置页跟踪是物理地址空间访问检查的一个低层次的原始方法。“perf mem”也是类似的,尽管它可以
+使用采样来减少开销。另一方面,DAMON是一个更高层次的框架,用于监控各种地址空间。它专注于内
+存管理优化,并提供复杂的精度/开销处理机制。因此,“空闲页面跟踪” 和 “perf mem” 可以提供
+DAMON输出的一个子集,但不能替代DAMON。
+
+
+DAMON是否只支持虚拟内存?
+=========================
+
+不,DAMON的核心是独立于地址空间的。用户可以在DAMON核心上实现和配置特定地址空间的低级原始
+部分,包括监测目标区域的构造和实际的访问检查。通过这种方式,DAMON用户可以用任何访问检查技
+术来监测任何地址空间。
+
+尽管如此,DAMON默认为虚拟内存和物理内存提供了基于vma/rmap跟踪和PTE访问位检查的地址空间
+相关功能的实现,以供参考和方便使用。
+
+
+我可以简单地监测页面的粒度吗?
+==============================
+
+是的,你可以通过设置 ``min_nr_regions`` 属性高于工作集大小除以页面大小的值来实现。
+因为监视目标区域的大小被强制为 ``>=page size`` ,所以区域分割不会产生任何影响。
diff --git a/Documentation/translations/zh_CN/vm/damon/index.rst b/Documentation/translations/zh_CN/vm/damon/index.rst
index 9a7b4ea91cb8..dfa82244cbe8 100644
--- a/Documentation/translations/zh_CN/vm/damon/index.rst
+++ b/Documentation/translations/zh_CN/vm/damon/index.rst
@@ -27,7 +27,9 @@ DAMON是Linux内核的一个数据访问监控框架子系统。DAMON的核心
 .. toctree::
    :maxdepth: 2
 
+   faq
+
 TODOLIST:
-*   faq
+
 *   design
 *   api
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/4] docs/zh_CN: add damon design translation
  2022-01-13  3:18 [PATCH 0/4] docs/zh_CN: add vm damon translation Yanteng Si
  2022-01-13  3:18 ` [PATCH 1/4] docs/zh_CN: add damon index tronslation Yanteng Si
  2022-01-13  3:18 ` [PATCH 2/4] docs/zh_CN: add damon faq translation Yanteng Si
@ 2022-01-13  3:18 ` Yanteng Si
  2022-01-14  2:52   ` Alex Shi
  2022-01-13  3:18 ` [PATCH 4/4] docs/zh_CN: add damon api translation Yanteng Si
  3 siblings, 1 reply; 9+ messages in thread
From: Yanteng Si @ 2022-01-13  3:18 UTC (permalink / raw)
  To: corbet, alexs, seakeel
  Cc: Yanteng Si, tangyizhou, chenhuacai, jiaxun.yang, linux-doc, siyanteng01

Translate .../vm/damon/design.rst into Chinese.

Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
 .../translations/zh_CN/vm/damon/design.rst    | 139 ++++++++++++++++++
 .../translations/zh_CN/vm/damon/index.rst     |   2 +-
 2 files changed, 140 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/translations/zh_CN/vm/damon/design.rst

diff --git a/Documentation/translations/zh_CN/vm/damon/design.rst b/Documentation/translations/zh_CN/vm/damon/design.rst
new file mode 100644
index 000000000000..05f66c02740a
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/damon/design.rst
@@ -0,0 +1,139 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/damon/design.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+
+====
+设计
+====
+
+可配置的层
+==========
+
+DAMON提供了数据访问监控功能,同时使其准确性和开销可控。基本的访问监控需要依赖于目标地址空间
+并为之优化的基元。另一方面,作为DAMON的核心,准确性和开销的权衡机制是在纯逻辑空间中。DAMON
+将这两部分分离在不同的层中,并定义了它的接口,以允许各种低层次的基元实现与核心逻辑的配置。
+
+由于这种分离的设计和可配置的接口,用户可以通过配置核心逻辑和适当的低级基元实现来扩展DAMON的
+任何地址空间。如果没有提供合适的,用户可以自己实现基元。
+
+例如,物理内存、虚拟内存、交换空间、那些特定的进程、NUMA节点、文件和支持的内存设备将被支持。
+另外,如果某些架构或设备支持特殊的优化访问检查基元,这些基元将很容易被配置。
+
+
+特定地址空间基元的参考实现
+==========================
+
+基本访问监测的低级基元被定义为两部分。:
+
+1. 确定地址空间的监测目标地址范围
+2. 目标空间中特定地址范围的访问检查。
+
+DAMON目前为物理和虚拟地址空间提供了基元的实现。下面两个小节描述了这些工作的方式。
+
+
+基于VMA的目标地址范围构造
+-------------------------
+
+这仅仅是针对虚拟地址空间基元的实现。对于物理地址空间,只是要求用户手动设置监控目标地址范围。
+
+在进程的超级巨大的虚拟地址空间中,只有小部分被映射到物理内存并被访问。因此,跟踪未映射的地
+址区域只是一种浪费。然而,由于DAMON可以使用自适应区域调整机制来处理一定程度的噪声,所以严
+格来说,跟踪每一个映射并不是必须的,但在某些情况下甚至会产生很高的开销。也就是说,监测目标
+内部过于巨大的未映射区域应该被移除,以不占用自适应机制的时间。
+
+出于这个原因,这个实现将复杂的映射转换为三个不同的区域,覆盖地址空间的每个映射区域。这三个
+区域之间的两个空隙是给定地址空间中两个最大的未映射区域。这两个最大的未映射区域是堆和最上面
+的mmap()区域之间的间隙,以及在大多数情况下最下面的mmap()区域和堆之间的间隙。因为这些间隙
+在通常的地址空间中是异常巨大的,排除这些间隙就足以做出合理的权衡。下面详细说明了这一点::
+
+    <heap>
+    <BIG UNMAPPED REGION 1>
+    <uppermost mmap()-ed region>
+    (small mmap()-ed regions and munmap()-ed regions)
+    <lowermost mmap()-ed region>
+    <BIG UNMAPPED REGION 2>
+    <stack>
+
+
+基于PTE访问位的访问检查
+-----------------------
+
+物理和虚拟地址空间的实现都使用PTE Accessed-bit进行基本访问检查。唯一的区别在于从地址中
+找到相关的PTE访问位的方式。虚拟地址的实现是为该地址的目标任务查找页表,而物理地址的实现则
+是查找与该地址有映射关系的每一个页表。通过这种方式,实现者找到并清除下一个采样目标地址的位,
+并检查该位是否在一个采样周期后再次设置。这可能会干扰其他使用访问位的内核子系统,即空闲页跟
+踪和回收逻辑。为了避免这种干扰,DAMON使其与空闲页面跟踪相互排斥,并使用 ``PG_idle`` 和
+``PG_young`` 页面标志来解决与回收逻辑的冲突,就像空闲页面跟踪那样。
+
+
+独立于地址空间的核心机制
+========================
+
+下面四个部分分别描述了DAMON的核心机制和五个监测属性,即 ``采样间隔`` 、 ``聚集间隔`` 、
+``区域更新间隔`` 、 ``最小区域数`` 和 ``最大区域数`` 。
+
+
+访问频率监测
+------------
+
+DAMON的输出显示了在给定的时间内哪些页面的访问频率是多少。访问频率的分辨率是通过设置
+``采样间隔`` 和 ``聚集间隔`` 来控制的。详细地说,DAMON检查每个 ``采样间隔`` 对每
+个页面的访问,并将结果汇总。换句话说,计算每个页面的访问次数。在每个 ``聚合间隔`` 过
+去后,DAMON调用先前由用户注册的回调函数,以便用户可以阅读聚合的结果,然后再清除这些结
+果。这可以用以下简单的伪代码来描述::
+
+    while monitoring_on:
+        for page in monitoring_target:
+            if accessed(page):
+                nr_accesses[page] += 1
+        if time() % aggregation_interval == 0:
+            for callback in user_registered_callbacks:
+                callback(monitoring_target, nr_accesses)
+            for page in monitoring_target:
+                nr_accesses[page] = 0
+        sleep(sampling interval)
+
+这种机制的监测开销将随着目标工作负载规模的增长而任意增加。
+
+
+基于区域的抽样调查
+------------------
+
+为了避免开销的无限制增加,DAMON将假定具有相同访问频率的相邻页面归入一个区域。只要保持
+这个假设(一个区域内的页面具有相同的访问频率),该区域内就只需要检查一个页面。因此,对
+于每个 ``采样间隔`` ,DAMON在每个区域中随机挑选一个页面,等待一个 ``采样间隔`` ,检
+查该页面是否同时被访问,如果被访问则增加该区域的访问频率。因此,监测开销是可以通过设置
+区域的数量来控制的。DAMON允许用户设置最小和最大的区域数量来进行权衡。
+
+然而,如果假设没有得到保证,这个方案就不能保持输出的质量。
+
+
+适应性区域调整
+--------------
+
+即使最初的监测目标区域被很好地构建以满足假设(同一区域内的页面具有相似的访问频率),数
+据访问模式也会被动态地改变。这将导致监测质量下降。为了尽可能地保持假设,DAMON根据每个
+区域的访问频率自适应地进行合并和拆分。
+
+对于每个 ``聚集区间`` ,它比较相邻区域的访问频率,如果频率差异较小,就合并这些区域。
+然后,在它报告并清除每个区域的聚合接入频率后,如果区域总数不超过用户指定的最大区域数,
+它将每个区域拆分为两个或三个区域。
+
+通过这种方式,DAMON提供了其最佳的质量和最小的开销,同时保持了用户为其权衡设定的界限。
+
+
+动态目标空间更新处理
+--------------------
+
+监测目标地址范围可以动态改变。例如,虚拟内存可以动态地被映射和解映射。物理内存可以被
+热插拔。
+
+由于在某些情况下变化可能相当频繁,DAMON检查动态内存映射的变化,并仅在用户指定的时间
+间隔( ``区域更新间隔`` )内将其应用于抽象的目标区域。
diff --git a/Documentation/translations/zh_CN/vm/damon/index.rst b/Documentation/translations/zh_CN/vm/damon/index.rst
index dfa82244cbe8..077db7e4326f 100644
--- a/Documentation/translations/zh_CN/vm/damon/index.rst
+++ b/Documentation/translations/zh_CN/vm/damon/index.rst
@@ -28,8 +28,8 @@ DAMON是Linux内核的一个数据访问监控框架子系统。DAMON的核心
    :maxdepth: 2
 
    faq
+   design
 
 TODOLIST:
 
-*   design
 *   api
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/4] docs/zh_CN: add damon api translation
  2022-01-13  3:18 [PATCH 0/4] docs/zh_CN: add vm damon translation Yanteng Si
                   ` (2 preceding siblings ...)
  2022-01-13  3:18 ` [PATCH 3/4] docs/zh_CN: add damon design translation Yanteng Si
@ 2022-01-13  3:18 ` Yanteng Si
  2022-01-14  2:53   ` Alex Shi
  3 siblings, 1 reply; 9+ messages in thread
From: Yanteng Si @ 2022-01-13  3:18 UTC (permalink / raw)
  To: corbet, alexs, seakeel
  Cc: Yanteng Si, tangyizhou, chenhuacai, jiaxun.yang, linux-doc, siyanteng01

Translate .../vm/damon/api.rst into Chinese.

Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
 .../translations/zh_CN/vm/damon/api.rst       | 32 +++++++++++++++++++
 .../translations/zh_CN/vm/damon/index.rst     |  4 +--
 2 files changed, 33 insertions(+), 3 deletions(-)
 create mode 100644 Documentation/translations/zh_CN/vm/damon/api.rst

diff --git a/Documentation/translations/zh_CN/vm/damon/api.rst b/Documentation/translations/zh_CN/vm/damon/api.rst
new file mode 100644
index 000000000000..21143eea4ebe
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/damon/api.rst
@@ -0,0 +1,32 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/damon/api.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+
+=======
+API参考
+=======
+
+内核空间的程序可以使用下面的API来使用DAMON的每个功能。你所需要做的就是引用 ``damon.h`` ,
+它位于源代码树的include/linux/。
+
+结构体
+======
+
+该API在以下内核代码中:
+
+include/linux/damon.h
+
+
+函数
+====
+
+该API在以下内核代码中:
+
+mm/damon/core.c
diff --git a/Documentation/translations/zh_CN/vm/damon/index.rst b/Documentation/translations/zh_CN/vm/damon/index.rst
index 077db7e4326f..84d36d90c9b0 100644
--- a/Documentation/translations/zh_CN/vm/damon/index.rst
+++ b/Documentation/translations/zh_CN/vm/damon/index.rst
@@ -29,7 +29,5 @@ DAMON是Linux内核的一个数据访问监控框架子系统。DAMON的核心
 
    faq
    design
+   api
 
-TODOLIST:
-
-*   api
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/4] docs/zh_CN: add damon index tronslation
  2022-01-13  3:18 ` [PATCH 1/4] docs/zh_CN: add damon index tronslation Yanteng Si
@ 2022-01-14  2:51   ` Alex Shi
  0 siblings, 0 replies; 9+ messages in thread
From: Alex Shi @ 2022-01-14  2:51 UTC (permalink / raw)
  To: Yanteng Si
  Cc: Jonathan Corbet, Alex Shi, Yanteng Si, Tang Yizhou, Huacai Chen,
	Jiaxun Yang, Linux Doc Mailing List

On Thu, Jan 13, 2022 at 11:21 AM Yanteng Si <siyanteng01@gmail.com> wrote:
>
> 1) Translate .../vm/damon/index.rst into Chinese.
> 2) add damon into .../zh_CN/vm/index.rst
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>

Reviewed-by: Alex Shi <alexs@kernel.org>
> ---
>  .../translations/zh_CN/vm/damon/index.rst     | 33 +++++++++++++++++++
>  Documentation/translations/zh_CN/vm/index.rst |  2 +-
>  2 files changed, 34 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/translations/zh_CN/vm/damon/index.rst
>
> diff --git a/Documentation/translations/zh_CN/vm/damon/index.rst b/Documentation/translations/zh_CN/vm/damon/index.rst
> new file mode 100644
> index 000000000000..9a7b4ea91cb8
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/damon/index.rst
> @@ -0,0 +1,33 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/damon/index.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +
> +==========================
> +DAMON:数据访问监视器
> +==========================
> +
> +DAMON是Linux内核的一个数据访问监控框架子系统。DAMON的核心机制使其成为
> +(该核心机制详见(Documentation/translations/zh_CN/vm/damon/design.rst))
> +
> + - *准确度* (监测输出对DRAM级别的内存管理足够有用;但可能不适合CPU Cache级别),
> + - *轻量级* (监控开销低到可以在线应用),以及
> + - *可扩展* (无论目标工作负载的大小,开销的上限值都在恒定范围内)。
> +
> +因此,利用这个框架,内核的内存管理机制可以做出高级决策。会导致高数据访问监控开销的实
> +验性内存管理优化工作可以再次进行。同时,在用户空间,有一些特殊工作负载的用户可以编写
> +个性化的应用程序,以便更好地了解和优化他们的工作负载和系统。
> +
> +.. toctree::
> +   :maxdepth: 2
> +
> +TODOLIST:
> +*   faq
> +*   design
> +*   api
> diff --git a/Documentation/translations/zh_CN/vm/index.rst b/Documentation/translations/zh_CN/vm/index.rst
> index fc39f0d60318..432bc3ef1c18 100644
> --- a/Documentation/translations/zh_CN/vm/index.rst
> +++ b/Documentation/translations/zh_CN/vm/index.rst
> @@ -23,10 +23,10 @@ TODO:待引用文档集被翻译完毕后请及时修改此处)
>
>     active_mm
>     balance
> +   damon/index
>
>  TODOLIST:
>  * arch_pgtable_helpers
> -* damon/index
>  * free_page_reporting
>  * frontswap
>  * highmem
> --
> 2.27.0
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/4] docs/zh_CN: add damon faq translation
  2022-01-13  3:18 ` [PATCH 2/4] docs/zh_CN: add damon faq translation Yanteng Si
@ 2022-01-14  2:52   ` Alex Shi
  0 siblings, 0 replies; 9+ messages in thread
From: Alex Shi @ 2022-01-14  2:52 UTC (permalink / raw)
  To: Yanteng Si
  Cc: Jonathan Corbet, Alex Shi, Yanteng Si, Tang Yizhou, Huacai Chen,
	Jiaxun Yang, Linux Doc Mailing List

On Thu, Jan 13, 2022 at 11:21 AM Yanteng Si <siyanteng01@gmail.com> wrote:
>
> Translate .../vm/damon/faq.rst into Chinese.
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>

Reviewed-by: Alex Shi <alexs@kernel.org>
> ---
>  .../translations/zh_CN/vm/damon/faq.rst       | 48 +++++++++++++++++++
>  .../translations/zh_CN/vm/damon/index.rst     |  4 +-
>  2 files changed, 51 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/translations/zh_CN/vm/damon/faq.rst
>
> diff --git a/Documentation/translations/zh_CN/vm/damon/faq.rst b/Documentation/translations/zh_CN/vm/damon/faq.rst
> new file mode 100644
> index 000000000000..07b4ac19407d
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/damon/faq.rst
> @@ -0,0 +1,48 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/damon/faq.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +
> +========
> +常见问题
> +========
> +
> +为什么是一个新的子系统,而不是扩展perf或其他用户空间工具?
> +==========================================================
> +
> +首先,因为它需要尽可能的轻量级,以便可以在线使用,所以应该避免任何不必要的开销,如内核-用户
> +空间的上下文切换成本。第二,DAMON的目标是被包括内核在内的其他程序所使用。因此,对特定工具
> +(如perf)的依赖性是不可取的。这就是DAMON在内核空间实现的两个最大的原因。
> +
> +
> +“闲置页面跟踪” 或 “perf mem” 可以替代DAMON吗?
> +==============================================
> +
> +闲置页跟踪是物理地址空间访问检查的一个低层次的原始方法。“perf mem”也是类似的,尽管它可以
> +使用采样来减少开销。另一方面,DAMON是一个更高层次的框架,用于监控各种地址空间。它专注于内
> +存管理优化,并提供复杂的精度/开销处理机制。因此,“空闲页面跟踪” 和 “perf mem” 可以提供
> +DAMON输出的一个子集,但不能替代DAMON。
> +
> +
> +DAMON是否只支持虚拟内存?
> +=========================
> +
> +不,DAMON的核心是独立于地址空间的。用户可以在DAMON核心上实现和配置特定地址空间的低级原始
> +部分,包括监测目标区域的构造和实际的访问检查。通过这种方式,DAMON用户可以用任何访问检查技
> +术来监测任何地址空间。
> +
> +尽管如此,DAMON默认为虚拟内存和物理内存提供了基于vma/rmap跟踪和PTE访问位检查的地址空间
> +相关功能的实现,以供参考和方便使用。
> +
> +
> +我可以简单地监测页面的粒度吗?
> +==============================
> +
> +是的,你可以通过设置 ``min_nr_regions`` 属性高于工作集大小除以页面大小的值来实现。
> +因为监视目标区域的大小被强制为 ``>=page size`` ,所以区域分割不会产生任何影响。
> diff --git a/Documentation/translations/zh_CN/vm/damon/index.rst b/Documentation/translations/zh_CN/vm/damon/index.rst
> index 9a7b4ea91cb8..dfa82244cbe8 100644
> --- a/Documentation/translations/zh_CN/vm/damon/index.rst
> +++ b/Documentation/translations/zh_CN/vm/damon/index.rst
> @@ -27,7 +27,9 @@ DAMON是Linux内核的一个数据访问监控框架子系统。DAMON的核心
>  .. toctree::
>     :maxdepth: 2
>
> +   faq
> +
>  TODOLIST:
> -*   faq
> +
>  *   design
>  *   api
> --
> 2.27.0
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/4] docs/zh_CN: add damon design translation
  2022-01-13  3:18 ` [PATCH 3/4] docs/zh_CN: add damon design translation Yanteng Si
@ 2022-01-14  2:52   ` Alex Shi
  0 siblings, 0 replies; 9+ messages in thread
From: Alex Shi @ 2022-01-14  2:52 UTC (permalink / raw)
  To: Yanteng Si
  Cc: Jonathan Corbet, Alex Shi, Yanteng Si, Tang Yizhou, Huacai Chen,
	Jiaxun Yang, Linux Doc Mailing List

On Thu, Jan 13, 2022 at 11:21 AM Yanteng Si <siyanteng01@gmail.com> wrote:
>
> Translate .../vm/damon/design.rst into Chinese.
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>

Reviewed-by: Alex Shi <alexs@kernel.org>
> ---
>  .../translations/zh_CN/vm/damon/design.rst    | 139 ++++++++++++++++++
>  .../translations/zh_CN/vm/damon/index.rst     |   2 +-
>  2 files changed, 140 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/translations/zh_CN/vm/damon/design.rst
>
> diff --git a/Documentation/translations/zh_CN/vm/damon/design.rst b/Documentation/translations/zh_CN/vm/damon/design.rst
> new file mode 100644
> index 000000000000..05f66c02740a
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/damon/design.rst
> @@ -0,0 +1,139 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/damon/design.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +
> +====
> +设计
> +====
> +
> +可配置的层
> +==========
> +
> +DAMON提供了数据访问监控功能,同时使其准确性和开销可控。基本的访问监控需要依赖于目标地址空间
> +并为之优化的基元。另一方面,作为DAMON的核心,准确性和开销的权衡机制是在纯逻辑空间中。DAMON
> +将这两部分分离在不同的层中,并定义了它的接口,以允许各种低层次的基元实现与核心逻辑的配置。
> +
> +由于这种分离的设计和可配置的接口,用户可以通过配置核心逻辑和适当的低级基元实现来扩展DAMON的
> +任何地址空间。如果没有提供合适的,用户可以自己实现基元。
> +
> +例如,物理内存、虚拟内存、交换空间、那些特定的进程、NUMA节点、文件和支持的内存设备将被支持。
> +另外,如果某些架构或设备支持特殊的优化访问检查基元,这些基元将很容易被配置。
> +
> +
> +特定地址空间基元的参考实现
> +==========================
> +
> +基本访问监测的低级基元被定义为两部分。:
> +
> +1. 确定地址空间的监测目标地址范围
> +2. 目标空间中特定地址范围的访问检查。
> +
> +DAMON目前为物理和虚拟地址空间提供了基元的实现。下面两个小节描述了这些工作的方式。
> +
> +
> +基于VMA的目标地址范围构造
> +-------------------------
> +
> +这仅仅是针对虚拟地址空间基元的实现。对于物理地址空间,只是要求用户手动设置监控目标地址范围。
> +
> +在进程的超级巨大的虚拟地址空间中,只有小部分被映射到物理内存并被访问。因此,跟踪未映射的地
> +址区域只是一种浪费。然而,由于DAMON可以使用自适应区域调整机制来处理一定程度的噪声,所以严
> +格来说,跟踪每一个映射并不是必须的,但在某些情况下甚至会产生很高的开销。也就是说,监测目标
> +内部过于巨大的未映射区域应该被移除,以不占用自适应机制的时间。
> +
> +出于这个原因,这个实现将复杂的映射转换为三个不同的区域,覆盖地址空间的每个映射区域。这三个
> +区域之间的两个空隙是给定地址空间中两个最大的未映射区域。这两个最大的未映射区域是堆和最上面
> +的mmap()区域之间的间隙,以及在大多数情况下最下面的mmap()区域和堆之间的间隙。因为这些间隙
> +在通常的地址空间中是异常巨大的,排除这些间隙就足以做出合理的权衡。下面详细说明了这一点::
> +
> +    <heap>
> +    <BIG UNMAPPED REGION 1>
> +    <uppermost mmap()-ed region>
> +    (small mmap()-ed regions and munmap()-ed regions)
> +    <lowermost mmap()-ed region>
> +    <BIG UNMAPPED REGION 2>
> +    <stack>
> +
> +
> +基于PTE访问位的访问检查
> +-----------------------
> +
> +物理和虚拟地址空间的实现都使用PTE Accessed-bit进行基本访问检查。唯一的区别在于从地址中
> +找到相关的PTE访问位的方式。虚拟地址的实现是为该地址的目标任务查找页表,而物理地址的实现则
> +是查找与该地址有映射关系的每一个页表。通过这种方式,实现者找到并清除下一个采样目标地址的位,
> +并检查该位是否在一个采样周期后再次设置。这可能会干扰其他使用访问位的内核子系统,即空闲页跟
> +踪和回收逻辑。为了避免这种干扰,DAMON使其与空闲页面跟踪相互排斥,并使用 ``PG_idle`` 和
> +``PG_young`` 页面标志来解决与回收逻辑的冲突,就像空闲页面跟踪那样。
> +
> +
> +独立于地址空间的核心机制
> +========================
> +
> +下面四个部分分别描述了DAMON的核心机制和五个监测属性,即 ``采样间隔`` 、 ``聚集间隔`` 、
> +``区域更新间隔`` 、 ``最小区域数`` 和 ``最大区域数`` 。
> +
> +
> +访问频率监测
> +------------
> +
> +DAMON的输出显示了在给定的时间内哪些页面的访问频率是多少。访问频率的分辨率是通过设置
> +``采样间隔`` 和 ``聚集间隔`` 来控制的。详细地说,DAMON检查每个 ``采样间隔`` 对每
> +个页面的访问,并将结果汇总。换句话说,计算每个页面的访问次数。在每个 ``聚合间隔`` 过
> +去后,DAMON调用先前由用户注册的回调函数,以便用户可以阅读聚合的结果,然后再清除这些结
> +果。这可以用以下简单的伪代码来描述::
> +
> +    while monitoring_on:
> +        for page in monitoring_target:
> +            if accessed(page):
> +                nr_accesses[page] += 1
> +        if time() % aggregation_interval == 0:
> +            for callback in user_registered_callbacks:
> +                callback(monitoring_target, nr_accesses)
> +            for page in monitoring_target:
> +                nr_accesses[page] = 0
> +        sleep(sampling interval)
> +
> +这种机制的监测开销将随着目标工作负载规模的增长而任意增加。
> +
> +
> +基于区域的抽样调查
> +------------------
> +
> +为了避免开销的无限制增加,DAMON将假定具有相同访问频率的相邻页面归入一个区域。只要保持
> +这个假设(一个区域内的页面具有相同的访问频率),该区域内就只需要检查一个页面。因此,对
> +于每个 ``采样间隔`` ,DAMON在每个区域中随机挑选一个页面,等待一个 ``采样间隔`` ,检
> +查该页面是否同时被访问,如果被访问则增加该区域的访问频率。因此,监测开销是可以通过设置
> +区域的数量来控制的。DAMON允许用户设置最小和最大的区域数量来进行权衡。
> +
> +然而,如果假设没有得到保证,这个方案就不能保持输出的质量。
> +
> +
> +适应性区域调整
> +--------------
> +
> +即使最初的监测目标区域被很好地构建以满足假设(同一区域内的页面具有相似的访问频率),数
> +据访问模式也会被动态地改变。这将导致监测质量下降。为了尽可能地保持假设,DAMON根据每个
> +区域的访问频率自适应地进行合并和拆分。
> +
> +对于每个 ``聚集区间`` ,它比较相邻区域的访问频率,如果频率差异较小,就合并这些区域。
> +然后,在它报告并清除每个区域的聚合接入频率后,如果区域总数不超过用户指定的最大区域数,
> +它将每个区域拆分为两个或三个区域。
> +
> +通过这种方式,DAMON提供了其最佳的质量和最小的开销,同时保持了用户为其权衡设定的界限。
> +
> +
> +动态目标空间更新处理
> +--------------------
> +
> +监测目标地址范围可以动态改变。例如,虚拟内存可以动态地被映射和解映射。物理内存可以被
> +热插拔。
> +
> +由于在某些情况下变化可能相当频繁,DAMON检查动态内存映射的变化,并仅在用户指定的时间
> +间隔( ``区域更新间隔`` )内将其应用于抽象的目标区域。
> diff --git a/Documentation/translations/zh_CN/vm/damon/index.rst b/Documentation/translations/zh_CN/vm/damon/index.rst
> index dfa82244cbe8..077db7e4326f 100644
> --- a/Documentation/translations/zh_CN/vm/damon/index.rst
> +++ b/Documentation/translations/zh_CN/vm/damon/index.rst
> @@ -28,8 +28,8 @@ DAMON是Linux内核的一个数据访问监控框架子系统。DAMON的核心
>     :maxdepth: 2
>
>     faq
> +   design
>
>  TODOLIST:
>
> -*   design
>  *   api
> --
> 2.27.0
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/4] docs/zh_CN: add damon api translation
  2022-01-13  3:18 ` [PATCH 4/4] docs/zh_CN: add damon api translation Yanteng Si
@ 2022-01-14  2:53   ` Alex Shi
  0 siblings, 0 replies; 9+ messages in thread
From: Alex Shi @ 2022-01-14  2:53 UTC (permalink / raw)
  To: Yanteng Si
  Cc: Jonathan Corbet, Alex Shi, Yanteng Si, Tang Yizhou, Huacai Chen,
	Jiaxun Yang, Linux Doc Mailing List

On Thu, Jan 13, 2022 at 11:21 AM Yanteng Si <siyanteng01@gmail.com> wrote:
>
> Translate .../vm/damon/api.rst into Chinese.
>
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>

Reviewed-by: Alex Shi <alexs@kernel.org>
> ---
>  .../translations/zh_CN/vm/damon/api.rst       | 32 +++++++++++++++++++
>  .../translations/zh_CN/vm/damon/index.rst     |  4 +--
>  2 files changed, 33 insertions(+), 3 deletions(-)
>  create mode 100644 Documentation/translations/zh_CN/vm/damon/api.rst
>
> diff --git a/Documentation/translations/zh_CN/vm/damon/api.rst b/Documentation/translations/zh_CN/vm/damon/api.rst
> new file mode 100644
> index 000000000000..21143eea4ebe
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/damon/api.rst
> @@ -0,0 +1,32 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/damon/api.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +
> +=======
> +API参考
> +=======
> +
> +内核空间的程序可以使用下面的API来使用DAMON的每个功能。你所需要做的就是引用 ``damon.h`` ,
> +它位于源代码树的include/linux/。
> +
> +结构体
> +======
> +
> +该API在以下内核代码中:
> +
> +include/linux/damon.h
> +
> +
> +函数
> +====
> +
> +该API在以下内核代码中:
> +
> +mm/damon/core.c
> diff --git a/Documentation/translations/zh_CN/vm/damon/index.rst b/Documentation/translations/zh_CN/vm/damon/index.rst
> index 077db7e4326f..84d36d90c9b0 100644
> --- a/Documentation/translations/zh_CN/vm/damon/index.rst
> +++ b/Documentation/translations/zh_CN/vm/damon/index.rst
> @@ -29,7 +29,5 @@ DAMON是Linux内核的一个数据访问监控框架子系统。DAMON的核心
>
>     faq
>     design
> +   api
>
> -TODOLIST:
> -
> -*   api
> --
> 2.27.0
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-01-14  2:53 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-13  3:18 [PATCH 0/4] docs/zh_CN: add vm damon translation Yanteng Si
2022-01-13  3:18 ` [PATCH 1/4] docs/zh_CN: add damon index tronslation Yanteng Si
2022-01-14  2:51   ` Alex Shi
2022-01-13  3:18 ` [PATCH 2/4] docs/zh_CN: add damon faq translation Yanteng Si
2022-01-14  2:52   ` Alex Shi
2022-01-13  3:18 ` [PATCH 3/4] docs/zh_CN: add damon design translation Yanteng Si
2022-01-14  2:52   ` Alex Shi
2022-01-13  3:18 ` [PATCH 4/4] docs/zh_CN: add damon api translation Yanteng Si
2022-01-14  2:53   ` Alex Shi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.