函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:soft_offline_in_use_page

函数原型:static int soft_offline_in_use_page(struct page *page, int flags)

返回类型:int

参数:

类型参数名称
struct page *page
intflags
1812  hpage等于compound_head(page)
1814  如果非PageHuge() only returns true for hugetlbfs pages, but not for normal or* transparent huge pages. See the PageTransHuge() documentation for more* details.PageHuge() only returns true for hugetlbfs pages, but not for* normal or transparent huge pages.* PageTransHuge() returns true for both transparent huge and* hugetlbfs pages, but not normal pages. PageTransHuge() can only be
1815  lock_page may only be called if we have the page's inode pinned.
1818  如果非PageAnon(page)则打印信息("soft offline: %#lx: non anonymous thp\n", page_to_pfn(page))
1820  否则打印信息("soft offline: %#lx: thp split failed\n", page_to_pfn(page))
1823  返回:负EBUSY
1825  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.
1835  mt等于get_pageblock_migratetype(page)
1836  set_pageblock_migratetype(page, MIGRATE_ISOLATE)
1837  如果PageHuge() only returns true for hugetlbfs pages, but not for normal or* transparent huge pages. See the PageTransHuge() documentation for more* details.ret等于soft_offline_huge_page(page, flags)
1839  否则ret等于__soft_offline_page(page, flags)
1841  set_pageblock_migratetype(page, mt)
1842  返回:ret
调用者
名称描述
soft_offline_pagesoft_offline_page - Soft offline a page.*@pfn: pfn to soft-offline*@flags: flags. Same as memory_failure().* Returns 0 on success, otherwise negated errno.* Soft offline a page, by migration or invalidation,* without killing anything