Alex Shi <seakeel@xxxxxxxxx> 于2022年3月22日周二 15:48写道: > > On Thu, Mar 17, 2022 at 2:51 PM Yanteng Si <siyanteng01@xxxxxxxxx> wrote: > > > > From: Yanteng Si <siyanteng01@xxxxxxxxx> > > > > Translate .../vm/remap_file_pages.rst into Chinese. > > > > Signed-off-by: Yanteng Si <siyanteng@xxxxxxxxxxx> > > --- > > Documentation/translations/zh_CN/vm/index.rst | 2 +- > > .../zh_CN/vm/remap_file_pages.rst | 32 +++++++++++++++++++ > > 2 files changed, 33 insertions(+), 1 deletion(-) > > create mode 100644 Documentation/translations/zh_CN/vm/remap_file_pages.rst > > > > 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..3e0e49b3dffb > > --- /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@xxxxxxxxxxx> > > + > > +:校译: > > + > > + > > +============================== > > +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 > > +的注释。 > > \ No newline at end of file > > do we need to put this line here? :) maybe drop it since no points. will drop it, In fact this is inserted automatically by vscode, because I didn't insert a line break at the end of the last line, and this line doesn't appear in context after applying the patch. Thanks, Yanteng > > Reviewed-by: Alex Shi <alexs@xxxxxxxxxx> > > > -- > > 2.27.0 > >