mirror of
https://github.com/torvalds/linux.git
synced 2026-09-11 20:13:02 +02:00
ksm: update comments and docs to reference folio->mapping
The KSM code already stores and checks the stable node key via folio->mapping, but the comment in ksm_get_folio() and the reverse mapping documentation in ksm.rst still refer to page->mapping. This is a pure wording update to match the folio-based implementation. No functional change is intended. Link: https://lore.kernel.org/20260805105927.41987-1-hongfu.li@linux.dev Signed-off-by: Hongfu Li <lihongfu@kylinos.cn> Acked-by: David Hildenbrand (Arm) <david@kernel.org> Reviewed-by: Xu Xin <xu.xin16@zte.com.cn> Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn> Cc: Alex Shi <alexs@kernel.org> Cc: Chengming Zhou <chengming.zhou@linux.dev> Cc: David Hildenbrand <david@kernel.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Liam R. Howlett <liam@infradead.org> Cc: Lorenzo Stoakes <ljs@kernel.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Mike Rapoport <rppt@kernel.org> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Vlastimil Babka <vbabka@kernel.org> Cc: Yanteng Si <si.yanteng@linux.dev> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
3c37cac718
commit
a44ab4bd1e
|
|
@ -24,13 +24,13 @@ tree.
|
|||
|
||||
If a KSM page is shared between less than ``max_page_sharing`` VMAs,
|
||||
the node of the stable tree that represents such KSM page points to a
|
||||
list of struct ksm_rmap_item and the ``page->mapping`` of the
|
||||
list of struct ksm_rmap_item and the ``folio->mapping`` of the
|
||||
KSM page points to the stable tree node.
|
||||
|
||||
When the sharing passes this threshold, KSM adds a second dimension to
|
||||
the stable tree. The tree node becomes a "chain" that links one or
|
||||
more "dups". Each "dup" keeps reverse mapping information for a KSM
|
||||
page with ``page->mapping`` pointing to that "dup".
|
||||
page with ``folio->mapping`` pointing to that "dup".
|
||||
|
||||
Every "chain" and all "dups" linked into a "chain" enforce the
|
||||
invariant that they represent the same write protected memory content,
|
||||
|
|
|
|||
|
|
@ -31,10 +31,10 @@ KSM维护着稳定树中的KSM页的逆映射信息。
|
|||
|
||||
当KSM页面的共享数小于 ``max_page_sharing`` 的虚拟内存区域(VMAs)时,则代表了
|
||||
KSM页的稳定树其中的节点指向了一个ksm_rmap_item结构体类型的列表。同时,这个KSM页
|
||||
的 ``page->mapping`` 指向了该稳定树节点。
|
||||
的 ``folio->mapping`` 指向了该稳定树节点。
|
||||
|
||||
如果共享数超过了阈值,KSM将给稳定树添加第二个维度。稳定树就变成链接一个或多
|
||||
个稳定树"副本"的"链"。每个副本都保留KSM页的逆映射信息,其中 ``page->mapping``
|
||||
个稳定树"副本"的"链"。每个副本都保留KSM页的逆映射信息,其中 ``folio->mapping``
|
||||
指向该"副本"。
|
||||
|
||||
每个链以及链接到该链中的所有"副本"强制不变的是,它们代表了相同的写保护内存
|
||||
|
|
|
|||
7
mm/ksm.c
7
mm/ksm.c
|
|
@ -959,10 +959,9 @@ enum ksm_get_folio_flags {
|
|||
* seconds or even minutes: much too unresponsive. So instead we use a
|
||||
* "keyhole reference": access to the ksm page from the stable node peeps
|
||||
* out through its keyhole to see if that page still holds the right key,
|
||||
* pointing back to this stable node. This relies on freeing a PageAnon
|
||||
* page to reset its page->mapping to NULL, and relies on no other use of
|
||||
* a page to put something that might look like our key in page->mapping.
|
||||
* is on its way to being freed; but it is an anomaly to bear in mind.
|
||||
* pointing back to this stable node. This relies on freeing an anon
|
||||
* folio to reset its mapping to NULL, and relies on no other use of a
|
||||
* folio to put something that might look like our key in its mapping.
|
||||
*/
|
||||
static struct folio *ksm_get_folio(struct ksm_stable_node *stable_node,
|
||||
enum ksm_get_folio_flags flags)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user