函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:PageCompound

函数原型:static __always_inline int PageCompound(struct page *page)

返回类型:int

参数:

类型参数名称
struct page *page
188  返回:st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting fromPageTail(page)
调用者
名称描述
uprobe_write_opcodeNOTE:* Expect the breakpoint instruction to be the smallest size instruction for* the architecture
__put_page
rotate_reclaimable_pageWriteback is about to end against a page which has been marked for immediate* reclaim. If it still appears to be reclaimable, move it to the tail of the* inactive list.
__lru_cache_add
deactivate_file_pagedeactivate_file_page - forcefully deactivate a file page*@page: page to deactivate* This function hints the VM that @page is a good reclaim candidate,* for example if its invalidation fails due to the page being dirty* or under writeback.
deactivate_pagedeactivate_page - deactivate a page*@page: page to deactivate* deactivate_page() moves @page to the inactive list if @page was on the active* list and was not an unevictable page. This is done to accelerate the reclaim* of @page.
mark_page_lazyfreemark_page_lazyfree - make an anon page lazyfree*@page: page to deactivate* mark_page_lazyfree() moves @page to the inactive file list.* This is done to accelerate the reclaim of @page.
release_pageslease_pages - batched put_page()*@pages: array of pages to release*@nr: number of pages* Decrement the reference count on all the pages in @pages. If it* fell to zero, remove the page from the LRU and free it.
lru_add_page_tailsed by __split_huge_page_refcount()
move_pages_to_lruThis moves pages from @list to corresponding LRU list.* We move them the other way if the page is referenced by one or more* processes, from rmap.* If the pages are mostly unmapped, the processing is fast and it is
page_mappedReturn true if this page is mapped into pagetables.* For compound page it returns true if any subpage of compound page is mapped.
isolate_freepages_blockIsolate free pages onto a private freelist. If @strict is true, will abort* returning 0 on any invalid PFNs or non-free pages inside of the pageblock* (even though it may still end up isolating some pages).
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
kobjsizeReturn the total memory allocated for this pointer, not* just what the caller asked for.* Doesn't have to be accurate, i.e. may have races.
do_numa_page
mlock_vma_pageMark page as mlocked if not already.* If page on LRU, isolate and putback to move to unevictable list.
try_to_munlockry_to_munlock - try to munlock a page*@page: the page to be munlocked* Called from munlock code. Checks all of the VMAs mapping the page* to make sure nobody else has this page mlocked. The page will be
free_pages_prepare
split_pagesplit_page takes a non-compound higher-order page, and splits it into* n (1<
PageHugePageHuge() only returns true for hugetlbfs pages, but not for normal or* transparent huge pages. See the PageTransHuge() documentation for more* details.
build_detached_freelistThis function progressively scans the array with free objects (with* a limited look ahead) and extract objects belonging to the same* page. It builds a detached freelist directly within the given* page/objects. This can happen without any need for
__ksize
kfree释放内存
__do_huge_pmd_anonymous_page
do_huge_pmd_wp_page
follow_trans_huge_pmd
total_mapcount
split_huge_page_to_listThis function splits huge page into normal pages. @page can point to any* subpage of huge page to split. Split doesn't change the position of @page.* Only caller must hold pin on the @page, otherwise split fails with -EBUSY.* The huge page must be locked.
__collapse_huge_page_isolate
khugepaged_scan_pmd
memory_failurememory_failure - Handle memory failure of a page.*@pfn: Page Number of the corrupted page*@flags: fine tune action taken* This function is called by the low level machine check code* of an architecture when it detects hardware memory corruption* of a page
bio_release_pages
bio_set_pages_dirty_set_pages_dirty() will mark all the bio's pages as dirty.
bio_check_pages_dirty
PageError
SetPageError
ClearPageError
TestClearPageError
PageChecked
SetPageChecked
ClearPageChecked
PagePinnedXen
SetPagePinnedXen
ClearPagePinnedXen
TestSetPagePinned
TestClearPagePinned
PageSavePinned
SetPageSavePinned
ClearPageSavePinned
PageForeign
SetPageForeign
ClearPageForeign
PageXenRemapped
SetPageXenRemapped
ClearPageXenRemapped
TestClearPageXenRemapped
PageReserved
SetPageReserved
ClearPageReserved
__ClearPageReserved
__SetPageReserved
PageReadahead
SetPageReadahead
ClearPageReadahead
TestClearPageReadahead
PageTransCompoundPageTransCompound 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.
compound_mapcount
page_mapcount
basepage_indexReturn page->index in PAGE_SIZE units