函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:include\linux\mm.h Create Date:2022-07-27 06:44:40
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:page_mapcount

函数原型:static inline int page_mapcount(struct page *page)

返回类型:int

参数:

类型参数名称
struct page *page
704  VM_BUG_ON_PAGE(PageSlab(page), page)
706  如果此条件成立可能性小(为编译器优化)(PageCompound(page))则返回:Slow path of page_mapcount() for compound pages
708  返回:atomic_read( & * If the page can be mapped to userspace, encodes the number * of times this page is referenced by a page table.)加1
调用者
名称描述
unaccount_page_cache_page
isolate_migratepages_blocksolate_migratepages_block() - isolate all migrate-able pages within* a single pageblock*@cc: Compaction control structure.*@low_pfn: The first PFN to isolate*@end_pfn: The one-past-the-last PFN to isolate, within same pageblock
__dump_page
zap_pte_range
do_numa_page
__munlock_isolated_pageFinish munlock after successful page isolation* Page must be locked. This is a wrapper for try_to_munlock()* and putback_lru_page() with munlock accounting.
__putback_lru_fast_preparePrepare page for fast batched LRU putback via putback_lru_evictable_pagevec()* The fast path is available only for evictable pages with single mapping.* Then we can bypass the per-cpu pvec and get better performance.
change_pte_range
try_to_unmapry_to_unmap - try to remove all page table mappings to a page*@page: the page to get unmapped*@flags: action and flags* Tries to remove all the page table entries which are mapping this* page, used in the pageout path. Caller must hold the page lock.
madvise_cold_or_pageout_pte_range
madvise_free_pte_range
__free_huge_page
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.
queue_pages_hugetlb
migrate_page_add
write_protect_page
stable_tree_searchstable_tree_search - search for page inside the stable tree* This function checks if there is a page inside the stable tree* with identical content to the page that we are scanning right now
add_page_for_migrationResolves the given address to a struct page, isolates it from the LRU and* puts it to the given pagelist
madvise_free_huge_pmdReturn true if we do MADV_FREE successfully on entire pmd page.* Otherwise, return false.
zap_huge_pmd
__collapse_huge_page_copy
hwpoison_user_mappingsDo all that is necessary to remove user space mappings. Unmap* the pages and send SIGBUS to the processes if the data was dirty.
memfd_tag_pins
memfd_wait_for_pinsSetting SEAL_WRITE requires us to verify there's no pending writer. However,* via get_user_pages(), drivers might have some pending I/O without any active* user-space mappings (eg., direct-IO, AIO). Therefore, we look at all pages