Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:mem_cgroup_commit_charge - commit a page charge*@page: page to charge*@memcg: memcg to charge the page to*@lrucare: page might be on LRU already*@compound: charge the page as compound or small page* Finalize a charge transaction started by

Proto:void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg, bool lrucare, bool compound)

Type:void

Parameter:

TypeParameterName
struct page *page
struct mem_cgroup *memcg
boollrucare
boolcompound
6410  nr_pages = If compound Then hpage_nr_pages(page) Else 1
6412  VM_BUG_ON_PAGE(! See page-flags.h for PAGE_MAPPING_FLAGS , page)
6413  VM_BUG_ON_PAGE(PageLRU(page) && !lrucare, page)
6415  If mem_cgroup_disabled() Then Return
6422  If Not memcg Then Return
6425  commit_charge(page, memcg, lrucare)
6427  local_irq_disable()
6428  mem_cgroup_charge_statistics(memcg, page, compound, nr_pages)
6429  Check events in order.
6430  The local_irq_*() APIs are equal to the raw_local_irq*()* if !TRACE_IRQFLAGS.()
6432  If Whether legacy memory+swap accounting is active && PageSwapCache(page) Then
6433  swp_entry_t entry = {val = page_private(page)}
6439  mem_cgroup_uncharge_swap - uncharge swap space*@entry: swap entry to uncharge*@nr_pages: the amount of swap space to uncharge
Caller
NameDescribe
wp_page_copyHandle the case of a page which we actually need to copy to a new page.* Called with mmap_sem locked and the old page referenced, but* without the ptl held.* High level logic flow:* - Allocate a page, copy the content of the old page to the new one.
do_swap_pageWe enter with non-exclusive mmap_sem (to exclude vma changes,* but allow concurrent faults), and pte mapped but not yet locked.* We return with pte unmapped and unlocked.* We return with the mmap_sem locked or unlocked in the same cases
do_anonymous_pageWe enter with non-exclusive mmap_sem (to exclude vma changes,* but allow concurrent faults), and pte mapped but not yet locked.* We return with mmap_sem still held, but pte unmapped and unlocked.
alloc_set_ptealloc_set_pte - setup new PTE entry for given page and add reverse page* mapping
unuse_pteNo need to decide whether this PTE shares the swap entry with others,* just let do_wp_page work it out if a write is requested later - to* force COW, vm_page_prot omits write permission from any private vma.
__do_huge_pmd_anonymous_page
do_huge_pmd_wp_page_fallback
do_huge_pmd_wp_page
collapse_huge_page
mcopy_atomic_pte