函数逻辑报告 |
Source Code:mm\vmscan.c |
Create Date:2022-07-27 15:43:23 |
| Last Modify:2022-05-23 13:41:30 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:This is the main entry point to direct page reclaim
函数原型:static unsigned long do_try_to_free_pages(struct zonelist *zonelist, struct scan_control *sc)
返回类型:unsigned long
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct zonelist * | zonelist | |
| struct scan_control * | sc |
| 3042 | retry : |
| 3043 | delayacct_freepages_start() |
| 3045 | 如果非cgroup_reclaim(sc)则__count_zid_vm_events(ALLOCSTALL, The highest zone to isolate pages for reclaim from , 1) |
| 3048 | 循环 |
| 3054 | 如果 Number of pages freed so far during a call to shrink_zones() 大于等于 How many pages shrink_list() should reclaim 则退出 |
| 3066 | 当 Scan (total_size >> priority) pages at once 先自减大于等于0循环 |
| 3068 | last_pgdat = NULL |
| 3071 | 如果建立内存域和父结点之间的关联恒等于last_pgdat则继续下一循环 |
| 3073 | last_pgdat等于建立内存域和父结点之间的关联 |
| 3075 | snapshot_refaults(* The memory cgroup that hit its limit and as a result is the * primary target of this reclaim invocation., 建立内存域和父结点之间的关联) |
| 3077 | 如果cgroup_reclaim(sc)则 |
| 3086 | delayacct_freepages_end() |
| 3088 | 如果 Number of pages freed so far during a call to shrink_zones() 则返回: Number of pages freed so far during a call to shrink_zones() |
| 3092 | 如果 One of the zones is ready for compaction 则返回:1 |
| 3104 | 如果skipped_deactivate则 |
| 3112 | 如果memcg_low_skipped则 |
| 3121 | 返回:0 |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |