函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\rmap.c Create Date:2022-07-27 16:26:11
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:page_remove_rmap - take down pte mapping from a page*@page: page to remove mapping from*@compound: uncharge the page as compound or small page* The caller needs to hold the pte lock.

函数原型:void page_remove_rmap(struct page *page, bool compound)

返回类型:void

参数:

类型参数名称
struct page *page
boolcompound
1329  如果非PageAnon(page)则返回:page_remove_file_rmap(page, compound)
1332  如果compound则返回:page_remove_anon_compound_rmap(page)
1336  如果非atomic_add_negative( - 1, & * If the page can be mapped to userspace, encodes the number * of times this page is referenced by a page table.)则返回
1344  __dec_node_page_state(page, Mapped anonymous pages )
1346  如果此条件成立可能性小(为编译器优化)(PageMlocked(page))则LRU accounting for clear_page_mlock()
1349  如果PageTransCompound returns true for both transparent huge pages* and hugetlbfs pages, so it should only be called when it's known* that hugetlbfs pages aren't involved.deferred_split_huge_page(compound_head(page))
调用者
名称描述
zap_pte_range
wp_page_copyHandle the case of a page which we actually need to copy to a new page.* Called with mmap_sem locked and the old page referenced, but* without the ptl held.* High level logic flow:* - Allocate a page, copy the content of the old page to the new one.
try_to_unmap_one@arg: enum ttu_flags will be passed to this argument
__unmap_hugepage_range
hugetlb_cowHugetlb_cow() should be called with page lock of the original hugepage held.* Called with hugetlb_instantiation_mutex held and pte_page locked so we* cannot race with other handlers or page migration.
replace_pageplace_page - replace page in vma by new ksm page*@vma: vma that holds the pte pointing to page*@page: the page we are replacing by kpage*@kpage: the ksm page we replace page by*@orig_pte: the original value of the pte
do_huge_pmd_wp_page_fallback
do_huge_pmd_wp_page
zap_huge_pmd
__split_huge_pmd_locked
__collapse_huge_page_copy
__replace_page__replace_page - replace page in vma by new page