函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\page_counter.c Create Date:2022-07-27 17:41:49
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:page_counter_try_charge - try to hierarchically charge pages*@counter: counter*@nr_pages: number of pages to charge*@fail: points first counter to hit its limit, if any* Returns %true on success, or %false and @fail if the counter or one

函数原型:bool page_counter_try_charge(struct page_counter *counter, unsigned long nr_pages, struct page_counter **fail)

返回类型:bool

参数:

类型参数名称
struct page_counter *counter
unsigned longnr_pages
struct page_counter **fail
105 c循环
121  new等于atomic_long_add_return(nr_pages, & usage)
122  如果new大于max
129  failcnt自加
130  fail等于c
131  转到:failed
133  propagate_protected_usage(counter, new)
138  如果new大于 legacy legacy 等于new
141  返回:true
143  failed :
144 c不等于fail循环page_counter_cancel - take pages out of the local counter*@counter: counter*@nr_pages: number of pages to cancel
147  返回:false
调用者
名称描述
try_charge
mem_cgroup_charge_skmemmem_cgroup_charge_skmem - charge socket memory*@memcg: memcg to charge*@nr_pages: number of pages to charge* Charges @nr_pages to @memcg. Returns %true if the charge fit within*@memcg's configured limit, %false if the charge had to be forced.
mem_cgroup_try_charge_swapmem_cgroup_try_charge_swap - try charging swap space for a page*@page: page being added to swap*@entry: swap entry to charge* Try to charge @page's memcg for the swap space at @entry.* Returns 0 on success, -ENOMEM on failure.
hugetlb_cgroup_charge_cgroup