Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\memory-failure.c Create Date:2022-07-28 16:18:57
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name: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.

Proto:static int me_huge_page(struct page *p, unsigned long pfn)

Type:int

Parameter:

TypeParameterName
struct page *p
unsigned longpfn
771  res = 0
772  hpage = compound_head(p)
775  If Not PageHuge() only returns true for hugetlbfs pages, but not for normal or* transparent huge pages. See the PageTransHuge() documentation for more* details. Then Return MF_DELAYED
778  mapping = page_mapping(hpage)
779  If mapping Then
780  res = truncate_error_page(hpage, pfn, mapping)
781  Else
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  If PageAnon(hpage) Then 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  Return res