函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Copy the page to its new location

函数原型:void migrate_page_states(struct page *newpage, struct page *page)

返回类型:void

参数:

类型参数名称
struct page *newpage
struct page *page
598  如果PageError(page)则SetPageError(newpage)
600  如果PageReferenced(page)则SetPageReferenced(newpage)
602  如果PageUptodate(page)则SetPageUptodate(newpage)
604  如果TestClearPageActive(page)则
605  VM_BUG_ON_PAGE(PageUnevictable(page), page)
606  SetPageActive(newpage)
607  否则如果TestClearPageUnevictable(page)则SetPageUnevictable(newpage)
609  如果PageWorkingset(page)则SetPageWorkingset(newpage)
611  如果PageChecked(page)则SetPageChecked(newpage)
613  如果PageMappedToDisk(page)则SetPageMappedToDisk(newpage)
617  如果PageDirty(page)则SetPageDirty(newpage)
620  如果page_is_young(page)则set_page_young(newpage)
622  如果page_is_idle(page)则set_page_idle(newpage)
629  cpupid等于page_cpupid_xchg_last(page, - 1)
630  page_cpupid_xchg_last(newpage, cpupid)
632  ksm_migrate_page(newpage, page)
637  如果PageSwapCache(page)则ClearPageSwapCache(page)
639  Private page markings that may be used by the filesystem that owns the page* for its own purposes.* - PG_private and PG_private_2 cause releasepage() and co to be invoked
640  set_page_private(page, 0)
646  如果Only test-and-set exist for PG_writeback. The unconditional operators are* risky: they bypass page accounting.d_page_writeback - end writeback against a page*@page: the page
649  copy_page_owner(page, newpage)
651  mem_cgroup_migrate(page, newpage)
调用者
名称描述
migrate_page_copy
migrate_pageCommon logic to directly migrate a single LRU page suitable for* pages that do not use PagePrivate/PagePrivate2.* Pages are locked upon entry and exit.
__buffer_migrate_page
iomap_migrate_page