~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/mm/ksm.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/translations/zh_CN/mm/ksm.rst (Version linux-6.12-rc7) and /Documentation/translations/zh_CN/mm/ksm.rst (Version linux-5.12.19)


  1 .. include:: ../disclaimer-zh_CN.rst              
  2                                                   
  3 :Original: Documentation/mm/ksm.rst               
  4                                                   
  5 :翻译:                                          
  6                                                   
  7    徐鑫 xu xin <xu.xin16@zte.com.cn>             
  8                                                   
  9 ============                                      
 10 内核同页合并                                
 11 ============                                      
 12                                                   
 13 KSM 是一种节省内存的数据去重功能    
 14 到Linux内核。详见 ``mm/ksm.c`` 的实现    
 15 https://lwn.net/Articles/330589                   
 16                                                   
 17 KSM的用户空间的接口在Documentation/tr    
 18 文档中有描述。                             
 19                                                   
 20 设计                                            
 21 ====                                              
 22                                                   
 23 概述                                            
 24 ----                                              
 25                                                   
 26 概述内容请见mm/ksm.c文档中的“DOC:     
 27                                                   
 28 逆映射                                         
 29 ------                                            
 30 KSM维护着稳定树中的KSM页的逆映射    
 31                                                   
 32 当KSM页面的共享数小于 ``max_page_shar    
 33 KSM页的稳定树其中的节点指向了一    
 34 的 ``page->mapping`` 指向了该稳定树节    
 35                                                   
 36 如果共享数超过了阈值,KSM将给稳    
 37 个稳定树"副本"的"链"。每个副本都    
 38 指向该"副本"。                              
 39                                                   
 40 每个链以及链接到该链中的所有"副    
 41 内容,尽管任中一个"副本"是由同    
 42                                                   
 43 这样一来,相比与无限的逆映射链    
 44 本身中不能有重复的KSM页面内容仍    
 45                                                   
 46 由 ``max_page_sharing`` 强制决定的数据    
 47 rmap链表变得过大。rmap的遍历具有O(    
 48 虚拟映射)的数量,而这个共享页    
 49 因此,这有效地将线性O(N)计算复杂    
 50 程在稳定节点"链"上的遍历也是O(N)    
 51 的数量,因此它对ksmd性能没有显著    
 52 保留在"副本"列表的开头。               
 53                                                   
 54 ``max_page_sharing`` 的值设置得高了会    
 55 树副本排队进入稳定节点chain->hlist    
 56 缩、NUMA平衡和页面迁移过程中可能    
 57                                                   
 58 ``stable_node_dups/stable_node_chains`` 的比    
 59 的影响,高比值可能意味着稳定节    
 60 法来解决,该算法将rmap项从一个稳    
 61 那些仅包含极少rmap项的稳定节点"du    
 62 能会减慢应用程序在KSM页面上的只    
 63                                                   
 64 KSM会定期扫描稳定节点"链"中链接    
 65 这种扫描的频率由 ``stable_node_chains_    
 66                                                   
 67 参考                                            
 68 ====                                              
 69 内核代码请见mm/ksm.c。                     
 70 涉及的函数(mm_slot  ksm_scan  stable_node    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php