linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] docs/zh_CN: Update the translation of vm to 5.19-rc1
@ 2022-06-09 13:27 Yanteng Si
  2022-06-09 13:27 ` [PATCH 1/3] docs/zh_CN: Update the translation of highmem " Yanteng Si
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Yanteng Si @ 2022-06-09 13:27 UTC (permalink / raw)
  To: corbet, alexs, bobwxc, seakeel
  Cc: Yanteng Si, chenhuacai, jiaxun.yang, linux-doc, siyanteng01,
	zhoubinbin

Update .../zh_CN/vm/* to 5.19-rc1.

Yanteng Si (3):
  docs/zh_CN: Update the translation of highmem to 5.19-rc1
  docs/zh_CN: Update the translation of page_owner to 5.19-rc1
  docs/zh_CN: Update the translation of vm index to 5.19-rc1

 .../translations/zh_CN/vm/bootmem.rst         | 13 ++++
 .../translations/zh_CN/vm/highmem.rst         | 77 +++++++++++--------
 Documentation/translations/zh_CN/vm/index.rst | 39 ++++++++--
 Documentation/translations/zh_CN/vm/oom.rst   | 13 ++++
 .../translations/zh_CN/vm/page_allocation.rst | 13 ++++
 .../translations/zh_CN/vm/page_cache.rst      | 13 ++++
 .../translations/zh_CN/vm/page_owner.rst      | 70 +++++++++++++++--
 .../translations/zh_CN/vm/page_reclaim.rst    | 13 ++++
 .../translations/zh_CN/vm/page_tables.rst     | 13 ++++
 .../translations/zh_CN/vm/physical_memory.rst | 13 ++++
 .../translations/zh_CN/vm/process_addrs.rst   | 13 ++++
 Documentation/translations/zh_CN/vm/shmfs.rst | 13 ++++
 Documentation/translations/zh_CN/vm/swap.rst  | 13 ++++
 .../translations/zh_CN/vm/vmalloc.rst         | 13 ++++
 14 files changed, 282 insertions(+), 47 deletions(-)
 create mode 100644 Documentation/translations/zh_CN/vm/bootmem.rst
 create mode 100644 Documentation/translations/zh_CN/vm/oom.rst
 create mode 100644 Documentation/translations/zh_CN/vm/page_allocation.rst
 create mode 100644 Documentation/translations/zh_CN/vm/page_cache.rst
 create mode 100644 Documentation/translations/zh_CN/vm/page_reclaim.rst
 create mode 100644 Documentation/translations/zh_CN/vm/page_tables.rst
 create mode 100644 Documentation/translations/zh_CN/vm/physical_memory.rst
 create mode 100644 Documentation/translations/zh_CN/vm/process_addrs.rst
 create mode 100644 Documentation/translations/zh_CN/vm/shmfs.rst
 create mode 100644 Documentation/translations/zh_CN/vm/swap.rst
 create mode 100644 Documentation/translations/zh_CN/vm/vmalloc.rst

-- 
2.27.0


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

* [PATCH 1/3] docs/zh_CN: Update the translation of highmem to 5.19-rc1
  2022-06-09 13:27 [PATCH 0/3] docs/zh_CN: Update the translation of vm to 5.19-rc1 Yanteng Si
@ 2022-06-09 13:27 ` Yanteng Si
  2022-06-09 17:09   ` Wu X.C.
  2022-06-09 13:27 ` [PATCH 2/3] docs/zh_CN: Update the translation of page_owner " Yanteng Si
  2022-06-09 13:27 ` [PATCH 3/3] docs/zh_CN: Update the translation of vm index " Yanteng Si
  2 siblings, 1 reply; 11+ messages in thread
From: Yanteng Si @ 2022-06-09 13:27 UTC (permalink / raw)
  To: corbet, alexs, bobwxc, seakeel
  Cc: Yanteng Si, chenhuacai, jiaxun.yang, linux-doc, siyanteng01,
	zhoubinbin

update to commit 110bf7a52307 ("Documentation/vm: rework
"Temporary Virtual Mappings" section")

Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
 .../translations/zh_CN/vm/highmem.rst         | 77 +++++++++++--------
 1 file changed, 43 insertions(+), 34 deletions(-)

diff --git a/Documentation/translations/zh_CN/vm/highmem.rst b/Documentation/translations/zh_CN/vm/highmem.rst
index 018838e58c3e..23057ccf71ad 100644
--- a/Documentation/translations/zh_CN/vm/highmem.rst
+++ b/Documentation/translations/zh_CN/vm/highmem.rst
@@ -50,55 +50,55 @@
 临时虚拟映射
 ============
 
-内核包含几种创建临时映射的方法。:
+内核包含几种创建临时映射的方法。下面的列表按照使用的优先顺序显示了它们。
 
-* vmap().  这可以用来将多个物理页长期映射到一个连续的虚拟空间。它需要synchronization
-  来解除映射。
+* kmap_local_page()。这个函数是用来要求短期映射的。它可以从任何上下文(包括中断)中调用,
+  但是映射只能在获取它们的上下文中使用。
 
-* kmap().  这允许对单个页面进行短期映射。它需要synchronization,但在一定程度上被摊销。
-  当以嵌套方式使用时,它也很容易出现死锁,因此不建议在新代码中使用它。
+  在可行的情况下,这个函数应该比其他所有的函数更受欢迎。
 
-* kmap_atomic().  这允许对单个页面进行非常短的时间映射。由于映射被限制在发布它的CPU上,
-  它表现得很好,但发布任务因此被要求留在该CPU上直到它完成,以免其他任务取代它的映射。
-
-  kmap_atomic() 也可以由中断上下文使用,因为它不睡眠,而且调用者可能在调用kunmap_atomic()
-  之后才睡眠。
+  这些映射是线程本地和CPU本地的,这意味着映射只能从这个线程中访问,并且当映射处于活动状
+  态时,该线程与CPU绑定。即使线程被抢占了(因为抢占永远不会被函数禁用),CPU也不能通过
+  CPU-hotplug从系统中拔出,直到映射被处理掉。
 
-  可以假设k[un]map_atomic()不会失败。
+  在本地的kmap区域中采取pagefaults是有效的,除非获取本地映射的上下文由于其他原因不允许
+  这样做。
 
+  kmap_local_page()总是返回一个有效的虚拟地址,并且假定kunmap_local()不会失败。
 
-使用kmap_atomic
-===============
+  嵌套kmap_local_page()和kmap_atomic()映射在一定程度上是允许的(最多到KMAP_TYPE_NR),
+  但是它们的调用必须严格排序,因为映射的实现是基于堆栈的。关于如何管理嵌套映射的细节,
+  请参见kmap_local_page() kdocs(包含在 "函数 "部分)。
 
-何时何地使用 kmap_atomic() 是很直接的。当代码想要访问一个可能从高内存(见__GFP_HIGHMEM)
-分配的页面的内容时,例如在页缓存中的页面,就会使用它。该API有两个函数,它们的使用方式与
-下面类似::
-
-	/* 找到感兴趣的页面。 */
-	struct page *page = find_get_page(mapping, offset);
-
-	/* 获得对该页内容的访问权。 */
-	void *vaddr = kmap_atomic(page);
+* kmap_atomic().  这允许对单个页面进行非常短的时间映射。由于映射被限制在发布它的CPU上,
+  它表现得很好,但发布任务因此被要求留在该CPU上直到它完成,以免其他任务取代它的映射。
 
-	/* 对该页的内容做一些处理。 */
-	memset(vaddr, 0, PAGE_SIZE);
+  kmap_atomic()也可以被中断上下文使用,因为它不睡眠,调用者也可能在调用kunmap_atomic()
+  后才睡眠。
 
-	/* 解除该页面的映射。 */
-	kunmap_atomic(vaddr);
+  内核中对kmap_atomic()的每次调用都会创建一个不可抢占的段,并禁用分页默认值。这可能是
+  一个不需要的延迟的来源。因此用户应该选择kmap_local_page()而不是kmap_atomic()。
 
-注意,kunmap_atomic()调用的是kmap_atomic()调用的结果而不是参数。
+  假设k[un]map_atomic()不会失败。
 
-如果你需要映射两个页面,因为你想从一个页面复制到另一个页面,你需要保持kmap_atomic调用严
-格嵌套,如::
+* kmap()。这应该被用来对单个页面进行短时间的映射,对抢占或迁移没有限制。它有一个开销,
+  因为映射空间是受限制的,并且受到全局锁的保护,以实现同步。当不再需要映射时,必须用
+  kunmap()释放该页被映射的地址。
 
-	vaddr1 = kmap_atomic(page1);
-	vaddr2 = kmap_atomic(page2);
+  kmap()还需要在kmap的池被回绕(TLB项用光了,需要从第一项复用)时进行全局TLB无效化,
+  当映射空间被完全利用时,它可能会阻塞,直到有一个可用的槽出现。因此,kmap()只能从
+  可抢占的上下文中调用。
 
-	memcpy(vaddr1, vaddr2, PAGE_SIZE);
+  如果一个映射必须持续相对较长的时间,上述所有的工作都是必要的,但是内核中大部分的
+  高内存映射都是短暂的,而且只在一个地方使用。这意味着在这种情况下,kmap()的成本大
+  多被浪费了。kmap()并不是为长期映射而设计的,但是它已经朝着这个方向发展了,在较新
+  的代码中强烈不鼓励使用它,前面的函数集应该是首选。
 
-	kunmap_atomic(vaddr2);
-	kunmap_atomic(vaddr1);
+  在64位系统中,调用kmap_local_page()、kmap_atomic()和kmap()没有实际作用,因为64位
+  地址空间足以解决所有物理内存的页面被永久映射。
 
+* vmap()。这可以用来将多个物理页长期映射到一个连续的虚拟空间。它需要全局同步来解除
+  映射。
 
 临时映射的成本
 ==============
@@ -126,3 +126,12 @@ i386 PAE
 
 一般的建议是,你不要在32位机器上使用超过8GiB的空间--尽管更多的空间可能对你和你的工作
 量有用,但你几乎是靠你自己--不要指望内核开发者真的会很关心事情的进展情况。
+
+函数
+====
+
+该API在以下内核代码中:
+
+include/linux/highmem.h
+
+include/linux/highmem-internal.h
-- 
2.27.0


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

* [PATCH 2/3] docs/zh_CN: Update the translation of page_owner to 5.19-rc1
  2022-06-09 13:27 [PATCH 0/3] docs/zh_CN: Update the translation of vm to 5.19-rc1 Yanteng Si
  2022-06-09 13:27 ` [PATCH 1/3] docs/zh_CN: Update the translation of highmem " Yanteng Si
@ 2022-06-09 13:27 ` Yanteng Si
  2022-06-09 17:09   ` Wu X.C.
  2022-06-09 13:27 ` [PATCH 3/3] docs/zh_CN: Update the translation of vm index " Yanteng Si
  2 siblings, 1 reply; 11+ messages in thread
From: Yanteng Si @ 2022-06-09 13:27 UTC (permalink / raw)
  To: corbet, alexs, bobwxc, seakeel
  Cc: Yanteng Si, chenhuacai, jiaxun.yang, linux-doc, siyanteng01,
	zhoubinbin

update to commit d1ed51fcdbd6 ("docs: vm/page_owner: tweak
literal block in STANDARD FORMAT SPECIFIERS")

Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
 .../translations/zh_CN/vm/page_owner.rst      | 70 +++++++++++++++++--
 1 file changed, 64 insertions(+), 6 deletions(-)

diff --git a/Documentation/translations/zh_CN/vm/page_owner.rst b/Documentation/translations/zh_CN/vm/page_owner.rst
index 9e951fabba9d..9f88c9c999bc 100644
--- a/Documentation/translations/zh_CN/vm/page_owner.rst
+++ b/Documentation/translations/zh_CN/vm/page_owner.rst
@@ -96,21 +96,79 @@ page owner在默认情况下是禁用的。所以,如果你想使用它,你
    默认情况下, ``page_owner_sort`` 是根据buf的时间来排序的。如果你想
    按buf的页数排序,请使用-m参数。详细的参数是:
 
-   基本函数:
+   基本函数::
 
-	Sort:
+	排序:
 		-a		按内存分配时间排序
 		-m		按总内存排序
 		-p		按pid排序。
 		-P		按tgid排序。
+		-n      按任务命令名称排序。
 		-r		按内存释放时间排序。
 		-s		按堆栈跟踪排序。
 		-t		按时间排序(默认)。
 
-   其它函数:
+        例子:
+				./page_owner_sort <input> <output> --sort=n,+pid,-tgid
+				./page_owner_sort <input> <output> --sort=at
 
-	Cull:
-		-c		通过比较堆栈跟踪而不是总块来进行剔除。
+    其它函数::
 
-	Filter:
+	剔除:
+		--cull <rules>
+		        指定剔除规则。剔除的语法是key[,key[,...]]。从**标准格式指定器**
+				部分选择一个多字母键。
+		<rules>是一个以逗号分隔的列表形式的单一参数,它提供了一种指定单个剔除规则的
+		方法。 识别的关键字在下面的**标准格式指定器**部分有描述。<规则>可以通过键的
+		序列k1,k2,...来指定,在下面的标准排序键部分有描述。允许混合使用简写和完整形
+		式的键。
+
+		Examples:
+				./page_owner_sort <input> <output> --cull=stacktrace
+				./page_owner_sort <input> <output> --cull=st,pid,name
+				./page_owner_sort <input> <output> --cull=n,f
+
+	过滤:
 		-f		过滤掉内存已被释放的块的信息。
+
+	选择:
+		--pid <pidlist>		按pid选择。这将选择进程ID号出现在<pidlist>中的块。
+		--tgid <tgidlist>	按tgid选择。这将选择其线程组ID号出现在<tgidlist>
+		                    中的块。
+		--name <cmdlist>	按任务命令名称选择。这将选择其任务命令名称出现在
+		                    <cmdlist>中的区块。
+
+		<pidlist>, <tgidlist>, <cmdlist>是以逗号分隔的列表形式的单个参数,
+		它提供了一种指定单个选择规则的方法。
+
+
+		例子:
+				./page_owner_sort <input> <output> --pid=1
+				./page_owner_sort <input> <output> --tgid=1,2,3
+				./page_owner_sort <input> <output> --name name1,name2
+
+标准格式指定器
+==============
+::
+
+  --sort的选项:
+
+	键		键长		描述
+	p		pid		进程ID
+	tg		tgid		线程组ID
+	n		name		任务命令名称
+	st		stacktrace	页面分配的堆栈跟踪
+	T		txt		块的全文
+	ft		free_ts		页面发布时的时间戳
+	at		alloc_ts	页面被分配时的时间戳
+	ator		allocator	页面的内存分配器
+
+  --curl的选项:
+
+	键		键长		描述
+	p		pid		进程ID
+	tg		tgid		线程组ID
+	n		name		任务命令名称
+	f		free		该页是否已经发布
+	st		stacktrace	页面分配的堆栈跟踪
+	ator		allocator	页面的内存分配器
-- 
2.27.0


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

* [PATCH 3/3] docs/zh_CN: Update the translation of vm index to 5.19-rc1
  2022-06-09 13:27 [PATCH 0/3] docs/zh_CN: Update the translation of vm to 5.19-rc1 Yanteng Si
  2022-06-09 13:27 ` [PATCH 1/3] docs/zh_CN: Update the translation of highmem " Yanteng Si
  2022-06-09 13:27 ` [PATCH 2/3] docs/zh_CN: Update the translation of page_owner " Yanteng Si
@ 2022-06-09 13:27 ` Yanteng Si
  2022-06-10 16:12   ` Wu X.C.
  2 siblings, 1 reply; 11+ messages in thread
From: Yanteng Si @ 2022-06-09 13:27 UTC (permalink / raw)
  To: corbet, alexs, bobwxc, seakeel
  Cc: Yanteng Si, chenhuacai, jiaxun.yang, linux-doc, siyanteng01,
	zhoubinbin

update to commit 481cc97349d6 ("mm,doc: Add new
documentation structure")

Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
---
 .../translations/zh_CN/vm/bootmem.rst         | 13 +++++++
 Documentation/translations/zh_CN/vm/index.rst | 39 +++++++++++++++----
 Documentation/translations/zh_CN/vm/oom.rst   | 13 +++++++
 .../translations/zh_CN/vm/page_allocation.rst | 13 +++++++
 .../translations/zh_CN/vm/page_cache.rst      | 13 +++++++
 .../translations/zh_CN/vm/page_reclaim.rst    | 13 +++++++
 .../translations/zh_CN/vm/page_tables.rst     | 13 +++++++
 .../translations/zh_CN/vm/physical_memory.rst | 13 +++++++
 .../translations/zh_CN/vm/process_addrs.rst   | 13 +++++++
 Documentation/translations/zh_CN/vm/shmfs.rst | 13 +++++++
 Documentation/translations/zh_CN/vm/swap.rst  | 13 +++++++
 .../translations/zh_CN/vm/vmalloc.rst         | 13 +++++++
 12 files changed, 175 insertions(+), 7 deletions(-)
 create mode 100644 Documentation/translations/zh_CN/vm/bootmem.rst
 create mode 100644 Documentation/translations/zh_CN/vm/oom.rst
 create mode 100644 Documentation/translations/zh_CN/vm/page_allocation.rst
 create mode 100644 Documentation/translations/zh_CN/vm/page_cache.rst
 create mode 100644 Documentation/translations/zh_CN/vm/page_reclaim.rst
 create mode 100644 Documentation/translations/zh_CN/vm/page_tables.rst
 create mode 100644 Documentation/translations/zh_CN/vm/physical_memory.rst
 create mode 100644 Documentation/translations/zh_CN/vm/process_addrs.rst
 create mode 100644 Documentation/translations/zh_CN/vm/shmfs.rst
 create mode 100644 Documentation/translations/zh_CN/vm/swap.rst
 create mode 100644 Documentation/translations/zh_CN/vm/vmalloc.rst

diff --git a/Documentation/translations/zh_CN/vm/bootmem.rst b/Documentation/translations/zh_CN/vm/bootmem.rst
new file mode 100644
index 000000000000..45652031a9cc
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/bootmem.rst
@@ -0,0 +1,13 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/bootmem.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+========
+启动内存
+========
diff --git a/Documentation/translations/zh_CN/vm/index.rst b/Documentation/translations/zh_CN/vm/index.rst
index a1c6d529b6ff..e9adc693184d 100644
--- a/Documentation/translations/zh_CN/vm/index.rst
+++ b/Documentation/translations/zh_CN/vm/index.rst
@@ -12,11 +12,38 @@
 Linux内存管理文档
 =================
 
-这是一个关于Linux内存管理(mm)子系统内部的文档集,其中有不同层次的细节,包括注释
-和邮件列表的回复,用于阐述数据结构和算法的基本情况。如果你正在寻找关于简单分配内存的建
-议,请参阅(Documentation/translations/zh_CN/core-api/memory-allocation.rst)。
-对于控制和调整指南,请参阅(Documentation/admin-guide/mm/index)。
-TODO:待引用文档集被翻译完毕后请及时修改此处)
+这是一份关于了解Linux的内存管理子系统的指南。如果你正在寻找关于简单分配内存的
+建议,请参阅内存分配指南
+(Documentation/translations/zh_CN/core-api/memory-allocation.rst)。
+关于控制和调整的指南,请看管理指南
+(Documentation/translations/zh_CN/admin-guide/mm/index.rst)。
+
+
+.. toctree::
+   :maxdepth: 1
+
+   physical_memory
+   page_tables
+   process_addrs
+   bootmem
+   page_allocation
+   vmalloc
+   highmem
+   page_reclaim
+   swap
+   page_cache
+   shmfs
+   oom
+
+TODOLIST:
+* slab
+
+遗留文档
+========
+
+这是一个关于Linux内存管理(MM)子系统内部的旧文档的集合,其中有不同层次的细节,
+包括注释和邮件列表的回复,用于阐述数据结构和算法的描述。它应该被很好地整合到上述
+结构化的文档中,如果它已经完成了它的使命,可以删除。
 
 .. toctree::
    :maxdepth: 1
@@ -25,7 +52,6 @@ TODO:待引用文档集被翻译完毕后请及时修改此处)
    balance
    damon/index
    free_page_reporting
-   highmem
    ksm
    frontswap
    hmm
@@ -48,7 +74,6 @@ TODOLIST:
 * free_page_reporting
 * hugetlbfs_reserv
 * page_migration
-* slub
 * transhuge
 * unevictable-lru
 * vmalloced-kernel-stacks
diff --git a/Documentation/translations/zh_CN/vm/oom.rst b/Documentation/translations/zh_CN/vm/oom.rst
new file mode 100644
index 000000000000..00cc444cf86b
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/oom.rst
@@ -0,0 +1,13 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/oom.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+============
+内存不足处理
+============
diff --git a/Documentation/translations/zh_CN/vm/page_allocation.rst b/Documentation/translations/zh_CN/vm/page_allocation.rst
new file mode 100644
index 000000000000..ab779498abe6
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/page_allocation.rst
@@ -0,0 +1,13 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/page_allocation.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+========
+页面分配
+========
diff --git a/Documentation/translations/zh_CN/vm/page_cache.rst b/Documentation/translations/zh_CN/vm/page_cache.rst
new file mode 100644
index 000000000000..6e000699da78
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/page_cache.rst
@@ -0,0 +1,13 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/page_cache.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+========
+页面缓存
+========
diff --git a/Documentation/translations/zh_CN/vm/page_reclaim.rst b/Documentation/translations/zh_CN/vm/page_reclaim.rst
new file mode 100644
index 000000000000..3939d4c4a67b
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/page_reclaim.rst
@@ -0,0 +1,13 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/page_reclaim.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+========
+页面回收
+========
diff --git a/Documentation/translations/zh_CN/vm/page_tables.rst b/Documentation/translations/zh_CN/vm/page_tables.rst
new file mode 100644
index 000000000000..180fb79befd0
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/page_tables.rst
@@ -0,0 +1,13 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/page_tables.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+====
+页表
+====
diff --git a/Documentation/translations/zh_CN/vm/physical_memory.rst b/Documentation/translations/zh_CN/vm/physical_memory.rst
new file mode 100644
index 000000000000..5427baea5306
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/physical_memory.rst
@@ -0,0 +1,13 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/physical_memory.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+========
+物理内存
+========
diff --git a/Documentation/translations/zh_CN/vm/process_addrs.rst b/Documentation/translations/zh_CN/vm/process_addrs.rst
new file mode 100644
index 000000000000..980fa32ecf07
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/process_addrs.rst
@@ -0,0 +1,13 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/process_addrs.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+========
+进程地址
+========
diff --git a/Documentation/translations/zh_CN/vm/shmfs.rst b/Documentation/translations/zh_CN/vm/shmfs.rst
new file mode 100644
index 000000000000..5b3c85e5f992
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/shmfs.rst
@@ -0,0 +1,13 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/shmfs.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+================
+共享内存文件系统
+================
diff --git a/Documentation/translations/zh_CN/vm/swap.rst b/Documentation/translations/zh_CN/vm/swap.rst
new file mode 100644
index 000000000000..568a4472ff11
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/swap.rst
@@ -0,0 +1,13 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/swap.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+========
+交换内存
+========
diff --git a/Documentation/translations/zh_CN/vm/vmalloc.rst b/Documentation/translations/zh_CN/vm/vmalloc.rst
new file mode 100644
index 000000000000..efb542878f8c
--- /dev/null
+++ b/Documentation/translations/zh_CN/vm/vmalloc.rst
@@ -0,0 +1,13 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+:Original: Documentation/vm/vmalloc.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@loongson.cn>
+
+:校译:
+
+================
+连续虚拟内存分配
+================
-- 
2.27.0


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

* Re: [PATCH 1/3] docs/zh_CN: Update the translation of highmem to 5.19-rc1
  2022-06-09 13:27 ` [PATCH 1/3] docs/zh_CN: Update the translation of highmem " Yanteng Si
@ 2022-06-09 17:09   ` Wu X.C.
  2022-06-13  2:14     ` Yanteng Si
  0 siblings, 1 reply; 11+ messages in thread
From: Wu X.C. @ 2022-06-09 17:09 UTC (permalink / raw)
  To: Yanteng Si
  Cc: corbet, alexs, seakeel, chenhuacai, jiaxun.yang, linux-doc,
	siyanteng01, zhoubinbin

Hi Yanteng,

On Thu, Jun 09, 2022 at 09:27:18PM +0800, Yanteng Si wrote:
> update to commit 110bf7a52307 ("Documentation/vm: rework
> "Temporary Virtual Mappings" section")
> 
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> ---
>  .../translations/zh_CN/vm/highmem.rst         | 77 +++++++++++--------
>  1 file changed, 43 insertions(+), 34 deletions(-)
> 
> diff --git a/Documentation/translations/zh_CN/vm/highmem.rst b/Documentation/translations/zh_CN/vm/highmem.rst
> index 018838e58c3e..23057ccf71ad 100644
> --- a/Documentation/translations/zh_CN/vm/highmem.rst
> +++ b/Documentation/translations/zh_CN/vm/highmem.rst
> @@ -50,55 +50,55 @@
>  临时虚拟映射
>  ============
>  
> -内核包含几种创建临时映射的方法。:
> +内核包含几种创建临时映射的方法。下面的列表按照使用的优先顺序显示了它们。
>  
> -* vmap().  这可以用来将多个物理页长期映射到一个连续的虚拟空间。它需要synchronization
> -  来解除映射。
> +* kmap_local_page()。这个函数是用来要求短期映射的。它可以从任何上下文(包括中断)中调用,
> +  但是映射只能在获取它们的上下文中使用。
>  
> -* kmap().  这允许对单个页面进行短期映射。它需要synchronization,但在一定程度上被摊销。
> -  当以嵌套方式使用时,它也很容易出现死锁,因此不建议在新代码中使用它。
> +  在可行的情况下,这个函数应该比其他所有的函数更受欢迎。

How about 更受欢迎 -> 优先使用 ?

>  
> -* kmap_atomic().  这允许对单个页面进行非常短的时间映射。由于映射被限制在发布它的CPU上,
> -  它表现得很好,但发布任务因此被要求留在该CPU上直到它完成,以免其他任务取代它的映射。
> -
> -  kmap_atomic() 也可以由中断上下文使用,因为它不睡眠,而且调用者可能在调用kunmap_atomic()
> -  之后才睡眠。
> +  这些映射是线程本地和CPU本地的,这意味着映射只能从这个线程中访问,并且当映射处于活动状
> +  态时,该线程与CPU绑定。即使线程被抢占了(因为抢占永远不会被函数禁用),CPU也不能通过
> +  CPU-hotplug从系统中拔出,直到映射被处理掉。
>  
> -  可以假设k[un]map_atomic()不会失败。
> +  在本地的kmap区域中采取pagefaults是有效的,除非获取本地映射的上下文由于其他原因不允许
> +  这样做。
>  
> +  kmap_local_page()总是返回一个有效的虚拟地址,并且假定kunmap_local()不会失败。
>  
> -使用kmap_atomic
> -===============
> +  嵌套kmap_local_page()和kmap_atomic()映射在一定程度上是允许的(最多到KMAP_TYPE_NR),
> +  但是它们的调用必须严格排序,因为映射的实现是基于堆栈的。关于如何管理嵌套映射的细节,
> +  请参见kmap_local_page() kdocs(包含在 "函数 "部分)。
>  
> -何时何地使用 kmap_atomic() 是很直接的。当代码想要访问一个可能从高内存(见__GFP_HIGHMEM)
> -分配的页面的内容时,例如在页缓存中的页面,就会使用它。该API有两个函数,它们的使用方式与
> -下面类似::
> -
> -	/* 找到感兴趣的页面。 */
> -	struct page *page = find_get_page(mapping, offset);
> -
> -	/* 获得对该页内容的访问权。 */
> -	void *vaddr = kmap_atomic(page);
> +* kmap_atomic().  这允许对单个页面进行非常短的时间映射。由于映射被限制在发布它的CPU上,
> +  它表现得很好,但发布任务因此被要求留在该CPU上直到它完成,以免其他任务取代它的映射。

发布的任务

>  
> -	/* 对该页的内容做一些处理。 */
> -	memset(vaddr, 0, PAGE_SIZE);
> +  kmap_atomic()也可以被中断上下文使用,因为它不睡眠,调用者也可能在调用kunmap_atomic()
> +  后才睡眠。
>  
> -	/* 解除该页面的映射。 */
> -	kunmap_atomic(vaddr);
> +  内核中对kmap_atomic()的每次调用都会创建一个不可抢占的段,并禁用分页默认值。这可能是

分页默认值?
pagefaults
页错误 or 缺页异常?

> +  一个不需要的延迟的来源。因此用户应该选择kmap_local_page()而不是kmap_atomic()。

How about
这可能是未预期延迟的来源之一

>  
> -注意,kunmap_atomic()调用的是kmap_atomic()调用的结果而不是参数。
> +  假设k[un]map_atomic()不会失败。
>  
> -如果你需要映射两个页面,因为你想从一个页面复制到另一个页面,你需要保持kmap_atomic调用严
> -格嵌套,如::
> +* kmap()。这应该被用来对单个页面进行短时间的映射,对抢占或迁移没有限制。它有一个开销,

它会带来开销

> +  因为映射空间是受限制的,并且受到全局锁的保护,以实现同步。当不再需要映射时,必须用
> +  kunmap()释放该页被映射的地址。
>  
> -	vaddr1 = kmap_atomic(page1);
> -	vaddr2 = kmap_atomic(page2);
> +  kmap()还需要在kmap的池被回绕(TLB项用光了,需要从第一项复用)时进行全局TLB无效化,

Missing:
Mapping changes must be propagated across all the CPUs.

> +  当映射空间被完全利用时,它可能会阻塞,直到有一个可用的槽出现。因此,kmap()只能从
> +  可抢占的上下文中调用。
>  
> -	memcpy(vaddr1, vaddr2, PAGE_SIZE);
> +  如果一个映射必须持续相对较长的时间,上述所有的工作都是必要的,但是内核中大部分的
> +  高内存映射都是短暂的,而且只在一个地方使用。这意味着在这种情况下,kmap()的成本大
> +  多被浪费了。kmap()并不是为长期映射而设计的,但是它已经朝着这个方向发展了,在较新
> +  的代码中强烈不鼓励使用它,前面的函数集应该是首选。
>  
> -	kunmap_atomic(vaddr2);
> -	kunmap_atomic(vaddr1);
> +  在64位系统中,调用kmap_local_page()、kmap_atomic()和kmap()没有实际作用,因为64位
> +  地址空间足以解决所有物理内存的页面被永久映射。

足以永久映射所有物理内存页面

>  
> +* vmap()。这可以用来将多个物理页长期映射到一个连续的虚拟空间。它需要全局同步来解除
> +  映射。
>  
>  临时映射的成本
>  ==============
> @@ -126,3 +126,12 @@ i386 PAE
>  
>  一般的建议是,你不要在32位机器上使用超过8GiB的空间--尽管更多的空间可能对你和你的工作
>  量有用,但你几乎是靠你自己--不要指望内核开发者真的会很关心事情的进展情况。
> +
> +函数
> +====
> +
> +该API在以下内核代码中:
> +
> +include/linux/highmem.h
> +
> +include/linux/highmem-internal.h
> -- 
> 2.27.0

Thanks,
	Wu


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

* Re: [PATCH 2/3] docs/zh_CN: Update the translation of page_owner to 5.19-rc1
  2022-06-09 13:27 ` [PATCH 2/3] docs/zh_CN: Update the translation of page_owner " Yanteng Si
@ 2022-06-09 17:09   ` Wu X.C.
  2022-06-13  2:33     ` Yanteng Si
  0 siblings, 1 reply; 11+ messages in thread
From: Wu X.C. @ 2022-06-09 17:09 UTC (permalink / raw)
  To: Yanteng Si
  Cc: corbet, alexs, seakeel, chenhuacai, jiaxun.yang, linux-doc,
	siyanteng01, zhoubinbin, Jiajian Ye, Yixuan Cao

+Cc: Yixuan Cao <caoyixuan2019@email.szu.edu.cn>,
     Jiajian Ye <yejiajian2018@email.szu.edu.cn>


On Thu, Jun 09, 2022 at 09:27:19PM +0800, Yanteng Si wrote:
> update to commit d1ed51fcdbd6 ("docs: vm/page_owner: tweak
> literal block in STANDARD FORMAT SPECIFIERS")
> 
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> ---
>  .../translations/zh_CN/vm/page_owner.rst      | 70 +++++++++++++++++--
>  1 file changed, 64 insertions(+), 6 deletions(-)
> 
> diff --git a/Documentation/translations/zh_CN/vm/page_owner.rst b/Documentation/translations/zh_CN/vm/page_owner.rst
> index 9e951fabba9d..9f88c9c999bc 100644
> --- a/Documentation/translations/zh_CN/vm/page_owner.rst
> +++ b/Documentation/translations/zh_CN/vm/page_owner.rst
> @@ -96,21 +96,79 @@ page owner在默认情况下是禁用的。所以,如果你想使用它,你
>     默认情况下, ``page_owner_sort`` 是根据buf的时间来排序的。如果你想
>     按buf的页数排序,请使用-m参数。详细的参数是:
>  
> -   基本函数:
> +   基本函数::
>  
> -	Sort:
> +	排序:
>  		-a		按内存分配时间排序
>  		-m		按总内存排序
>  		-p		按pid排序。
>  		-P		按tgid排序。
> +		-n      按任务命令名称排序。

Tab or spaces?

>  		-r		按内存释放时间排序。
>  		-s		按堆栈跟踪排序。
>  		-t		按时间排序(默认)。


Missing:

                --sort <order>  Specify sorting order.  Sorting syntax is [+|-]key[,[+|-]key[,...]].
                                Choose a key from the **STANDARD FORMAT SPECIFIERS** section. The "+" is
                                optional since default direction is increasing numerical or lexicographic
                                order. Mixed use of abbreviated and complete-form of keys is allowed.


>  
> -   其它函数:
> +        例子:
> +				./page_owner_sort <input> <output> --sort=n,+pid,-tgid
> +				./page_owner_sort <input> <output> --sort=at
>  
> -	Cull:
> -		-c		通过比较堆栈跟踪而不是总块来进行剔除。
> +    其它函数::
>  
> -	Filter:
> +	剔除:
> +		--cull <rules>
> +		        指定剔除规则。剔除的语法是key[,key[,...]]。从**标准格式指定器**
> +				部分选择一个多字母键。
> +		<rules>是一个以逗号分隔的列表形式的单一参数,它提供了一种指定单个剔除规则的
> +		方法。 识别的关键字在下面的**标准格式指定器**部分有描述。<规则>可以通过键的
> +		序列k1,k2,...来指定,在下面的标准排序键部分有描述。允许混合使用简写和完整形
> +		式的键。
> +
> +		Examples:
> +				./page_owner_sort <input> <output> --cull=stacktrace
> +				./page_owner_sort <input> <output> --cull=st,pid,name
> +				./page_owner_sort <input> <output> --cull=n,f
> +
> +	过滤:
>  		-f		过滤掉内存已被释放的块的信息。
> +
> +	选择:
> +		--pid <pidlist>		按pid选择。这将选择进程ID号出现在<pidlist>中的块。
> +		--tgid <tgidlist>	按tgid选择。这将选择其线程组ID号出现在<tgidlist>
> +		                    中的块。
> +		--name <cmdlist>	按任务命令名称选择。这将选择其任务命令名称出现在
> +		                    <cmdlist>中的区块。
> +
> +		<pidlist>, <tgidlist>, <cmdlist>是以逗号分隔的列表形式的单个参数,
> +		它提供了一种指定单个选择规则的方法。
> +
> +
> +		例子:
> +				./page_owner_sort <input> <output> --pid=1
> +				./page_owner_sort <input> <output> --tgid=1,2,3
> +				./page_owner_sort <input> <output> --name name1,name2
> +
> +标准格式指定器
> +==============
> +::
> +
> +  --sort的选项:
> +
> +	键		键长		描述
> +	p		pid		进程ID
> +	tg		tgid		线程组ID
> +	n		name		任务命令名称
> +	st		stacktrace	页面分配的堆栈跟踪
> +	T		txt		块的全文
> +	ft		free_ts		页面发布时的时间戳
> +	at		alloc_ts	页面被分配时的时间戳
> +	ator		allocator	页面的内存分配器
> +
> +  --curl的选项:
> +
> +	键		键长		描述
> +	p		pid		进程ID
> +	tg		tgid		线程组ID
> +	n		name		任务命令名称
> +	f		free		该页是否已经发布
> +	st		stacktrace	页面分配的堆栈跟踪
> +	ator		allocator	页面的内存分配器
> -- 
> 2.27.0


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

* Re: [PATCH 3/3] docs/zh_CN: Update the translation of vm index to 5.19-rc1
  2022-06-09 13:27 ` [PATCH 3/3] docs/zh_CN: Update the translation of vm index " Yanteng Si
@ 2022-06-10 16:12   ` Wu X.C.
  2022-06-13  2:38     ` Yanteng Si
  0 siblings, 1 reply; 11+ messages in thread
From: Wu X.C. @ 2022-06-10 16:12 UTC (permalink / raw)
  To: Yanteng Si
  Cc: corbet, alexs, seakeel, chenhuacai, jiaxun.yang, linux-doc,
	siyanteng01, zhoubinbin

On Thu, Jun 09, 2022 at 09:27:20PM +0800, Yanteng Si wrote:
> update to commit 481cc97349d6 ("mm,doc: Add new
> documentation structure")
> 
> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> ---
>  .../translations/zh_CN/vm/bootmem.rst         | 13 +++++++
>  Documentation/translations/zh_CN/vm/index.rst | 39 +++++++++++++++----
>  Documentation/translations/zh_CN/vm/oom.rst   | 13 +++++++
>  .../translations/zh_CN/vm/page_allocation.rst | 13 +++++++
>  .../translations/zh_CN/vm/page_cache.rst      | 13 +++++++
>  .../translations/zh_CN/vm/page_reclaim.rst    | 13 +++++++
>  .../translations/zh_CN/vm/page_tables.rst     | 13 +++++++
>  .../translations/zh_CN/vm/physical_memory.rst | 13 +++++++
>  .../translations/zh_CN/vm/process_addrs.rst   | 13 +++++++
>  Documentation/translations/zh_CN/vm/shmfs.rst | 13 +++++++
>  Documentation/translations/zh_CN/vm/swap.rst  | 13 +++++++
>  .../translations/zh_CN/vm/vmalloc.rst         | 13 +++++++
>  12 files changed, 175 insertions(+), 7 deletions(-)
>  create mode 100644 Documentation/translations/zh_CN/vm/bootmem.rst
>  create mode 100644 Documentation/translations/zh_CN/vm/oom.rst
>  create mode 100644 Documentation/translations/zh_CN/vm/page_allocation.rst
>  create mode 100644 Documentation/translations/zh_CN/vm/page_cache.rst
>  create mode 100644 Documentation/translations/zh_CN/vm/page_reclaim.rst
>  create mode 100644 Documentation/translations/zh_CN/vm/page_tables.rst
>  create mode 100644 Documentation/translations/zh_CN/vm/physical_memory.rst
>  create mode 100644 Documentation/translations/zh_CN/vm/process_addrs.rst
>  create mode 100644 Documentation/translations/zh_CN/vm/shmfs.rst
>  create mode 100644 Documentation/translations/zh_CN/vm/swap.rst
>  create mode 100644 Documentation/translations/zh_CN/vm/vmalloc.rst
> 
> diff --git a/Documentation/translations/zh_CN/vm/bootmem.rst b/Documentation/translations/zh_CN/vm/bootmem.rst
> new file mode 100644
> index 000000000000..45652031a9cc
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/bootmem.rst
> @@ -0,0 +1,13 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/bootmem.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +========
> +启动内存
> +========
> diff --git a/Documentation/translations/zh_CN/vm/index.rst b/Documentation/translations/zh_CN/vm/index.rst
> index a1c6d529b6ff..e9adc693184d 100644
> --- a/Documentation/translations/zh_CN/vm/index.rst
> +++ b/Documentation/translations/zh_CN/vm/index.rst
> @@ -12,11 +12,38 @@
>  Linux内存管理文档
>  =================
>  
> -这是一个关于Linux内存管理(mm)子系统内部的文档集,其中有不同层次的细节,包括注释
> -和邮件列表的回复,用于阐述数据结构和算法的基本情况。如果你正在寻找关于简单分配内存的建
> -议,请参阅(Documentation/translations/zh_CN/core-api/memory-allocation.rst)。
> -对于控制和调整指南,请参阅(Documentation/admin-guide/mm/index)。
> -TODO:待引用文档集被翻译完毕后请及时修改此处)
> +这是一份关于了解Linux的内存管理子系统的指南。如果你正在寻找关于简单分配内存的
> +建议,请参阅内存分配指南
> +(Documentation/translations/zh_CN/core-api/memory-allocation.rst)。
> +关于控制和调整的指南,请看管理指南
> +(Documentation/translations/zh_CN/admin-guide/mm/index.rst)。
> +
> +
> +.. toctree::
> +   :maxdepth: 1
> +
> +   physical_memory
> +   page_tables
> +   process_addrs
> +   bootmem
> +   page_allocation
> +   vmalloc
> +   highmem
> +   page_reclaim
> +   swap
> +   page_cache
> +   shmfs
> +   oom
> +
> +TODOLIST:
> +* slab
> +
> +遗留文档
> +========
> +
> +这是一个关于Linux内存管理(MM)子系统内部的旧文档的集合,其中有不同层次的细节,
> +包括注释和邮件列表的回复,用于阐述数据结构和算法的描述。它应该被很好地整合到上述
> +结构化的文档中,如果它已经完成了它的使命,可以删除。
>  
>  .. toctree::
>     :maxdepth: 1
> @@ -25,7 +52,6 @@ TODO:待引用文档集被翻译完毕后请及时修改此处)
>     balance
>     damon/index
>     free_page_reporting
> -   highmem
>     ksm
>     frontswap
>     hmm
> @@ -48,7 +74,6 @@ TODOLIST:
>  * free_page_reporting
>  * hugetlbfs_reserv
>  * page_migration
> -* slub
>  * transhuge
>  * unevictable-lru
>  * vmalloced-kernel-stacks
> diff --git a/Documentation/translations/zh_CN/vm/oom.rst b/Documentation/translations/zh_CN/vm/oom.rst
> new file mode 100644
> index 000000000000..00cc444cf86b
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/oom.rst
> @@ -0,0 +1,13 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/oom.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +============
> +内存不足处理
> +============
> diff --git a/Documentation/translations/zh_CN/vm/page_allocation.rst b/Documentation/translations/zh_CN/vm/page_allocation.rst
> new file mode 100644
> index 000000000000..ab779498abe6
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/page_allocation.rst
> @@ -0,0 +1,13 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/page_allocation.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +========
> +页面分配
> +========
> diff --git a/Documentation/translations/zh_CN/vm/page_cache.rst b/Documentation/translations/zh_CN/vm/page_cache.rst
> new file mode 100644
> index 000000000000..6e000699da78
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/page_cache.rst
> @@ -0,0 +1,13 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/page_cache.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +========
> +页面缓存
> +========
> diff --git a/Documentation/translations/zh_CN/vm/page_reclaim.rst b/Documentation/translations/zh_CN/vm/page_reclaim.rst
> new file mode 100644
> index 000000000000..3939d4c4a67b
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/page_reclaim.rst
> @@ -0,0 +1,13 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/page_reclaim.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +========
> +页面回收
> +========
> diff --git a/Documentation/translations/zh_CN/vm/page_tables.rst b/Documentation/translations/zh_CN/vm/page_tables.rst
> new file mode 100644
> index 000000000000..180fb79befd0
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/page_tables.rst
> @@ -0,0 +1,13 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/page_tables.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +====
> +页表
> +====
> diff --git a/Documentation/translations/zh_CN/vm/physical_memory.rst b/Documentation/translations/zh_CN/vm/physical_memory.rst
> new file mode 100644
> index 000000000000..5427baea5306
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/physical_memory.rst
> @@ -0,0 +1,13 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/physical_memory.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +========
> +物理内存
> +========
> diff --git a/Documentation/translations/zh_CN/vm/process_addrs.rst b/Documentation/translations/zh_CN/vm/process_addrs.rst
> new file mode 100644
> index 000000000000..980fa32ecf07
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/process_addrs.rst
> @@ -0,0 +1,13 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/process_addrs.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +========
> +进程地址
> +========
> diff --git a/Documentation/translations/zh_CN/vm/shmfs.rst b/Documentation/translations/zh_CN/vm/shmfs.rst
> new file mode 100644
> index 000000000000..5b3c85e5f992
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/shmfs.rst
> @@ -0,0 +1,13 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/shmfs.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +================
> +共享内存文件系统
> +================

Missing:

diff --git a/Documentation/vm/slab.rst b/Documentation/vm/slab.rst
new file mode 100644
index 000000000000..87d5a5bb172f
--- /dev/null
+++ b/Documentation/vm/slab.rst
@@ -0,0 +1,5 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+===============
+Slab Allocation
+===============

--
Thanks,
	Wu

> diff --git a/Documentation/translations/zh_CN/vm/swap.rst b/Documentation/translations/zh_CN/vm/swap.rst
> new file mode 100644
> index 000000000000..568a4472ff11
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/swap.rst
> @@ -0,0 +1,13 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/swap.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +========
> +交换内存
> +========
> diff --git a/Documentation/translations/zh_CN/vm/vmalloc.rst b/Documentation/translations/zh_CN/vm/vmalloc.rst
> new file mode 100644
> index 000000000000..efb542878f8c
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/vm/vmalloc.rst
> @@ -0,0 +1,13 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +:Original: Documentation/vm/vmalloc.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
> +
> +:校译:
> +
> +================
> +连续虚拟内存分配
> +================
> -- 
> 2.27.0


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

* Re: [PATCH 1/3] docs/zh_CN: Update the translation of highmem to 5.19-rc1
  2022-06-09 17:09   ` Wu X.C.
@ 2022-06-13  2:14     ` Yanteng Si
  2022-06-13  6:17       ` Alex Shi
  0 siblings, 1 reply; 11+ messages in thread
From: Yanteng Si @ 2022-06-13  2:14 UTC (permalink / raw)
  To: Wu X.C.
  Cc: corbet, alexs, seakeel, chenhuacai, jiaxun.yang, linux-doc,
	siyanteng01, zhoubinbin

On 2022/6/10 上午1:09, Wu X.C. wrote:
> Hi Yanteng,
Hi Xiangcheng

Sorry I'm so late in replying, I've been configuring my email all 
weekend. >_<
> 
> On Thu, Jun 09, 2022 at 09:27:18PM +0800, Yanteng Si wrote:
>> update to commit 110bf7a52307 ("Documentation/vm: rework
>> "Temporary Virtual Mappings" section")
>>
>> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
>> ---
>>   .../translations/zh_CN/vm/highmem.rst         | 77 +++++++++++--------
>>   1 file changed, 43 insertions(+), 34 deletions(-)
>>
>> diff --git a/Documentation/translations/zh_CN/vm/highmem.rst b/Documentation/translations/zh_CN/vm/highmem.rst
>> index 018838e58c3e..23057ccf71ad 100644
>> --- a/Documentation/translations/zh_CN/vm/highmem.rst
>> +++ b/Documentation/translations/zh_CN/vm/highmem.rst
>> @@ -50,55 +50,55 @@
>>   临时虚拟映射
>>   ============
>>   
>> -内核包含几种创建临时映射的方法。:
>> +内核包含几种创建临时映射的方法。下面的列表按照使用的优先顺序显示了它们。
>>   
>> -* vmap().  这可以用来将多个物理页长期映射到一个连续的虚拟空间。它需要synchronization
>> -  来解除映射。
>> +* kmap_local_page()。这个函数是用来要求短期映射的。它可以从任何上下文(包括中断)中调用,
>> +  但是映射只能在获取它们的上下文中使用。
>>   
>> -* kmap().  这允许对单个页面进行短期映射。它需要synchronization,但在一定程度上被摊销。
>> -  当以嵌套方式使用时,它也很容易出现死锁,因此不建议在新代码中使用它。
>> +  在可行的情况下,这个函数应该比其他所有的函数更受欢迎。
> 
> How about 更受欢迎 -> 优先使用 ?
Great!
> 
>>   
>> -* kmap_atomic().  这允许对单个页面进行非常短的时间映射。由于映射被限制在发布它的CPU上,
>> -  它表现得很好,但发布任务因此被要求留在该CPU上直到它完成,以免其他任务取代它的映射。
>> -
>> -  kmap_atomic() 也可以由中断上下文使用,因为它不睡眠,而且调用者可能在调用kunmap_atomic()
>> -  之后才睡眠。
>> +  这些映射是线程本地和CPU本地的,这意味着映射只能从这个线程中访问,并且当映射处于活动状
>> +  态时,该线程与CPU绑定。即使线程被抢占了(因为抢占永远不会被函数禁用),CPU也不能通过
>> +  CPU-hotplug从系统中拔出,直到映射被处理掉。
>>   
>> -  可以假设k[un]map_atomic()不会失败。
>> +  在本地的kmap区域中采取pagefaults是有效的,除非获取本地映射的上下文由于其他原因不允许
>> +  这样做。
>>   
>> +  kmap_local_page()总是返回一个有效的虚拟地址,并且假定kunmap_local()不会失败。
>>   
>> -使用kmap_atomic
>> -===============
>> +  嵌套kmap_local_page()和kmap_atomic()映射在一定程度上是允许的(最多到KMAP_TYPE_NR),
>> +  但是它们的调用必须严格排序,因为映射的实现是基于堆栈的。关于如何管理嵌套映射的细节,
>> +  请参见kmap_local_page() kdocs(包含在 "函数 "部分)。
>>   
>> -何时何地使用 kmap_atomic() 是很直接的。当代码想要访问一个可能从高内存(见__GFP_HIGHMEM)
>> -分配的页面的内容时,例如在页缓存中的页面,就会使用它。该API有两个函数,它们的使用方式与
>> -下面类似::
>> -
>> -	/* 找到感兴趣的页面。 */
>> -	struct page *page = find_get_page(mapping, offset);
>> -
>> -	/* 获得对该页内容的访问权。 */
>> -	void *vaddr = kmap_atomic(page);
>> +* kmap_atomic().  这允许对单个页面进行非常短的时间映射。由于映射被限制在发布它的CPU上,
>> +  它表现得很好,但发布任务因此被要求留在该CPU上直到它完成,以免其他任务取代它的映射。
> 
> 发布的任务
OK!
> 
>>   
>> -	/* 对该页的内容做一些处理。 */
>> -	memset(vaddr, 0, PAGE_SIZE);
>> +  kmap_atomic()也可以被中断上下文使用,因为它不睡眠,调用者也可能在调用kunmap_atomic()
>> +  后才睡眠。
>>   
>> -	/* 解除该页面的映射。 */
>> -	kunmap_atomic(vaddr);
>> +  内核中对kmap_atomic()的每次调用都会创建一个不可抢占的段,并禁用分页默认值。这可能是
> 
> 分页默认值?
> pagefaults
> 页错误 or 缺页异常?
缺页异常
> 
>> +  一个不需要的延迟的来源。因此用户应该选择kmap_local_page()而不是kmap_atomic()。
> 
> How about
> 这可能是未预期延迟的来源之一
OK!
> 
>>   
>> -注意,kunmap_atomic()调用的是kmap_atomic()调用的结果而不是参数。
>> +  假设k[un]map_atomic()不会失败。
>>   
>> -如果你需要映射两个页面,因为你想从一个页面复制到另一个页面,你需要保持kmap_atomic调用严
>> -格嵌套,如::
>> +* kmap()。这应该被用来对单个页面进行短时间的映射,对抢占或迁移没有限制。它有一个开销,
> 
> 它会带来开销
OK!
> 
>> +  因为映射空间是受限制的,并且受到全局锁的保护,以实现同步。当不再需要映射时,必须用
>> +  kunmap()释放该页被映射的地址。
>>   
>> -	vaddr1 = kmap_atomic(page1);
>> -	vaddr2 = kmap_atomic(page2);
>> +  kmap()还需要在kmap的池被回绕(TLB项用光了,需要从第一项复用)时进行全局TLB无效化,
> 
> Missing:
> Mapping changes must be propagated across all the CPUs.
映射变化必须广播到所有CPU(核)上
> 
>> +  当映射空间被完全利用时,它可能会阻塞,直到有一个可用的槽出现。因此,kmap()只能从
>> +  可抢占的上下文中调用。
>>   
>> -	memcpy(vaddr1, vaddr2, PAGE_SIZE);
>> +  如果一个映射必须持续相对较长的时间,上述所有的工作都是必要的,但是内核中大部分的
>> +  高内存映射都是短暂的,而且只在一个地方使用。这意味着在这种情况下,kmap()的成本大
>> +  多被浪费了。kmap()并不是为长期映射而设计的,但是它已经朝着这个方向发展了,在较新
>> +  的代码中强烈不鼓励使用它,前面的函数集应该是首选。
>>   
>> -	kunmap_atomic(vaddr2);
>> -	kunmap_atomic(vaddr1);
>> +  在64位系统中,调用kmap_local_page()、kmap_atomic()和kmap()没有实际作用,因为64位
>> +  地址空间足以解决所有物理内存的页面被永久映射。
> 
> 足以永久映射所有物理内存页面
OK!

Thanks,
Yanteng
> 
>>   
>> +* vmap()。这可以用来将多个物理页长期映射到一个连续的虚拟空间。它需要全局同步来解除
>> +  映射。
>>   
>>   临时映射的成本
>>   ==============
>> @@ -126,3 +126,12 @@ i386 PAE
>>   
>>   一般的建议是,你不要在32位机器上使用超过8GiB的空间--尽管更多的空间可能对你和你的工作
>>   量有用,但你几乎是靠你自己--不要指望内核开发者真的会很关心事情的进展情况。
>> +
>> +函数
>> +====
>> +
>> +该API在以下内核代码中:
>> +
>> +include/linux/highmem.h
>> +
>> +include/linux/highmem-internal.h
>> -- 
>> 2.27.0
> 
> Thanks,
> 	Wu
> 


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

* Re: [PATCH 2/3] docs/zh_CN: Update the translation of page_owner to 5.19-rc1
  2022-06-09 17:09   ` Wu X.C.
@ 2022-06-13  2:33     ` Yanteng Si
  0 siblings, 0 replies; 11+ messages in thread
From: Yanteng Si @ 2022-06-13  2:33 UTC (permalink / raw)
  To: Wu X.C.
  Cc: corbet, alexs, seakeel, chenhuacai, jiaxun.yang, linux-doc,
	siyanteng01, zhoubinbin, Jiajian Ye, Yixuan Cao

On 2022/6/10 上午1:09, Wu X.C. wrote:
> +Cc: Yixuan Cao <caoyixuan2019@email.szu.edu.cn>,
>       Jiajian Ye <yejiajian2018@email.szu.edu.cn>
> 
> 
> On Thu, Jun 09, 2022 at 09:27:19PM +0800, Yanteng Si wrote:
>> update to commit d1ed51fcdbd6 ("docs: vm/page_owner: tweak
>> literal block in STANDARD FORMAT SPECIFIERS")
>>
>> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
>> ---
>>   .../translations/zh_CN/vm/page_owner.rst      | 70 +++++++++++++++++--
>>   1 file changed, 64 insertions(+), 6 deletions(-)
>>
>> diff --git a/Documentation/translations/zh_CN/vm/page_owner.rst b/Documentation/translations/zh_CN/vm/page_owner.rst
>> index 9e951fabba9d..9f88c9c999bc 100644
>> --- a/Documentation/translations/zh_CN/vm/page_owner.rst
>> +++ b/Documentation/translations/zh_CN/vm/page_owner.rst
>> @@ -96,21 +96,79 @@ page owner在默认情况下是禁用的。所以,如果你想使用它,你
>>      默认情况下, ``page_owner_sort`` 是根据buf的时间来排序的。如果你想
>>      按buf的页数排序,请使用-m参数。详细的参数是:
>>   
>> -   基本函数:
>> +   基本函数::
>>   
>> -	Sort:
>> +	排序:
>>   		-a		按内存分配时间排序
>>   		-m		按总内存排序
>>   		-p		按pid排序。
>>   		-P		按tgid排序。
>> +		-n      按任务命令名称排序。
> 
> Tab or spaces?
Tab
> 
>>   		-r		按内存释放时间排序。
>>   		-s		按堆栈跟踪排序。
>>   		-t		按时间排序(默认)。
> 
> 
> Missing:
> 
>                  --sort <order>  Specify sorting order.  Sorting syntax is [+|-]key[,[+|-]key[,...]].
>                                  Choose a key from the **STANDARD FORMAT SPECIFIERS** section. The "+" is
>                                  optional since default direction is increasing numerical or lexicographic
>                                  order. Mixed use of abbreviated and complete-form of keys is allowed.
> 
--sort <order> 指定排序顺序。排序的语法是[+|-]key[,[+|-]key[,...]]。从
**标准格式指定器**那一节选择一个键。"+"是可选的,因为默认的方向是数字或
词法的增加。允许混合使用缩写和完整格式的键。


Thanks,
Yanteng
> 
>>   
>> -   其它函数:
>> +        例子:
>> +				./page_owner_sort <input> <output> --sort=n,+pid,-tgid
>> +				./page_owner_sort <input> <output> --sort=at
>>   
>> -	Cull:
>> -		-c		通过比较堆栈跟踪而不是总块来进行剔除。
>> +    其它函数::
>>   
>> -	Filter:
>> +	剔除:
>> +		--cull <rules>
>> +		        指定剔除规则。剔除的语法是key[,key[,...]]。从**标准格式指定器**
>> +				部分选择一个多字母键。
>> +		<rules>是一个以逗号分隔的列表形式的单一参数,它提供了一种指定单个剔除规则的
>> +		方法。 识别的关键字在下面的**标准格式指定器**部分有描述。<规则>可以通过键的
>> +		序列k1,k2,...来指定,在下面的标准排序键部分有描述。允许混合使用简写和完整形
>> +		式的键。
>> +
>> +		Examples:
>> +				./page_owner_sort <input> <output> --cull=stacktrace
>> +				./page_owner_sort <input> <output> --cull=st,pid,name
>> +				./page_owner_sort <input> <output> --cull=n,f
>> +
>> +	过滤:
>>   		-f		过滤掉内存已被释放的块的信息。
>> +
>> +	选择:
>> +		--pid <pidlist>		按pid选择。这将选择进程ID号出现在<pidlist>中的块。
>> +		--tgid <tgidlist>	按tgid选择。这将选择其线程组ID号出现在<tgidlist>
>> +		                    中的块。
>> +		--name <cmdlist>	按任务命令名称选择。这将选择其任务命令名称出现在
>> +		                    <cmdlist>中的区块。
>> +
>> +		<pidlist>, <tgidlist>, <cmdlist>是以逗号分隔的列表形式的单个参数,
>> +		它提供了一种指定单个选择规则的方法。
>> +
>> +
>> +		例子:
>> +				./page_owner_sort <input> <output> --pid=1
>> +				./page_owner_sort <input> <output> --tgid=1,2,3
>> +				./page_owner_sort <input> <output> --name name1,name2
>> +
>> +标准格式指定器
>> +==============
>> +::
>> +
>> +  --sort的选项:
>> +
>> +	键		键长		描述
>> +	p		pid		进程ID
>> +	tg		tgid		线程组ID
>> +	n		name		任务命令名称
>> +	st		stacktrace	页面分配的堆栈跟踪
>> +	T		txt		块的全文
>> +	ft		free_ts		页面发布时的时间戳
>> +	at		alloc_ts	页面被分配时的时间戳
>> +	ator		allocator	页面的内存分配器
>> +
>> +  --curl的选项:
>> +
>> +	键		键长		描述
>> +	p		pid		进程ID
>> +	tg		tgid		线程组ID
>> +	n		name		任务命令名称
>> +	f		free		该页是否已经发布
>> +	st		stacktrace	页面分配的堆栈跟踪
>> +	ator		allocator	页面的内存分配器
>> -- 
>> 2.27.0


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

* Re: [PATCH 3/3] docs/zh_CN: Update the translation of vm index to 5.19-rc1
  2022-06-10 16:12   ` Wu X.C.
@ 2022-06-13  2:38     ` Yanteng Si
  0 siblings, 0 replies; 11+ messages in thread
From: Yanteng Si @ 2022-06-13  2:38 UTC (permalink / raw)
  To: Wu X.C.
  Cc: corbet, alexs, seakeel, chenhuacai, jiaxun.yang, linux-doc,
	siyanteng01, zhoubinbin

On 2022/6/11 上午12:12, Wu X.C. wrote:
> On Thu, Jun 09, 2022 at 09:27:20PM +0800, Yanteng Si wrote:
>> update to commit 481cc97349d6 ("mm,doc: Add new
>> documentation structure")
>>
>> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
>> ---
>>   .../translations/zh_CN/vm/bootmem.rst         | 13 +++++++
>>   Documentation/translations/zh_CN/vm/index.rst | 39 +++++++++++++++----
>>   Documentation/translations/zh_CN/vm/oom.rst   | 13 +++++++
>>   .../translations/zh_CN/vm/page_allocation.rst | 13 +++++++
>>   .../translations/zh_CN/vm/page_cache.rst      | 13 +++++++
>>   .../translations/zh_CN/vm/page_reclaim.rst    | 13 +++++++
>>   .../translations/zh_CN/vm/page_tables.rst     | 13 +++++++
>>   .../translations/zh_CN/vm/physical_memory.rst | 13 +++++++
>>   .../translations/zh_CN/vm/process_addrs.rst   | 13 +++++++
>>   Documentation/translations/zh_CN/vm/shmfs.rst | 13 +++++++
>>   Documentation/translations/zh_CN/vm/swap.rst  | 13 +++++++
>>   .../translations/zh_CN/vm/vmalloc.rst         | 13 +++++++
>>   12 files changed, 175 insertions(+), 7 deletions(-)
>>   create mode 100644 Documentation/translations/zh_CN/vm/bootmem.rst
>>   create mode 100644 Documentation/translations/zh_CN/vm/oom.rst
>>   create mode 100644 Documentation/translations/zh_CN/vm/page_allocation.rst
>>   create mode 100644 Documentation/translations/zh_CN/vm/page_cache.rst
>>   create mode 100644 Documentation/translations/zh_CN/vm/page_reclaim.rst
>>   create mode 100644 Documentation/translations/zh_CN/vm/page_tables.rst
>>   create mode 100644 Documentation/translations/zh_CN/vm/physical_memory.rst
>>   create mode 100644 Documentation/translations/zh_CN/vm/process_addrs.rst
>>   create mode 100644 Documentation/translations/zh_CN/vm/shmfs.rst
>>   create mode 100644 Documentation/translations/zh_CN/vm/swap.rst
>>   create mode 100644 Documentation/translations/zh_CN/vm/vmalloc.rst
>>
>> diff --git a/Documentation/translations/zh_CN/vm/bootmem.rst b/Documentation/translations/zh_CN/vm/bootmem.rst
>> new file mode 100644
>> index 000000000000..45652031a9cc
>> --- /dev/null
>> +++ b/Documentation/translations/zh_CN/vm/bootmem.rst
>> @@ -0,0 +1,13 @@
>> +.. SPDX-License-Identifier: GPL-2.0
>> +
>> +:Original: Documentation/vm/bootmem.rst
>> +
>> +:翻译:
>> +
>> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
>> +
>> +:校译:
>> +
>> +========
>> +启动内存
>> +========
>> diff --git a/Documentation/translations/zh_CN/vm/index.rst b/Documentation/translations/zh_CN/vm/index.rst
>> index a1c6d529b6ff..e9adc693184d 100644
>> --- a/Documentation/translations/zh_CN/vm/index.rst
>> +++ b/Documentation/translations/zh_CN/vm/index.rst
>> @@ -12,11 +12,38 @@
>>   Linux内存管理文档
>>   =================
>>   
>> -这是一个关于Linux内存管理(mm)子系统内部的文档集,其中有不同层次的细节,包括注释
>> -和邮件列表的回复,用于阐述数据结构和算法的基本情况。如果你正在寻找关于简单分配内存的建
>> -议,请参阅(Documentation/translations/zh_CN/core-api/memory-allocation.rst)。
>> -对于控制和调整指南,请参阅(Documentation/admin-guide/mm/index)。
>> -TODO:待引用文档集被翻译完毕后请及时修改此处)
>> +这是一份关于了解Linux的内存管理子系统的指南。如果你正在寻找关于简单分配内存的
>> +建议,请参阅内存分配指南
>> +(Documentation/translations/zh_CN/core-api/memory-allocation.rst)。
>> +关于控制和调整的指南,请看管理指南
>> +(Documentation/translations/zh_CN/admin-guide/mm/index.rst)。
>> +
>> +
>> +.. toctree::
>> +   :maxdepth: 1
>> +
>> +   physical_memory
>> +   page_tables
>> +   process_addrs
>> +   bootmem
>> +   page_allocation
>> +   vmalloc
>> +   highmem
>> +   page_reclaim
>> +   swap
>> +   page_cache
>> +   shmfs
>> +   oom
>> +
>> +TODOLIST:
>> +* slab
>> +
>> +遗留文档
>> +========
>> +
>> +这是一个关于Linux内存管理(MM)子系统内部的旧文档的集合,其中有不同层次的细节,
>> +包括注释和邮件列表的回复,用于阐述数据结构和算法的描述。它应该被很好地整合到上述
>> +结构化的文档中,如果它已经完成了它的使命,可以删除。
>>   
>>   .. toctree::
>>      :maxdepth: 1
>> @@ -25,7 +52,6 @@ TODO:待引用文档集被翻译完毕后请及时修改此处)
>>      balance
>>      damon/index
>>      free_page_reporting
>> -   highmem
>>      ksm
>>      frontswap
>>      hmm
>> @@ -48,7 +74,6 @@ TODOLIST:
>>   * free_page_reporting
>>   * hugetlbfs_reserv
>>   * page_migration
>> -* slub
>>   * transhuge
>>   * unevictable-lru
>>   * vmalloced-kernel-stacks
>> diff --git a/Documentation/translations/zh_CN/vm/oom.rst b/Documentation/translations/zh_CN/vm/oom.rst
>> new file mode 100644
>> index 000000000000..00cc444cf86b
>> --- /dev/null
>> +++ b/Documentation/translations/zh_CN/vm/oom.rst
>> @@ -0,0 +1,13 @@
>> +.. SPDX-License-Identifier: GPL-2.0
>> +
>> +:Original: Documentation/vm/oom.rst
>> +
>> +:翻译:
>> +
>> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
>> +
>> +:校译:
>> +
>> +============
>> +内存不足处理
>> +============
>> diff --git a/Documentation/translations/zh_CN/vm/page_allocation.rst b/Documentation/translations/zh_CN/vm/page_allocation.rst
>> new file mode 100644
>> index 000000000000..ab779498abe6
>> --- /dev/null
>> +++ b/Documentation/translations/zh_CN/vm/page_allocation.rst
>> @@ -0,0 +1,13 @@
>> +.. SPDX-License-Identifier: GPL-2.0
>> +
>> +:Original: Documentation/vm/page_allocation.rst
>> +
>> +:翻译:
>> +
>> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
>> +
>> +:校译:
>> +
>> +========
>> +页面分配
>> +========
>> diff --git a/Documentation/translations/zh_CN/vm/page_cache.rst b/Documentation/translations/zh_CN/vm/page_cache.rst
>> new file mode 100644
>> index 000000000000..6e000699da78
>> --- /dev/null
>> +++ b/Documentation/translations/zh_CN/vm/page_cache.rst
>> @@ -0,0 +1,13 @@
>> +.. SPDX-License-Identifier: GPL-2.0
>> +
>> +:Original: Documentation/vm/page_cache.rst
>> +
>> +:翻译:
>> +
>> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
>> +
>> +:校译:
>> +
>> +========
>> +页面缓存
>> +========
>> diff --git a/Documentation/translations/zh_CN/vm/page_reclaim.rst b/Documentation/translations/zh_CN/vm/page_reclaim.rst
>> new file mode 100644
>> index 000000000000..3939d4c4a67b
>> --- /dev/null
>> +++ b/Documentation/translations/zh_CN/vm/page_reclaim.rst
>> @@ -0,0 +1,13 @@
>> +.. SPDX-License-Identifier: GPL-2.0
>> +
>> +:Original: Documentation/vm/page_reclaim.rst
>> +
>> +:翻译:
>> +
>> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
>> +
>> +:校译:
>> +
>> +========
>> +页面回收
>> +========
>> diff --git a/Documentation/translations/zh_CN/vm/page_tables.rst b/Documentation/translations/zh_CN/vm/page_tables.rst
>> new file mode 100644
>> index 000000000000..180fb79befd0
>> --- /dev/null
>> +++ b/Documentation/translations/zh_CN/vm/page_tables.rst
>> @@ -0,0 +1,13 @@
>> +.. SPDX-License-Identifier: GPL-2.0
>> +
>> +:Original: Documentation/vm/page_tables.rst
>> +
>> +:翻译:
>> +
>> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
>> +
>> +:校译:
>> +
>> +====
>> +页表
>> +====
>> diff --git a/Documentation/translations/zh_CN/vm/physical_memory.rst b/Documentation/translations/zh_CN/vm/physical_memory.rst
>> new file mode 100644
>> index 000000000000..5427baea5306
>> --- /dev/null
>> +++ b/Documentation/translations/zh_CN/vm/physical_memory.rst
>> @@ -0,0 +1,13 @@
>> +.. SPDX-License-Identifier: GPL-2.0
>> +
>> +:Original: Documentation/vm/physical_memory.rst
>> +
>> +:翻译:
>> +
>> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
>> +
>> +:校译:
>> +
>> +========
>> +物理内存
>> +========
>> diff --git a/Documentation/translations/zh_CN/vm/process_addrs.rst b/Documentation/translations/zh_CN/vm/process_addrs.rst
>> new file mode 100644
>> index 000000000000..980fa32ecf07
>> --- /dev/null
>> +++ b/Documentation/translations/zh_CN/vm/process_addrs.rst
>> @@ -0,0 +1,13 @@
>> +.. SPDX-License-Identifier: GPL-2.0
>> +
>> +:Original: Documentation/vm/process_addrs.rst
>> +
>> +:翻译:
>> +
>> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
>> +
>> +:校译:
>> +
>> +========
>> +进程地址
>> +========
>> diff --git a/Documentation/translations/zh_CN/vm/shmfs.rst b/Documentation/translations/zh_CN/vm/shmfs.rst
>> new file mode 100644
>> index 000000000000..5b3c85e5f992
>> --- /dev/null
>> +++ b/Documentation/translations/zh_CN/vm/shmfs.rst
>> @@ -0,0 +1,13 @@
>> +.. SPDX-License-Identifier: GPL-2.0
>> +
>> +:Original: Documentation/vm/shmfs.rst
>> +
>> +:翻译:
>> +
>> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
>> +
>> +:校译:
>> +
>> +================
>> +共享内存文件系统
>> +================
> 
> Missing:
> 
> diff --git a/Documentation/vm/slab.rst b/Documentation/vm/slab.rst
> new file mode 100644
> index 000000000000..87d5a5bb172f
> --- /dev/null
> +++ b/Documentation/vm/slab.rst
> @@ -0,0 +1,5 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +===============
> +Slab Allocation
> +===============
> 
OK,Thanks.

Thanks,
Yanteng
> --
> Thanks,
> 	Wu
> 
>> diff --git a/Documentation/translations/zh_CN/vm/swap.rst b/Documentation/translations/zh_CN/vm/swap.rst
>> new file mode 100644
>> index 000000000000..568a4472ff11
>> --- /dev/null
>> +++ b/Documentation/translations/zh_CN/vm/swap.rst
>> @@ -0,0 +1,13 @@
>> +.. SPDX-License-Identifier: GPL-2.0
>> +
>> +:Original: Documentation/vm/swap.rst
>> +
>> +:翻译:
>> +
>> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
>> +
>> +:校译:
>> +
>> +========
>> +交换内存
>> +========
>> diff --git a/Documentation/translations/zh_CN/vm/vmalloc.rst b/Documentation/translations/zh_CN/vm/vmalloc.rst
>> new file mode 100644
>> index 000000000000..efb542878f8c
>> --- /dev/null
>> +++ b/Documentation/translations/zh_CN/vm/vmalloc.rst
>> @@ -0,0 +1,13 @@
>> +.. SPDX-License-Identifier: GPL-2.0
>> +
>> +:Original: Documentation/vm/vmalloc.rst
>> +
>> +:翻译:
>> +
>> + 司延腾 Yanteng Si <siyanteng@loongson.cn>
>> +
>> +:校译:
>> +
>> +================
>> +连续虚拟内存分配
>> +================
>> -- 
>> 2.27.0


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

* Re: [PATCH 1/3] docs/zh_CN: Update the translation of highmem to 5.19-rc1
  2022-06-13  2:14     ` Yanteng Si
@ 2022-06-13  6:17       ` Alex Shi
  0 siblings, 0 replies; 11+ messages in thread
From: Alex Shi @ 2022-06-13  6:17 UTC (permalink / raw)
  To: Yanteng Si
  Cc: Wu X.C., Jonathan Corbet, Alex Shi, Huacai Chen, Jiaxun Yang,
	Linux Doc Mailing List, yanteng si, zhoubinbin

Reviewed-by: Alex Shi <alexs@kernel.org>


On Mon, Jun 13, 2022 at 10:14 AM Yanteng Si <siyanteng@loongson.cn> wrote:
>
> On 2022/6/10 上午1:09, Wu X.C. wrote:
> > Hi Yanteng,
> Hi Xiangcheng
>
> Sorry I'm so late in replying, I've been configuring my email all
> weekend. >_<
> >
> > On Thu, Jun 09, 2022 at 09:27:18PM +0800, Yanteng Si wrote:
> >> update to commit 110bf7a52307 ("Documentation/vm: rework
> >> "Temporary Virtual Mappings" section")
> >>
> >> Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
> >> ---
> >>   .../translations/zh_CN/vm/highmem.rst         | 77 +++++++++++--------
> >>   1 file changed, 43 insertions(+), 34 deletions(-)
> >>
> >> diff --git a/Documentation/translations/zh_CN/vm/highmem.rst b/Documentation/translations/zh_CN/vm/highmem.rst
> >> index 018838e58c3e..23057ccf71ad 100644
> >> --- a/Documentation/translations/zh_CN/vm/highmem.rst
> >> +++ b/Documentation/translations/zh_CN/vm/highmem.rst
> >> @@ -50,55 +50,55 @@
> >>   临时虚拟映射
> >>   ============
> >>
> >> -内核包含几种创建临时映射的方法。:
> >> +内核包含几种创建临时映射的方法。下面的列表按照使用的优先顺序显示了它们。
> >>
> >> -* vmap().  这可以用来将多个物理页长期映射到一个连续的虚拟空间。它需要synchronization
> >> -  来解除映射。
> >> +* kmap_local_page()。这个函数是用来要求短期映射的。它可以从任何上下文(包括中断)中调用,
> >> +  但是映射只能在获取它们的上下文中使用。
> >>
> >> -* kmap().  这允许对单个页面进行短期映射。它需要synchronization,但在一定程度上被摊销。
> >> -  当以嵌套方式使用时,它也很容易出现死锁,因此不建议在新代码中使用它。
> >> +  在可行的情况下,这个函数应该比其他所有的函数更受欢迎。
> >
> > How about 更受欢迎 -> 优先使用 ?
> Great!
> >
> >>
> >> -* kmap_atomic().  这允许对单个页面进行非常短的时间映射。由于映射被限制在发布它的CPU上,
> >> -  它表现得很好,但发布任务因此被要求留在该CPU上直到它完成,以免其他任务取代它的映射。
> >> -
> >> -  kmap_atomic() 也可以由中断上下文使用,因为它不睡眠,而且调用者可能在调用kunmap_atomic()
> >> -  之后才睡眠。
> >> +  这些映射是线程本地和CPU本地的,这意味着映射只能从这个线程中访问,并且当映射处于活动状
> >> +  态时,该线程与CPU绑定。即使线程被抢占了(因为抢占永远不会被函数禁用),CPU也不能通过
> >> +  CPU-hotplug从系统中拔出,直到映射被处理掉。
> >>
> >> -  可以假设k[un]map_atomic()不会失败。
> >> +  在本地的kmap区域中采取pagefaults是有效的,除非获取本地映射的上下文由于其他原因不允许
> >> +  这样做。
> >>
> >> +  kmap_local_page()总是返回一个有效的虚拟地址,并且假定kunmap_local()不会失败。
> >>
> >> -使用kmap_atomic
> >> -===============
> >> +  嵌套kmap_local_page()和kmap_atomic()映射在一定程度上是允许的(最多到KMAP_TYPE_NR),
> >> +  但是它们的调用必须严格排序,因为映射的实现是基于堆栈的。关于如何管理嵌套映射的细节,
> >> +  请参见kmap_local_page() kdocs(包含在 "函数 "部分)。
> >>
> >> -何时何地使用 kmap_atomic() 是很直接的。当代码想要访问一个可能从高内存(见__GFP_HIGHMEM)
> >> -分配的页面的内容时,例如在页缓存中的页面,就会使用它。该API有两个函数,它们的使用方式与
> >> -下面类似::
> >> -
> >> -    /* 找到感兴趣的页面。 */
> >> -    struct page *page = find_get_page(mapping, offset);
> >> -
> >> -    /* 获得对该页内容的访问权。 */
> >> -    void *vaddr = kmap_atomic(page);
> >> +* kmap_atomic().  这允许对单个页面进行非常短的时间映射。由于映射被限制在发布它的CPU上,
> >> +  它表现得很好,但发布任务因此被要求留在该CPU上直到它完成,以免其他任务取代它的映射。
> >
> > 发布的任务
> OK!
> >
> >>
> >> -    /* 对该页的内容做一些处理。 */
> >> -    memset(vaddr, 0, PAGE_SIZE);
> >> +  kmap_atomic()也可以被中断上下文使用,因为它不睡眠,调用者也可能在调用kunmap_atomic()
> >> +  后才睡眠。
> >>
> >> -    /* 解除该页面的映射。 */
> >> -    kunmap_atomic(vaddr);
> >> +  内核中对kmap_atomic()的每次调用都会创建一个不可抢占的段,并禁用分页默认值。这可能是
> >
> > 分页默认值?
> > pagefaults
> > 页错误 or 缺页异常?
> 缺页异常
> >
> >> +  一个不需要的延迟的来源。因此用户应该选择kmap_local_page()而不是kmap_atomic()。
> >
> > How about
> > 这可能是未预期延迟的来源之一
> OK!
> >
> >>
> >> -注意,kunmap_atomic()调用的是kmap_atomic()调用的结果而不是参数。
> >> +  假设k[un]map_atomic()不会失败。
> >>
> >> -如果你需要映射两个页面,因为你想从一个页面复制到另一个页面,你需要保持kmap_atomic调用严
> >> -格嵌套,如::
> >> +* kmap()。这应该被用来对单个页面进行短时间的映射,对抢占或迁移没有限制。它有一个开销,
> >
> > 它会带来开销
> OK!
> >
> >> +  因为映射空间是受限制的,并且受到全局锁的保护,以实现同步。当不再需要映射时,必须用
> >> +  kunmap()释放该页被映射的地址。
> >>
> >> -    vaddr1 = kmap_atomic(page1);
> >> -    vaddr2 = kmap_atomic(page2);
> >> +  kmap()还需要在kmap的池被回绕(TLB项用光了,需要从第一项复用)时进行全局TLB无效化,
> >
> > Missing:
> > Mapping changes must be propagated across all the CPUs.
> 映射变化必须广播到所有CPU(核)上
> >
> >> +  当映射空间被完全利用时,它可能会阻塞,直到有一个可用的槽出现。因此,kmap()只能从
> >> +  可抢占的上下文中调用。
> >>
> >> -    memcpy(vaddr1, vaddr2, PAGE_SIZE);
> >> +  如果一个映射必须持续相对较长的时间,上述所有的工作都是必要的,但是内核中大部分的
> >> +  高内存映射都是短暂的,而且只在一个地方使用。这意味着在这种情况下,kmap()的成本大
> >> +  多被浪费了。kmap()并不是为长期映射而设计的,但是它已经朝着这个方向发展了,在较新
> >> +  的代码中强烈不鼓励使用它,前面的函数集应该是首选。
> >>
> >> -    kunmap_atomic(vaddr2);
> >> -    kunmap_atomic(vaddr1);
> >> +  在64位系统中,调用kmap_local_page()、kmap_atomic()和kmap()没有实际作用,因为64位
> >> +  地址空间足以解决所有物理内存的页面被永久映射。
> >
> > 足以永久映射所有物理内存页面
> OK!
>
> Thanks,
> Yanteng
> >
> >>
> >> +* vmap()。这可以用来将多个物理页长期映射到一个连续的虚拟空间。它需要全局同步来解除
> >> +  映射。
> >>
> >>   临时映射的成本
> >>   ==============
> >> @@ -126,3 +126,12 @@ i386 PAE
> >>
> >>   一般的建议是,你不要在32位机器上使用超过8GiB的空间--尽管更多的空间可能对你和你的工作
> >>   量有用,但你几乎是靠你自己--不要指望内核开发者真的会很关心事情的进展情况。
> >> +
> >> +函数
> >> +====
> >> +
> >> +该API在以下内核代码中:
> >> +
> >> +include/linux/highmem.h
> >> +
> >> +include/linux/highmem-internal.h
> >> --
> >> 2.27.0
> >
> > Thanks,
> >       Wu
> >
>

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

end of thread, other threads:[~2022-06-13  6:18 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-09 13:27 [PATCH 0/3] docs/zh_CN: Update the translation of vm to 5.19-rc1 Yanteng Si
2022-06-09 13:27 ` [PATCH 1/3] docs/zh_CN: Update the translation of highmem " Yanteng Si
2022-06-09 17:09   ` Wu X.C.
2022-06-13  2:14     ` Yanteng Si
2022-06-13  6:17       ` Alex Shi
2022-06-09 13:27 ` [PATCH 2/3] docs/zh_CN: Update the translation of page_owner " Yanteng Si
2022-06-09 17:09   ` Wu X.C.
2022-06-13  2:33     ` Yanteng Si
2022-06-09 13:27 ` [PATCH 3/3] docs/zh_CN: Update the translation of vm index " Yanteng Si
2022-06-10 16:12   ` Wu X.C.
2022-06-13  2:38     ` Yanteng Si

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).