docs/zh_CN: add vm remap_file_pages translation

Translate .../vm/remap_file_pages.rst into Chinese.

Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
Reviewed-by: Alex Shi <alexs@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
Yanteng Si 2022-03-28 17:59:51 +08:00 committed by Jonathan Corbet
parent dc742b0174
commit 114b27cd15
2 changed files with 33 additions and 1 deletions

View file

@ -35,6 +35,7 @@ TODO:待引用文档集被翻译完毕后请及时修改此处)
page_frags
page_owner
page_table_check
remap_file_pages
TODOLIST:
* arch_pgtable_helpers
@ -43,7 +44,6 @@ TODOLIST:
* hugetlbfs_reserv
* numa
* page_migration
* remap_file_pages
* slub
* split_page_table_lock
* transhuge

View file

@ -0,0 +1,32 @@
:Original: Documentation/vm/remap_file_pages.rst
:翻译:
司延腾 Yanteng Si <siyanteng@loongson.cn>
:校译:
==============================
remap_file_pages()系统调用
==============================
remap_file_pages()系统调用被用来创建一个非线性映射,也就是说,在这个映射中,
文件的页面被无序映射到内存中。使用remap_file_pages()比重复调用mmap(2)的好
处是前者不需要内核创建额外的VMA虚拟内存区数据结构。
支持非线性映射需要在内核虚拟内存子系统中编写大量的non-trivial的代码包括热
路径。另外,为了使非线性映射工作,内核需要一种方法来区分正常的页表项和带有文件
偏移的项pte_file。内核为达到这个目的在PTE中保留了标志。PTE标志是稀缺资
特别是在某些CPU架构上。如果能腾出这个标志用于其他用途就更好了。
幸运的是在生活中并没有很多remap_file_pages()的用户。只知道有一个企业的RDBMS
实现在32位系统上使用这个系统调用来映射比32位虚拟地址空间线性尺寸更大的文件。
由于64位系统的广泛使用这种使用情况已经不重要了。
syscall被废弃了现在用一个模拟来代替它。仿真会创建新的VMA而不是非线性映射。
对于remap_file_pages()的少数用户来说它的工作速度会变慢但ABI被保留了。
仿真的一个副作用除了性能之外由于额外的VMA用户可以更容易达到
vm.max_map_count的限制。关于限制的更多细节请参见DEFAULT_MAX_MAP_COUNT
的注释。