函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\migrate.c Create Date:2022-07-27 17:32:15
Last Modify:2022-05-20 09:53:13 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Put previously isolated pages back onto the appropriate lists* from where they were once taken off for compaction/migration.* This function shall be used whenever the isolated pageset has been* built from lru, balloon, hugetlbfs page

函数原型:void putback_movable_pages(struct list_head *l)

返回类型:void

参数:

类型参数名称
struct list_head *l
174  如果此条件成立可能性小(为编译器优化)(PageHuge() only returns true for hugetlbfs pages, but not for normal or* transparent huge pages. See the PageTransHuge() documentation for more* details.)则
175  putback_active_hugepage(page)
176  继续下一循环
178  删除链表项
184  如果此条件成立可能性小(为编译器优化)(__PageMovable(page))则
185  VM_BUG_ON_PAGE(!PageIsolated(page), page)
186  lock_page may only be called if we have the page's inode pinned.
187  如果PageMovable(page)则It should be called on page which is PG_movable
189  否则__ClearPageIsolated(page)
191  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.
192  Perform a free_page(), also freeing any swap cache associated with* this page if it is the last user of the page.
193  否则
194  mod_node_page_state(page_pgdat(page), Temporary isolated pages from anon lru + page_is_file_cache - should the page be on a file LRU or anon LRU?*@page: the page to test* Returns 1 if @page is page cache page backed by a regular filesystem,* or 0 if @page is anonymous, tmpfs or otherwise ram or swap backed, - hpage_nr_pages(page))
196  putback_lru_page - put previously isolated page onto appropriate LRU list*@page: page to be put back to appropriate lru list* Add previously isolated @page to appropriate LRU list.* Page may still be unevictable for other reasons.
调用者
名称描述
check_and_migrate_cma_pages
migrate_to_nodeMigrate pages from one node to a target node.* Returns error or the number of pages not migrated.
do_mbind
do_move_pages_to_node
soft_offline_huge_page
__soft_offline_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