[PATCH 0/6] update the translation of partial files in mm

4 views
Skip to first unread message

Dongliang Mu

unread,
Oct 19, 2024, 4:53:35 AM10/19/24
to si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, hust-os-ker...@googlegroups.com, Dongliang Mu
Dongliang Mu (6):
docs/zh_CN: update the translation of mm/hmm.rst
docs/zh_CN: update the translation of mm/active_mm.rst
docs/zh_CN: update the translation of mm/admon/faq.rst
docs/zh_CN: update the translation of mm/overcommit-accounting.rst
docs/zh_CN: update the translation of mm/page_table_check.rst
docs/zh_CN: update the translation of mm/page_owner.rst

.../translations/zh_CN/mm/active_mm.rst | 5 ++
.../translations/zh_CN/mm/damon/faq.rst | 17 -------
Documentation/translations/zh_CN/mm/hmm.rst | 8 +---
.../zh_CN/mm/overcommit-accounting.rst | 3 +-
.../translations/zh_CN/mm/page_owner.rst | 46 +++++++++++++++++++
.../zh_CN/mm/page_table_check.rst | 13 ++++++
6 files changed, 66 insertions(+), 26 deletions(-)

--
2.43.0

Dongliang Mu

unread,
Oct 19, 2024, 4:56:13 AM10/19/24
to si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, Dongliang Mu, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Update to commit 8430557fc584 ("mm/page_table_check: support
userfault wr-protect entries")

scripts/checktransupdate.py reports:

Documentation/translations/zh_CN/mm/page_table_check.rst
commit 8430557fc584 ("mm/page_table_check: support userfault wr-protect
entries")
commit 81a31a860bb6 ("mm: page_table_check: Make it dependent on
EXCLUSIVE_SYSTEM_RAM")
commit ee86588960e2 ("docs/mm: remove useless markup")
3 commits needs resolving in total

Signed-off-by: Dongliang Mu <dz...@hust.edu.cn>
---
.../translations/zh_CN/mm/page_table_check.rst | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/Documentation/translations/zh_CN/mm/page_table_check.rst b/Documentation/translations/zh_CN/mm/page_table_check.rst
index e8077310a76c..dc34570dceff 100644
--- a/Documentation/translations/zh_CN/mm/page_table_check.rst
+++ b/Documentation/translations/zh_CN/mm/page_table_check.rst
@@ -54,3 +54,16 @@

可以选择用PAGE_TABLE_CHECK_ENFORCED来构建内核,以便在没有额外的内核参数的情况下获得页表
支持。
+
+实现注意事项
+============
+
+我们特意决定不使用 VMA 信息,以避免依赖于 MM 状态(除了有限的 “struct page” 信息)。页表检查
+独立于 Linux-MM 状态机,它验证用户可访问的页面不会被错误地共享。
+
+PAGE_TABLE_CHECK 依赖于 EXCLUSIVE_SYSTEM_RAM。原因在于,若没有 EXCLUSIVE_SYSTEM_RAM,
+用户被允许通过 /dev/mem 将任意物理内存区域映射到用户空间。同时,页面可能在映射到用户空间期间
+改变自己的属性(例如,从匿名页面变为命名页面),导致页表检查检测到“损坏”。
+
+即使有 EXCLUSIVE_SYSTEM_RAM,I/O 页面可能仍然被允许通过 /dev/mem 映射。然而,这些页面始终
+被视为命名页面,所以它们不会破坏页表检查中使用的逻辑。
--
2.43.0

Dongliang Mu

unread,
Oct 19, 2024, 4:56:34 AM10/19/24
to si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, Dongliang Mu, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Update to commit 406c4c5ee4ea ("docs:mm: fix spelling mistakes in
heterogeneous memory management page")

scripts/checktransupdate.py reports:

Documentation/translations/zh_CN/mm/hmm.rst
commit 406c4c5ee4ea ("docs:mm: fix spelling mistakes in heterogeneous
memory management page")
commit 090a7f1009b8 ("docs/mm: remove references to hmm_mirror ops and
clean typos")
commit d56b699d76d1 ("Documentation: Fix typos")
3 commits needs resolving in total

Signed-off-by: Dongliang Mu <dz...@hust.edu.cn>
---
Documentation/translations/zh_CN/mm/hmm.rst | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/Documentation/translations/zh_CN/mm/hmm.rst b/Documentation/translations/zh_CN/mm/hmm.rst
index babbbe756c0f..0669f947d0bc 100644
--- a/Documentation/translations/zh_CN/mm/hmm.rst
+++ b/Documentation/translations/zh_CN/mm/hmm.rst
@@ -129,13 +129,7 @@ struct page可以与现有的 mm 机制进行最简单、最干净的集成。
int hmm_range_fault(struct hmm_range *range);

如果请求写访问,它将在丢失或只读条目上触发缺页异常(见下文)。缺页异常使用通用的 mm 缺
-页异常代码路径,就像 CPU 缺页异常一样。
-
-这两个函数都将 CPU 页表条目复制到它们的 pfns 数组参数中。该数组中的每个条目对应于虚拟
-范围中的一个地址。HMM 提供了一组标志来帮助驱动程序识别特殊的 CPU 页表项。
-
-在 sync_cpu_device_pagetables() 回调中锁定是驱动程序必须尊重的最重要的方面,以保
-持事物正确同步。使用模式是::
+页异常代码路径,就像 CPU 缺页异常一样。使用模式是::

int driver_populate_range(...)
{
--
2.43.0

Dongliang Mu

unread,
Oct 19, 2024, 4:56:35 AM10/19/24
to si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, Dongliang Mu, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Update to commit 88e3009b5283 ("lazy tlb: allow lazy tlb
mm refcounting to be configurable")

scripts/checktransupdate.py reports:

Documentation/translations/zh_CN/mm/active_mm.rst
commit 88e3009b5283 ("lazy tlb: allow lazy tlb mm refcounting
to be configurable")
commit ee86588960e2 ("docs/mm: remove useless markup")
2 commits needs resolving in total

Signed-off-by: Dongliang Mu <dz...@hust.edu.cn>
---
Documentation/translations/zh_CN/mm/active_mm.rst | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/Documentation/translations/zh_CN/mm/active_mm.rst b/Documentation/translations/zh_CN/mm/active_mm.rst
index c2816f523bd7..b3352668c4c8 100644
--- a/Documentation/translations/zh_CN/mm/active_mm.rst
+++ b/Documentation/translations/zh_CN/mm/active_mm.rst
@@ -13,6 +13,11 @@
Active MM
=========

+注意,在配置了 CONFIG_MMU_LAZY_TLB_REFCOUNT=n 的内核中,mm_count 引用计数
+可能不再包括“懒惰”用户(运行任务中 ->active_mm == mm && ->mm == NULL)。
+获取和释放这些懒惰引用必须使用 mmgrab_lazy_tlb() 和 mmdrop_lazy_tlb() 这
+两个辅助函数,它们抽象了这个配置选项。
+
这是一封linux之父回复开发者的一封邮件,所以翻译时我尽量保持邮件格式的完整。

::
--
2.43.0

Dongliang Mu

unread,
Oct 19, 2024, 4:56:35 AM10/19/24
to si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, Dongliang Mu, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Update to commit f5c12105c15f ("mm,page_owner: fix refcount imbalance")

Documentation/translations/zh_CN/mm/page_owner.rst
commit f5c12105c15f ("mm,page_owner: fix refcount imbalance")
commit ba6fe5377244 ("mm,page_owner: update Documentation regarding
page_owner_stacks")
2 commits needs resolving in total

Signed-off-by: Dongliang Mu <dz...@hust.edu.cn>
---
.../translations/zh_CN/mm/page_owner.rst | 46 +++++++++++++++++++
1 file changed, 46 insertions(+)

diff --git a/Documentation/translations/zh_CN/mm/page_owner.rst b/Documentation/translations/zh_CN/mm/page_owner.rst
index b72a972271d9..c0d1ca4b9695 100644
--- a/Documentation/translations/zh_CN/mm/page_owner.rst
+++ b/Documentation/translations/zh_CN/mm/page_owner.rst
@@ -26,6 +26,9 @@ page owner是用来追踪谁分配的每一个页面。它可以用来调试内
页面所有者也可以用于各种目的。例如,可以通过每个页面的gfp标志信息获得精确的碎片
统计。如果启用了page owner,它就已经实现并激活了。我们非常欢迎其他用途。

+它也可以用来显示所有的栈以及它们当前分配的基础页面数,这让我们能够快速了解内存的
+使用情况,而无需浏览所有页面并匹配分配和释放操作。
+
page owner在默认情况下是禁用的。所以,如果你想使用它,你需要在你的启动cmdline
中加入"page_owner=on"。如果内核是用page owner构建的,并且由于没有启用启动
选项而在运行时禁用page owner,那么运行时的开销是很小的。如果在运行时禁用,它不
@@ -60,6 +63,49 @@ page owner在默认情况下是禁用的。所以,如果你想使用它,你

4) 分析来自页面所有者的信息::

+ cat /sys/kernel/debug/page_owner_stacks/show_stacks > stacks.txt
+ cat stacks.txt
+ post_alloc_hook+0x177/0x1a0
+ get_page_from_freelist+0xd01/0xd80
+ __alloc_pages+0x39e/0x7e0
+ allocate_slab+0xbc/0x3f0
+ ___slab_alloc+0x528/0x8a0
+ kmem_cache_alloc+0x224/0x3b0
+ sk_prot_alloc+0x58/0x1a0
+ sk_alloc+0x32/0x4f0
+ inet_create+0x427/0xb50
+ __sock_create+0x2e4/0x650
+ inet_ctl_sock_create+0x30/0x180
+ igmp_net_init+0xc1/0x130
+ ops_init+0x167/0x410
+ setup_net+0x304/0xa60
+ copy_net_ns+0x29b/0x4a0
+ create_new_namespaces+0x4a1/0x820
+ nr_base_pages: 16
+ ...
+ ...
+ echo 7000 > /sys/kernel/debug/page_owner_stacks/count_threshold
+ cat /sys/kernel/debug/page_owner_stacks/show_stacks> stacks_7000.txt
+ cat stacks_7000.txt
+ post_alloc_hook+0x177/0x1a0
+ get_page_from_freelist+0xd01/0xd80
+ __alloc_pages+0x39e/0x7e0
+ alloc_pages_mpol+0x22e/0x490
+ folio_alloc+0xd5/0x110
+ filemap_alloc_folio+0x78/0x230
+ page_cache_ra_order+0x287/0x6f0
+ filemap_get_pages+0x517/0x1160
+ filemap_read+0x304/0x9f0
+ xfs_file_buffered_read+0xe6/0x1d0 [xfs]
+ xfs_file_read_iter+0x1f0/0x380 [xfs]
+ __kernel_read+0x3b9/0x730
+ kernel_read_file+0x309/0x4d0
+ __do_sys_finit_module+0x381/0x730
+ do_syscall_64+0x8d/0x150
+ entry_SYSCALL_64_after_hwframe+0x62/0x6a
+ nr_base_pages: 20824
+ ...
+
cat /sys/kernel/debug/page_owner > page_owner_full.txt
./page_owner_sort page_owner_full.txt sorted_page_owner.txt

--
2.43.0

Dongliang Mu

unread,
Oct 19, 2024, 4:56:35 AM10/19/24
to si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, Dongliang Mu, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Update to commit d17ff438a036 ("docs: mm: fix vm overcommit
documentation for OVERCOMMIT_GUESS")

scripts/checktransupdate.py reports:

Documentation/translations/zh_CN/mm/overcommit-accounting.rst
commit d17ff438a036 ("docs: mm: fix vm overcommit documentation
for OVERCOMMIT_GUESS")
1 commits needs resolving in total

Signed-off-by: Dongliang Mu <dz...@hust.edu.cn>
---
Documentation/translations/zh_CN/mm/overcommit-accounting.rst | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/Documentation/translations/zh_CN/mm/overcommit-accounting.rst b/Documentation/translations/zh_CN/mm/overcommit-accounting.rst
index d8452d8b7fbb..f136a8b81859 100644
--- a/Documentation/translations/zh_CN/mm/overcommit-accounting.rst
+++ b/Documentation/translations/zh_CN/mm/overcommit-accounting.rst
@@ -16,8 +16,7 @@ Linux内核支持下列超量使用处理模式

0
启发式超量使用处理。拒绝明显的地址空间超量使用。用于一个典型的系统。
- 它确保严重的疯狂分配失败,同时允许超量使用以减少swap的使用。在这种模式下,
- 允许root分配稍多的内存。这是默认的。
+ 它确保严重的疯狂分配失败,同时允许超量使用以减少swap的使用。这是默认的。
1
总是超量使用。适用于一些科学应用。经典的例子是使用稀疏数组的代码,只是依赖
几乎完全由零页组成的虚拟内存
--
2.43.0

Dongliang Mu

unread,
Oct 19, 2024, 4:56:35 AM10/19/24
to si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, Dongliang Mu, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Update to commit c6bb975aa60b ("Docs/mm/damon/faq: remove old questions")

scripts/checktransupdate.py reports:

Documentation/translations/zh_CN/mm/damon/faq.rst
commit c6bb975aa60b ("Docs/mm/damon/faq: remove old questions")
1 commits needs resolving in total

Signed-off-by: Dongliang Mu <dz...@hust.edu.cn>
---
.../translations/zh_CN/mm/damon/faq.rst | 17 -----------------
1 file changed, 17 deletions(-)

diff --git a/Documentation/translations/zh_CN/mm/damon/faq.rst b/Documentation/translations/zh_CN/mm/damon/faq.rst
index de4be417494a..234d63f4f072 100644
--- a/Documentation/translations/zh_CN/mm/damon/faq.rst
+++ b/Documentation/translations/zh_CN/mm/damon/faq.rst
@@ -13,23 +13,6 @@
常见问题
========

-为什么是一个新的子系统,而不是扩展perf或其他用户空间工具?
-==========================================================
-
-首先,因为它需要尽可能的轻量级,以便可以在线使用,所以应该避免任何不必要的开销,如内核-用户
-空间的上下文切换成本。第二,DAMON的目标是被包括内核在内的其他程序所使用。因此,对特定工具
-(如perf)的依赖性是不可取的。这就是DAMON在内核空间实现的两个最大的原因。
-
-
-“闲置页面跟踪” 或 “perf mem” 可以替代DAMON吗?
-==============================================
-
-闲置页跟踪是物理地址空间访问检查的一个低层次的原始方法。“perf mem”也是类似的,尽管它可以
-使用采样来减少开销。另一方面,DAMON是一个更高层次的框架,用于监控各种地址空间。它专注于内
-存管理优化,并提供复杂的精度/开销处理机制。因此,“空闲页面跟踪” 和 “perf mem” 可以提供
-DAMON输出的一个子集,但不能替代DAMON。
-
-
DAMON是否只支持虚拟内存?
=========================

--
2.43.0

Alex Shi

unread,
Oct 21, 2024, 9:43:21 PM10/21/24
to Dongliang Mu, si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Reviewed-by: Alex Shi <al...@kernel.org>

Alex Shi

unread,
Oct 21, 2024, 9:43:51 PM10/21/24
to Dongliang Mu, si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Reviewed-by: Alex Shi <al...@kernel.org>

On 10/19/24 16:54, Dongliang Mu wrote:

Alex Shi

unread,
Oct 21, 2024, 9:43:57 PM10/21/24
to Dongliang Mu, si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Reviewed-by: Alex Shi <al...@kernel.org>

On 10/19/24 16:54, Dongliang Mu wrote:

Alex Shi

unread,
Oct 21, 2024, 9:44:35 PM10/21/24
to Dongliang Mu, si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Reviewed-by: Alex Shi <al...@kernel.org>

On 10/19/24 16:54, Dongliang Mu wrote:

Alex Shi

unread,
Oct 21, 2024, 9:44:46 PM10/21/24
to Dongliang Mu, si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Reviewed-by: Alex Shi <al...@kernel.org>

On 10/19/24 16:54, Dongliang Mu wrote:

Alex Shi

unread,
Oct 21, 2024, 9:45:03 PM10/21/24
to Dongliang Mu, si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Reviewed-by: Alex Shi <al...@kernel.org>

On 10/19/24 16:54, Dongliang Mu wrote:

Alex Shi

unread,
Oct 21, 2024, 10:02:57 PM10/21/24
to Dongliang Mu, si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Reviewed-by: Alex Shi <al...@kernel.org>


On 10/19/24 16:54, Dongliang Mu wrote:

Alex Shi

unread,
Oct 21, 2024, 11:29:04 PM10/21/24
to Dongliang Mu, si.ya...@linux.dev, al...@kernel.org, cor...@lwn.net, Yanteng Si, hust-os-ker...@googlegroups.com, linu...@vger.kernel.org, linux-...@vger.kernel.org
Reviewed-by: Alex Shi <al...@kernel.org>

On 10/19/24 16:54, Dongliang Mu wrote:

Jonathan Corbet

unread,
Oct 24, 2024, 5:45:07 PM10/24/24
to Dongliang Mu, si.ya...@linux.dev, al...@kernel.org, hust-os-ker...@googlegroups.com, Dongliang Mu, linu...@vger.kernel.org, linux-...@vger.kernel.org
Series applied, thanks.

jon
Reply all
Reply to author
Forward
0 new messages