Re: [PATCH v3 2/3] zh_CN: Add translations for admin-guide/mm/ksm.rst

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



<cgel.zte@xxxxxxxxx> 于2022年2月15日周二 00:02写道:
>
> From: xu xin <xu.xin16@xxxxxxxxxx>
>
> Translate Documentation/admin-guide/mm/ksm.rst into Chinese.
>
> Reviewed-by: Yang Yang <yang.yang29@xxxxxxxxxx>
> Reviewed-by: Alex Shi <alexs@xxxxxxxxxx>
> Reviewed-by: Yanteng Si <siyanteng@xxxxxxxxxxx>
> Signed-off-by: xu xin <xu.xin16@xxxxxxxxxx>
> ---
>  .../translations/zh_CN/admin-guide/mm/ksm.rst      | 148 +++++++++++++++++++++
>  1 file changed, 148 insertions(+)
>  create mode 100644 Documentation/translations/zh_CN/admin-guide/mm/ksm.rst
>
> diff --git a/Documentation/translations/zh_CN/admin-guide/mm/ksm.rst b/Documentation/translations/zh_CN/admin-guide/mm/ksm.rst
> new file mode 100644
> index 0000000..bbf654c
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/admin-guide/mm/ksm.rst
> @@ -0,0 +1,148 @@
> +.. include:: ../disclaimer-zh_CN.rst
> +
> +:Original: Documentation/admin-guide/mm/ksm.rst
> +
> +:翻译:
> +
> +  徐鑫 xu xin <xu.xin16@xxxxxxxxxx>
> +
> +
> +============
> +内核同页合并
> +============
> +
> +
> +概述
> +====
> +
> +KSM是一种能节省内存的数据去重功能,由CONFIG_KSM=y启用,并在2.6.32版本时被添
> +加到Linux内核。详见 ``mm/ksm.c`` 的实现,以及http://lwn.net/Articles/306704
> +和https://lwn.net/Articles/330589
> +
> +KSM最初目的是为了与KVM(即著名的内核共享内存)一起使用而开发的,通过共享虚拟机
> +之间的公共数据,将更多虚拟机放入物理内存。但它对于任何会生成多个相同数据实例的
> +应用程序都是很有用的。
> +
> +KSM的守护进程ksmd会定期扫描那些已注册的用户内存区域,查找内容相同的页面,这些
> +页面可以被单个写保护页面替换(如果进程以后想要更新其内容,将自动复制)。使用:
> +引用:`sysfs intraface  <ksm_sysfs>` 接口来配置KSM守护程序在单个过程中所扫描的页
> +数以及两个过程之间的间隔时间。
> +
> +KSM只合并匿名(私有)页面,从不合并页缓存(文件)页面。KSM的合并页面最初只能被
> +锁定在内核内存中,但现在可以就像其他用户页面一样被换出(但当它们被交换回来时共
> +享会被破坏: ksmd必须重新发现它们的身份并再次合并)。
> +
> +以madvise控制KSM
> +================
> +
> +KSM仅在特定的地址空间区域时运行,即应用程序通过使用如下所示的madvise(2)系统调
> +用来请求某块地址成为可能的合并候选者的地址空间::
> +
> +    int madvise(addr, length, MADV_MERGEABLE)
> +
> +应用程序当然也可以通过调用::
> +
> +    int madvise(addr, length, MADV_UNMERGEABLE)
> +
> +来取消该请求,并恢复为非共享页面:此时KSM将去除合并在该范围内的任何合并页。注意:
> +这个去除合并的调用可能突然需要的内存量超过实际可用的内存量-那么可能会出现EAGAIN
> +失败,但更可能会唤醒OOM killer。
> +
> +如果KSM未被配置到正在运行的内核中,则madvise MADV_MERGEABLE 和 MADV_UNMERGEABLE
> +的调用只会以EINVAL 失败。如果正在运行的内核是用CONFIG_KSM=y方式构建的,那么这些
> +调用通常会成功:即使KSM守护程序当前没有运行,MADV_MERGEABLE 仍然会在KSM守护程序
> +启动时注册范围,即使该范围不能包含KSM实际可以合并的任何页面,即使MADV_UNMERGEABLE
> +应用于从未标记为MADV_MERGEABLE的范围。
> +
> +如果一块内存区域必须被拆分为至少一个新的MADV_MERGEABLE区域或MADV_UNMERGEABLE区域,
> +当该进程将超过 ``vm.max_map_count`` 的设定,则madvise可能返回ENOMEM。(请参阅文档
> +Documentation/admin-guide/sysctl/vm.rst)。
> +
> +与其他madvise调用一样,它们在用户地址空间的映射区域上使用:如果指定的范围包含未
> +映射的间隙(尽管在中间的映射区域工作),它们将报告ENOMEM,如果没有足够的内存用于
> +内部结构,则可能会因EAGAIN而失败。
> +
> +KSM守护进程sysfs接口
> +===================
Hi xu

Title underline too short.

Thanks,
Yanteng




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux