* [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).