Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\migrate.c Create Date:2022-07-28 15:58:38
Last Modify:2022-05-20 09:53:13 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:Copy the page to its new location

Proto:void migrate_page_states(struct page *newpage, struct page *page)

Type:void

Parameter:

TypeParameterName
struct page *newpage
struct page *page
598  If PageError(page) Then SetPageError(newpage)
600  If PageReferenced(page) Then SetPageReferenced(newpage)
602  If PageUptodate(page) Then SetPageUptodate(newpage)
604  If TestClearPageActive(page) Then
605  VM_BUG_ON_PAGE(PageUnevictable(page), page)
606  SetPageActive(newpage)
607  Else if TestClearPageUnevictable(page) Then SetPageUnevictable(newpage)
609  If PageWorkingset(page) Then SetPageWorkingset(newpage)
611  If PageChecked(page) Then SetPageChecked(newpage)
613  If PageMappedToDisk(page) Then SetPageMappedToDisk(newpage)
617  If PageDirty(page) Then SetPageDirty(newpage)
620  If page_is_young(page) Then set_page_young(newpage)
622  If page_is_idle(page) Then 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  If PageSwapCache(page) Then 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  If Only test-and-set exist for PG_writeback. The unconditional operators are* risky: they bypass page accounting. Then d_page_writeback - end writeback against a page*@page: the page
649  copy_page_owner(page, newpage)
651  mem_cgroup_migrate(page, newpage)
Caller
NameDescribe
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