diff options
author | Yanteng Si <siyanteng01@gmail.com> | 2022-03-28 17:59:51 +0800 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2022-04-05 10:08:05 -0600 |
commit | 114b27cd15453541a7e34d0dc64a90032b26adc7 (patch) | |
tree | 3e243f56ed73a8a0bb9b78f028a85a12afda668c /Documentation/translations | |
parent | dc742b017439b18847745c1095e0ee997d586d85 (diff) | |
download | linux-stable-114b27cd15453541a7e34d0dc64a90032b26adc7.tar.gz linux-stable-114b27cd15453541a7e34d0dc64a90032b26adc7.tar.bz2 linux-stable-114b27cd15453541a7e34d0dc64a90032b26adc7.zip |
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>
Diffstat (limited to 'Documentation/translations')
-rw-r--r-- | Documentation/translations/zh_CN/vm/index.rst | 2 | ||||
-rw-r--r-- | Documentation/translations/zh_CN/vm/remap_file_pages.rst | 32 |
2 files changed, 33 insertions, 1 deletions
diff --git a/Documentation/translations/zh_CN/vm/index.rst b/Documentation/translations/zh_CN/vm/index.rst index a2dea8b618ad..3e4f4cac509c 100644 --- a/Documentation/translations/zh_CN/vm/index.rst +++ b/Documentation/translations/zh_CN/vm/index.rst @@ -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 diff --git a/Documentation/translations/zh_CN/vm/remap_file_pages.rst b/Documentation/translations/zh_CN/vm/remap_file_pages.rst new file mode 100644 index 000000000000..af6b7e28af23 --- /dev/null +++ b/Documentation/translations/zh_CN/vm/remap_file_pages.rst @@ -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 +的注释。 |