函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Huge pages. Needs work.* Issues:* - Error on hugepage is contained in hugepage unit (not in raw page unit.)* To narrow down kill region to one page, we need to break up pmd.

函数原型:static int me_huge_page(struct page *p, unsigned long pfn)

返回类型:int

参数:

类型参数名称
struct page *p
unsigned longpfn
771  res等于0
772  hpage等于compound_head(p)
775  如果非PageHuge() only returns true for hugetlbfs pages, but not for normal or* transparent huge pages. See the PageTransHuge() documentation for more* details.则返回:MF_DELAYED
778  mapping等于page_mapping(hpage)
779  如果mapping
780  res等于truncate_error_page(hpage, pfn, mapping)
781  否则
782  lock_page - unlock a locked page*@page: the page* Unlocks the page and wakes up sleepers in ___wait_on_page_locked().* Also wakes sleepers in wait_on_page_writeback() because the wakeup* mechanism between PageLocked pages and PageWriteback pages is shared.
788  如果PageAnon(hpage)则Perform a free_page(), also freeing any swap cache associated with* this page if it is the last user of the page.
790  Dissolve a given free hugepage into free buddy pages. This function does* nothing for in-use hugepages and non-hugepages.* This function returns values like below:* -EBUSY: failed to dissolved free hugepages or the hugepage is in-use
791  res等于MF_RECOVERED
792  lock_page may only be called if we have the page's inode pinned.
795  返回:res