Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:Special version of the above for do_swap_page, which often runs* into pages that are exclusively owned by the current process.* Everybody else should continue to use page_add_anon_rmap above.

Proto:void do_page_add_anon_rmap(struct page *page, struct vm_area_struct *vma, unsigned long address, int flags)

Type:void

Parameter:

TypeParameterName
struct page *page
struct vm_area_struct *vma
unsigned longaddress
intflags
1121  compound = flags & RMAP_COMPOUND
1124  If compound Then
1126  VM_BUG_ON_PAGE(!PageLocked(page), page)
1127  VM_BUG_ON_PAGE(!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, page)
1128  mapcount = compound_mapcount_ptr(page)
1129  first = atomic_inc_and_test(mapcount)
1130  Else
1131  first = atomic_inc_and_test( & * If the page can be mapped to userspace, encodes the number * of times this page is referenced by a page table.)
1134  If first Then
1135  nr = If compound Then hpage_nr_pages(page) Else 1
1142  If compound Then __inc_node_page_state(page, NR_ANON_THPS)
1144  __mod_node_page_state(page_pgdat(page), Mapped anonymous pages , nr)
1146  If Value for the false possibility is greater at compile time(A KSM page is one of those write-protected "shared pages" or "merged pages"* which KSM maps into multiple mms, wherever identical anonymous page content* is found in VM_MERGEABLE vmas. It's a PageAnon page, pointing not to any) Then Return
1149  VM_BUG_ON_PAGE(!PageLocked(page), page)
1152  If first Then __page_set_anon_rmap - set up new anonymous rmap*@page: Page or Hugepage to add to rmap*@vma: VM area to add page to.*@address: User virtual address of the mapping *@exclusive: the page is exclusively owned by the current process
1155  Else __page_check_anon_rmap - sanity check anonymous rmap addition*@page: the page to add the mapping to*@vma: the vm area in which the mapping is added*@address: the user virtual address mapped
Caller
NameDescribe
page_add_anon_rmappage_add_anon_rmap - add pte mapping to an anonymous page*@page: the page to add the mapping to*@vma: the vm area in which the mapping is added*@address: the user virtual address mapped*@compound: charge the page as compound or small page* The caller